Intro to Programming
1. Elements of Programming
1.1 Your First Program
1.2 Built-in Types of Data
1.3 Conditionals and Loops
1.4 Arrays
1.5 Input and Output
1.6 Case Study: PageRank
2. Functions
2.1 Static Methods
2.2 Libraries and Clients
2.3 Recursion
2.4 Case Study: Percolation
3. OOP
3.1 Using Data Types
3.2 Creating Data Types
3.3 Designing Data Types
3.4 Case Study: N-Body
4. Data Structures
4.1 Performance
4.2 Sorting and Searching
4.3 Stacks and Queues
4.4 Symbol Tables
4.5 Case Study: Small World
Computer Science
5. Theory of Computing
5.1 Formal Languages
5.2 Turing Machines
5.3 Universality
5.4 Computability
5.5 Intractability
9.9 Cryptography
6. A Computing Machine
6.1 Representing Info
6.2 TOY Machine
6.3 TOY Programming
6.4 TOY Virtual Machine
7. Building a Computer
7.1 Boolean Logic
7.2 Basic Circuit Model
7.3 Combinational Circuits
7.4 Sequential Circuits
7.5 Digital Devices
Beyond
8. Systems
8.1 Library Programming
8.2 Compilers
8.3 Operating Systems
8.4 Networking
8.5 Applications Systems
9. Scientific Computation
9.1 Floating Point
9.2 Symbolic Methods
9.3 Numerical Integration
9.4 Differential Equations
9.5 Linear Algebra
9.6 Optimization
9.7 Data Analysis
9.8 Simulation
Related Booksites
Web Resources
FAQ
Data
Code
Errata
Lectures
Appendices
A. Operator Precedence
B. Writing Clear Code
C. Glossary
D. TOY Cheatsheet
E. Matlab
Coursera MOOCs
Programming with a Purpose
Algorithms, Theory, Machines
Certificate Courses
Programming with a Purpose
Algorithms, Theory, Machines
Java Cheatsheet
Programming Assignments
Errata Submission Form
Thank you for your help. Please let us know where the error appears.
Name
(optional)
Email
(optional)
Describe the error or errors.
Be sure to include the page number (for textbook errors) or the URL (for booksite errors).