Prof. Michael G. Dyer      HomePage


CS 2 - Great Ideas in Computer Science

This course introduces liberal arts and architecture students to the major concepts underlying the field and related subfields of Computer Science. CS 2 is not a learn-how-to-program-in-language-X type of course. Students do not write programs but are instead asked to read and understand a number of programs in a variety of programming languages. CS 2 surveys a wide-ranging set of topics, concentrating on machines/programs that take descriptions of other machines/programs as their input. Course fulfills GE requirement.

Prerequisites: Undergraduate non-CS/EE major.

Week/Topics:

1. Abstract Machines, Computation, Universal Computing Machines

Turing Machines (Tms), Binary, Hardware vs. Software, Probabilistic vs. Deterministic machines, Sequential vs. Parallel, Analog vs. Digital, Functions vs. Machines vs. Algorithms, Different Forms of Computation and their Equivalence, Church-Turing Hypothesis, Are humans Tms? (CL: Chaps 1, 2)

2. Limits of Computing, Stored-Program Architecture, Programming Languages

Noncomputability, Halting Problem, Incompleteness, Busy Beavers; Computer hardware: Logic Gates, Flip-Flops, Addition, Goto, Random Access Memory, Addressing, Bus, Programs: Machine Language, Assembly, Fortran, Structured Programming (Pascal, C), Fault Tolerance. (CL: Chaps 3, 4, 5)

3. Virtual Machines & Survey of Specialized Programming Languages

Array processing w/ APL, string processing w/ Snobol, discrete event simulation; Languages for Artificial Intelligence: Lisp & Prolog, (CL: Chaps 6, 7)

4. Compilation, Interpretation, O.S., Distributed Computing

Dynamic data structures, Files, Paging, Virtual Memory, Operating Systems, Parallel Architectures, Computer Networks, Packet-Switching, TimeWarp distributed simulation (CL: Chaps 8, 9, 10, 11 )

5. Computational Complexity and Encryption

Orders of Magnitude, Tractability vs. Intractability, Public-key Cryptography, NP-Completeness, (CL: Chaps 12, 13).

6. Artificial Intelligence

Turing's Thesis & Test, Early AI systems, Expert Systems, Machine Invention, Meta-Art, Modeling Thought and Language, (CL: Chaps 14, 15; VL: Chap 2).

7. Natural Language Processing (NLP) Systems & Cognitive Models

60s-70s: Translation, Story Understanding, Question/Answering Systems; 80s-90s: Argumentation & Belief, Stream of Thought, Emotion, Computational Morality, Story Invention,(VL: Chaps 3, 4)

8. Artificial Neural Networks (ANNs)

Real vs Artificial Neurons, Brain vs Computer, Localist vs Distributed Representations/Systems, Symbolic vs. Neural Approaches to Mind, ANN Architectures: Perceptrons, Hopfield networks, PDP Networks, Self-Organizing Maps, NETtalk, NLP via Neurons, (VL: Chaps 5, 6)

9. Artificial Life

Cellular Automata and Self-Replication, Game of Life, Computer Viruses, Evolving Programs, Evolutionary Art, Evolving Neural Networks (VL: Chaps 7-11)

10. Virtual Reality, Robotics & Future Social Impact, Philosophy of Mind

History of CS, Moore's Law, Future of CS: Moore’s Law, Virtual Reality, Robotics, Computational Perspective on Philosophy of Mind: Searle's Chinese Room, Harnad, Penrose, Computational View of Theology, Qualia, Intentionality, Free Will, (CL: Chaps 16 - 18; VL: Chaps 12 - 16)

Hours per week: Lectures, 4 units (meets twice weekly).

Grading: Final Exam (~40%), Mid-Term (~30%), Homeworks (~20%), Attendance (~10%). Course may be taken for letter grade or Pass/Fail.

Texts: two readers, written by instructor: Vol. 1 and Vol. 2, available through Academic Publishing, (UCLA Store) titled:

Offered: CS 2 is usually offered every other year in the spring.