Toggle navigation
Principles of Computing
(15-110)
Home
Schedule
Labs
Assignments
Resources
Staff & Contact hours
PIAZZA
AUTOLAB
Course Schedule
Note that the schedule below is subject to minor changes.
Course Introduction, Computational Thinking
Jun 29
Lecture
Introduction to Principles of Computation
About Instructor
LAB 1
Programming with Blocks
- Jun 29
*
Instruction and Summary about first Lab
Unit-1: History of Computing
Jun 30
(
from Babbage to the World Wide Web
)
Lecture
Computing before and after World War II
Reading
Blown to Bits
- Chapter 1
PA
Programming Assignment 1
- Jun 30
PS
Problem Set 1
- Jul 1, 9:00am
LAB 2
Introduction to Python
- Jul 1
Unit-2: An Introduction to Programming using Python
Jul 1-2
(
variables, types, statements, functions
)
Lecture
An Introduction to Programming - 1
Lecture
An Introduction to Programming - 2
Reading
Blown to Bits
- Chapter 2, pages 19-42
Reading
Non-programmer's tutorial for Python 3: Hello World
Reading
Python 3 Tutorial: informal introduction, parts 3.1, 3.1.1, and 3.1.2
MUST DO
Academic Integrity Form
- Jul 2, 9:00am
PA
Programming Assignment 2
- Jul 2
UNIT 3: Algorithms
Jul 6-7
(
loops, conditionals, algorithm examples
)
Lecture
While Loops, Conditionals, Computing with Lists,
Lecture
... Computing with Lists, Sieve of Eratosthenes
PS
Problem Set 2
- Jul 6
LAB 3
Lists and Loops
- Jul 6
PA
Programming Assignment 3
- Jul 7
UNIT 4: Computation using Iteration
Jul 8-9
(
using arrays, linear search, selection sort, order of complexity
)
Lecture
Iteration and Search, Iteration and Sorting
Lecture
Iteration and Search, Sorting, Complexity (+ debugging)
PS
Problem Set 3
- Jul 8
LAB 4
More Searching
- Jul 8
LAB 5
Debugging Practice
- Jul 9
PA
Programming Assignment 4
- Jul 9
UNIT 5: Recursive Thinking
Jul 10, Jul 13
(
binary search, merge sort, fractals, and other recursive algorithms
)
Lecture
Recursion and Recusive functions
code to approximate pi
code to reverse a list
Lecture
Binary Search
Lecture
Merge Sort
PS
Problem Set 4
- Jul 10
LAB 6
Recursion
- Jul 13
PA
Programming Assignment 5
- Jul 13
WRITTEN EXAM 1
Questions
-
Answer Key
Jul 15
UNIT 6: Data Organization
Jul 14, Jul 16
(
arrays, linked lists, stacks, queues, hash tables, trees and graphs
)
Lecture
Arrays and Linked Lists
---
Handout
Lecture
Hash Tables
---
Handout
Lecture
Trees, Graphs
---
Handout
PS
Problem Set 5
- Jul 14
LAB 7
Hash Tables
- Jul 16
PS
Problem Set 6
- Jul 17
UNIT 7: Data Representation
Jul 17, Jul 20
(
integers, text, images, sound and compression
)
Lecture
Data Representation
Lecture
Data Compression
---
Handout
Lecture
Image and Sound Representation
---
Handout
Reading
Blown to Bits - Chapter 3
PA
Programming Assignment 6
- Jul 19
LAB EXAM 1
Questions
-
Answer Key
Jul 20
UNIT 8: Computer Organization
Jul 21-22
(
CPU layers as abstractions, instructions as data and data as instructions, fetch-decode-execute cycle
)
Lecture
Boolean Logic, Gates
---
Handout
Lecture
Combinational Circuits, Levels of Abstraction
---
Handout
PS
Problem Set 7
- Jul 21
LAB 8
Sound Lab
- Jul 22
PA
Programming Assignment 7
- Jul 22
UNIT 9: Randomness in Computation
Jul 23-24
(
generating and using random numbers
)
Lecture
Random Number Generators
---
Handout
Lecture
Using Random Numbers
---
Handout
PS
Problem Set 8
- Jul 23
LAB 9
Graphics in Python
- Jul 23
PA
Programming Assignment 8
- Jul 24
UNIT 10: Simulations, Visualizing data and Human Factors
Jul 27-28
(
Simulations, visualization and understanding human factors
)
Lecture
Discrete Simulation
---
Handout
sample code - simulation
Lecture
Continuous Simulation
---
Handout
Lecture
Human Factors - 1
---
Handout
Lecture
Human Factors - 2
---
Handout
PS
Problem Set 9
- Jul 27
LAB 10
Monte Carlo Method
- Jul 27
PA
Programming Assignment 9
- Jul 28
WRITTEN EXAM 2
Questions
-
Answer Key
Jul 29
LAB 11
More Graphics in Python
- Jul 29
UNIT 11: The Internet and Security
Jul 30-31
(
Internet Fundamentals, Protocols and Security
)
Lecture
Internet Fundamentals
---
Handout
Lecture
The Internet: Higher-level protocols
---
Handout
Lecture
Internet Security
---
Handout
Reading
Blown to Bits
- Chapter 5
Reading
Interpretive summary of the Snowden revelations about NSA internet surveillance
Reading
Report on AT&T surveillance of its Internet customers
LAB 12
Manipulating Bit-Mapped Images
- Jul 30
UNIT 12: Concurrency
Aug 3
Lecture
Concurrent Processes, Pipelining
---
Handout
Reading
Blown to Bits
- Chapter 4
PS
Problem Set 10
- Aug 3
PA
Programming Assignment 10*
- Aug 4
LAB EXAM 2
Questions
-
Answer Key
Aug 3
UNIT 13: Artificial Intelligence
Aug 3-4
Lecture
AI: Search & Games
---
Handout
Lecture
Machine Learning
PS
Problem Set 11
- Aug 6
UNIT 14: Computability: The Limits of Computation
Aug 5-6
(
intractability, map coloring and the travelling salesperson, P vs. NP, the halting problem
)
Lecture
Limits of Computing: Intractability , P versus NP , Noncomputable Functions
---
Handout