cs1120: Introduction to Computing

Explorations in Language, Logic, and Machines

Announcements

2 May: Class 39 (Where to Go From Here) and Final Survey
29 April: Class 38 (Big Questions about Hard Problems)
27 April: Class 37 (Art and Computing) — guest class by Jack Doerner
25 April: Class 36 (What Cannot Be Computed)
22 April: Class 35 (On Computable Numbers)
20 April: Class 34 (Finishing the Interpreter)
18 April: Class 33 (Exploring the Interpreter)
15 April: Class 32 (Interpreters)
13 April: Class 31 (Turing Machines)
11 April: Class 30 (Modeling Computation) and Project 6: Charming Snakes
8 April: Class 29 (The Forrest and the Trees)
6 April: Class 28 (Growing Trees)
4 April: Class 27 (Trees and Logs)
1 April: Class 26 (Complexity and Subclassing) - also see for notes on syncing your Project 5 repository
30 March: Class 25 (Sorting and Searching) (Guest lecture by Yuchi Tian)
28 March: Class 24 (Object, Classes, and Go)
25 March: Class 23 (Golden Ages)
23 March: Class 22 (Andy Grove, Becoming Blue Belts)

Older announcements...

Classes

Class 1: How Many Computers?
Class 2: Language
Class 3: Minsky, Version Control, White Belt Test
Class 4: Computers, Variables, Python Programming
Class 5: Meaning of Everything!
Class 6: Grammars and Rules of Evaluation
Class 7: Parsing, Semantics, and Binary
Class 8: Procedures Practice, Project 1
Class 9: Complex Data

Class 11: Programming with Procedures
Class 12: Computing Machines
Class 13: Loopy Recursive Functions
Class 14: Flattening Practice
Class 15: Generalizing
Class 16: Cost

Class 18: Merkle's Puzzles, Asymptotic Notation
Class 19: Asymptotic Notation
Class 20: Cost of Computing
Class 21: Blue Belt Test
Class 22: Becoming Blue Belts
Class 23: Golden Ages
Class 24: Objects, Classes, and Go!
Class 25: Sorting and Searching
Class 26: Complexity and Subclassing
Class 27: Trees and Logs
Class 28: Growing Trees
Class 29: The Forrest and the Trees
Class 30: Modeling Computers
Class 31: Turing Machines
Class 32: Interpreters
Class 33: Exploring the Interpreter
Class 34: Finishing the Interpreter
Class 35: On Computable Numbers
Class 36: What Cannot Be Computed
Class 37: Art and Computing (Jack Doerner)
Class 38: Big Questions about Hard Problems

Tests

White Belt
Yellow Belt
Green Belt
Blue Belt

Projects

Project 1: Making Mosaics
Project 2: Genomes Galore!
Project 3: Limning L-Systems
Project 4: Constructing Colossi
Project 5: Tic-Tac-Go!
Project 6: Charming Snakes

Resources

Syllabus
Pledge
Ask Me Anything

Course Book (including solutions to exercises)
1. Computing (Solutions)
2. Language (Solutions)
3. Programming (Solutions)
4. Problems and Procedures (Solutions)
5. Data (Solutions)
6. Machines
7. Cost
8. Sorting and Searching
9. Mutation
10. Objects
11. Interpreters
12. Computability

Notes for Udacity cs101 course (PDFs)
Lesson 1 | Lesson 2 | Lesson 3
Lesson 4 | Lesson 5 | Lesson 6

Python Reference

Udacity cs101 Discussion Forum (hard to search, but has discussion on most topics and problems in cs101 course)

Previous Offerings at UVA

Fall 2012 (taught by Westley Weimer)
Fall 2011 [Course Evaluation]

Earlier versions including the first offering:
cs200 (Spring 2002).

Open On-Line Course

Udacity cs101: Introduction to Computer Science
(Building a Search Engine)

Open on-line course in-part loosely derived from cs1120 (first Udacity course, launched in 2012).
[Story of Course] [Prospect Magazine] [Chronicle]