Harry H. Porter III, Ph.D.
Portland State University
Dept. of Computer Science
P.O. Box 751
Portland, OR 97207-0751
email: porter@pdx.edu
office: Fourth Ave. Building, room 120-13
(click here for map)
office phone: (503) 503-725-9815 (Please leave no messages)
Sc.B., Computer Science,
Brown University, 1978
Ph.D., Computer Science,
Oregon Graduate Institute, 1988
Short Bio:
click here
Theory of Computation - Video Course
An entire video course on the "Theory of Computation".
Index of videos:
click here
Binary Data Representation - Video Course
A short video course on two's complement signed numbers, floating point number representation, pointers, ASCII, Unicode, and more.
Index of videos:
click here
Cache Memories - Video Course
These videos describes how cache memory works.
Index of videos:
click here
Arduino and the AVR Processor - Video Course
These videos introduce and describe the AVR microprocessor and the Arduino single bloard computers.
Index of videos:
click here
Assembly Programming and Instruction Set Architecture - Video Course
A short video course on machine code, assembly language programming, and processor architecture.
Index of videos:
click here
Relay Computer
I have built a computer out of relays.
Pictures:
click here
Research Interests
Object-Oriented Technology;
Programming Languages, Environments, and Systems;
Compilation Technology;
Distribution and Concurrency Control;
Computational Linguistics;
Logic Programming;
Neural Networks and Artificial Intelligence;
Order, Chaos, and Complexity
The BLITZ Project
The BLITZ System is a collection of software designed to support
a university-level course on Operating Systems.
Over the course of one or two terms, students will implement a small,
but complete, operating system kernel.
The BLITZ software provides the framework for these student projects.
The BLITZ Home Page
Current Courses
Future Courses
Past Courses
-
CS-201: Computer Systems Programming
--- PSU, Fall 2015
-
CS-201: Computer Systems Programming
--- PSU, Spring 2015
-
CS-581: Theory of Computation
--- PSU, Spring 2015
-
CS-201: Computer Systems Programming
--- PSU, Winter 2015
-
CS-581: Theory of Computation
--- PSU, Winter 2015
-
CS-333: Introduction to Operating Systems
--- PSU, Fall 2014
-
CS-201: Computer Systems Programming
--- PSU, Fall 2014
-
CS-581: Theory of Computation
--- PSU, Spring 2014
-
CS-581: Theory of Computation
--- PSU, Fall 2012
-
CS-305: Social, Ethical, and Legal Implications of Computing
--- PSU, Spring 2010
-
CS-340: Discrete Structures for Engineers
--- PSU, Spring 2010
-
CS-333: Introduction to Operating Systems
--- PSU, Spring 2009
-
CS-105: Computing Fundamentals I
--- PSU, Winter 2009
-
CS-333: Introduction to Operating Systems
--- PSU, Spring 2007
-
CS-333: Introduction to Operating Systems
--- PSU, Spring 2006
-
CS-322: Languages and Compiler Design II
--- PSU, Winter 2006
-
CS-322: Languages and Compiler Design I --- PSU, Fall 2005
-
CS-322: Languages and Compiler Design II --- PSU, Spring 2005
-
CS-333: Introduction to Operating Systems --- PSU, Winter 2005
-
CS-333: Introduction to Operating Systems --- PSU, Fall 2004
-
CS-322: Languages and Compiler Design II --- PSU, Spring 2004
-
CS-321: Languages and Compiler Design I --- PSU, Winter 2004
-
CS-322: Languages and Compiler Design II --- PSU, Spring 2003
-
CS-321: Languages and Compiler Design I --- PSU, Winter 2003
-
CS-251: Logical Structures --- PSU, Fall 2002
-
CS-322: Languages and Compiler Design II --- PSU, Spring 2002
-
CSE-509: Object Oriented Programming --- OGI, Winter 2002
-
CS-321: Languages and Compiler Design I --- PSU, Winter 2002
-
CS-250: Discrete Structures --- PSU, Spring 2001
-
CS-302: Languages and Compiler Design 2 --- PSU, Winter 2001
-
CSE-509: Object Oriented Programming --- OGI, Winter 2001
-
CS-301: Languages and Compiler Design I --- PSU, Fall 2000
-
CSE-513: Introduction to Operating Systems --- OGI, Fall 2000
-
CS-302: Languages and Compiler Design II --- PSU, Spring 2000
-
CS-302: Languages and Compiler Design II --- PSU, Winter 2000
-
CS-301: Languages and Compiler Design I --- PSU, Fall 1999
Musings / Papers / Commentary
-
"RISC-V:
An Overview of the
Instruction Set Architecture"
The RISC-V project defines and describes a standardized Instruction Set Architecture (ISA).
This document introduces and explains the standard, giving an informal overview of the RISC-V architecture.
(click here)
-
"A Methodology for the Assessment of AI Consciousness"
The research and philosophical communities currently lack a clear way to quantify, measure, and characterize the degree of consciousness in a mind or AI entity. This paper addresses that gap by providing a numerical measure of consciousness. Implicit in our approach is a definition of consciousness itself.
(html) or
(pdf, 8 pages) or
(overview)
-
"Healthcare Reform: Proposals for Restructuring the U.S. Medical System"
Many people are dissatisfied with our current healthcare system. In this paper, we go back to first principles and take a fresh look at the issues. Based on our analysis, we provide a collection of concrete proposals to improve, reform, and reorganize the U.S. healthcare system.
(click here for more)
-
"Earley Deduction / Earley Parsing / Optimizations for DATALOG"
Several papers concerning Logic Programming and Earley Deduction.
(click here for more)
-
"Warnings of a Dark Future:
The Emergence of Machine Intelligence"
What is the future of machines? Robots, genetic algorithms, artificial intelligence, viruses... where will all this lead? We are in the midst of creating a technology that--like the atomic bomb before it--may make the world vastly more dangerous than its inventors realize.
(html) or
(pdf, 9 pages)
-
"Smalltalk: A White Paper Overview"
This paper gives a high-level introduction to the Smalltalk language and
system. It focuses on the unusual concepts of Smalltalk and contrasts Smalltalk
with languages like Java and C++. This paper is not intended as a
tutorial for beginning Smalltalk programmers and does not contain the level of
detail necessary to begin using Smalltalk.
(html) or
(pdf, 77 pages)
-
"Programming: The Fundamental Concepts of Computer Coding"
This paper surveys the most basic concepts of programming and is
intended for someone without any programming experience. Simple examples in
the Java language are used to illustrate these core ideas.
(html) or
(pdf, 46 pages)
-
"The Java Language: A White Paper Overview"
This paper provides an overview of the Java programming language. It is meant to be a complete, yet concise, description of the language.
(html) or
(pdf, 62 pages)
-
"Designing Programming Languages for Reliability"
This paper contains several comments and thoughts on designing programming languages so that programs tend to be more reliable. It is organized as a list of suggestions for anyone who is about to design a new language.
(html) or
(pdf, 19 pages)
-
"Harry's Style Guide"
This paper contains several suggestions about how to write "C" programs that
are more readable and more likely to be bug-free.
This is a "C" programming style guide, documenting a number of coding practices,
conventions, and standards, along with justifications of why these
recommendations produce better programs.
(html) or
(pdf, 18 pages)
-
"My Theory of Consciousness - A Summary"
This paper describes my own original ideas about the nature of human consciousness.
(html) or
(pdf, 13 pages)
-
"On Intuition"
This paper discusses human intuition.
(html) or
(pdf, 8 pages)
Robot Videos
A page with links to over 60 videos, each showing a different interesting or unusual robot, showcasing the diversity of contemporary robotic and bionic technology.
www.cs.pdx.edu/~harry/Robots
Harry H. Porter III
porter@pdx.edu