Computer Science Building, Princeton University


Introduction to CS


1.  A Simple Machine

2.  Java Programming

3.  OOP

4.  Data Structures

5.  A Computing Machine

6.  Building a Computer

7.  Theory of Computation

8.  Systems

9.  Scientific Computation

10.  Perspective


 Lecture Notes

Assignments

FAQ









LECTURE NOTES


We are developing a set of lecture notes to accompany the textbook. The pdf lecture slides below are works in progress. Powerpoint slides available by request from instructors who adopt the textbook. This version of the lecture notes may be more up-to-date in some areas, but does not include some topics.


SECTION TOPIC IN-CLASS DEMOS
0 Introduction  
1 Linear Feedback Shift Register LFSR
JAVA PROGRAMMING
2.1 Hello, World  
2.2 Primitive Data Types  
2.3 Conditionals and Loops While loop
2.4 Input and Output  
2.5 Arrays Insertion sort   Shuffle
2.6 Functions  
2.7 Recursion Factorial   Euclid   Towers of Hanoi
OBJECT ORIENTED PROGRAMMING
3.1 Using Data Types
3.2 Creating Data Types Mandelbrot explorer
3.3 Modular Programming  
3.4 Encapsulation and ADTs  
DATA STRUCTURES
4.1 - 4.2 Analysis of Algorithms Quicksort   Partioning  
4.3 Linked Structures Josephus problem   Parse tree
4.4 Stacks and Queues Stack array   Queue array   Postfix
4.6 Priority Queues  
4.7 Symbol Tables  
4.8 Graphs BFS
A COMPUTING MACHINE
5.1 - 5.3 A von Neumann Machine Visual X-TOY
5.4 - 5.5 Machine Language Programming Crazy 8
6.1 Boolean Logic Hydraulic computer
6.2 Combinational Circuits  
6.3 Sequential Circuits  
6.5 TOY Machine Architecture  
THEORY OF COMPUTATION
7.1 - 7.3 Regular Expressions and DFAs DFA
7.5 Turing Machines Turing machine simulator   turing.jar
7.6 Universality  
7.7 Computability PCP puzzle
7.8 Intractability  
7.9 Cryptography Crypto history [rsa.com]
SYSTEMS
8.4 Networking  
SCIENTIFIC COMPUTING
9.1 Floating point