CSC 100: The Beauty and Joy of Computing

Class and Lab Schedule

The following calendar shows topics covered, handouts given, and assignments that have been given and when they are due. Items with yellow background are tentative (either because the date is in the future or because I haven't gotten around to updating it). All items with a white background are final.

 
Week 1
Wed, August 16 Fri, August 18
Lecture 1: Introduction
  • Introductions
  • Class/syllabus review
  • Tour of class resources
 
Handout: Syllabus
Lab 1:
Introduction to Snap! and Programming
 
See Canvas for lab materials
 
Week 2
Mon, August 21 Wed, August 23 Fri, August 25
Reading: Start BtB Chapter 1
 
Lecture 2: Success in College
  • High school vs college
  • Tips for success
 
Handout: Reading Reflection Info
Reading (read before class!):  
Lecture 3:
  • What is Computer Science?
  • The computer as a tool
  • Impact of CS on the world
 
Handouts:
Video (watch before lab!):  
Discussion: Pair Programming
 
Lab 2:
Drawing, variables, and interaction
Week 3
Mon, August 28 Wed, August 30 Fri, September 1
Due: BtB Chapter 1 Reflection
 
Lecture 4: Computing and Programming
  • Computing steps
  • Basic computer model
  • Computing speed
  • Programming languages
Reading (read before class!):  
First: Finish Programming Languages from Lecture 4
 
Lecture 5: Intro to Abstraction
  • Basic idea
  • Detail Removal
  • Generalization
 
Lab 3:
Abstractions in Snap!

Week 4
Mon, September 4 Wed, September 6 Fri, September 8
 
No class - Labor Day!
Reading: BtB Chapter 1 Wrap-up
    Start BtB Chapter 2
 
Lecture 6: Data Representation 1
  • Numbers
  • Number Bases
  • Binary
  • Conversions
Assigned:
 
Lab 4:
Number Representations, Strings, and Unicode
Week 5
Mon, September 11 Wed, September 13 Fri, September 15
Due: BtB Chapter 2 Reflection
 
Finish topics from Lecture 6:
  • Binary
  • Conversions
 
Lecture 7: Data Representation 2
  • Hexadecimal
  • Conversions
  • Finite Representations
 
Finish topics from Lecture 7:
  • Finite Representations
 
Lecture 8: Organizing Data
  • Abstract Data Types
  • Data Structures
  • Lists
  • Dictionaries and Trees
 
Lab 5:
Using Lists
Week 6
Mon, September 18 Wed, September 20 Fri, September 22
Reading: BtB Chapter 2 Wrap-up
    Start Emma reading
 
Due: Assignment 1
 
Lecture 9: Algorithms 1
  • Basic Definitions
  • Some Famous Algorithms
 
Handouts:
Left from Lecture 9:
  • Problems vs Algorithms
  • Algorithm Trade-offs
 
Lecture 10: Algorithms 2
  • Modern Computer Speeds
  • Moore's Law and the Singularity
 
 
Lab 6:
Introduction to Python
Week 7
Mon, September 25 Wed, September 27 Fri, September 29
Due: BtB Emma reading reflection
 
Left from Lecture 10:
  • Algorithm "time"
  • Measuring time
 
Lecture 11: Algorithms 3
  • Constant time
  • Loop patterns
    • Linear time
    • Quadratic time
  • Predicting times
Lecture 12: Algorithms 4
  • Exponential Time
  • Logarithmic Time
  • Databases
 
Handout: Midterm Review
 
Due: Assignment 2
 
Lab 7:
Algorithms
Week 8
Mon, October 2 Wed, October 4 Fri, October 6
Reading: Emma reading wrap-up
    Start BtB Chapter 4 (2 weeks)
 
Review for midterm
Midterm Exam!
 
Lab 8:
TBD
Week 9
Mon, October 9 Wed, October 11 Fri, October 14
 
No class - Fall Break!
Midterm exam solutions/discussion
 
Discussion: Class projects
Lab 9:
TBD
Week 10
Mon, October 16 Wed, October 18 Fri, October 20
Due: BtB Chapter 4 Reflection
 
Lecture 13: Reductions/Recursion
  • Solving one problem with another
  • Reduction examples
  • Recursion w/examples
Assigned:
  • Assignment 3 (due Nov 1)
 
Lecture 14: Data Representation 3
  • File formats and rendering
  • Text - ASCII
  • Formatted Text - HTML
  • Pictures - Grayscale
  • Pictures - Color
  • Human vision and color
Due: Project team identification
 
Lab 10:
TBD
Week 11
Mon, October 23 Wed, October 25 Fri, October 27
Reading: BtB Chapter 4 Wrap-up
    Start Von Ahn reading
 
Lecture 15: Data Representation 4
  • Sound - hearing and waveforms
  • Video and frame types
  • Data compression
Lecture 16: Data and Big Data 1
  • Measuring data
  • How much is that?
  • Where do I find data?
  • Data mining
  • Challenges
Lab/Project Time:
Project proposal presentations
Week 12
Mon, October 30 Wed, November 1 Fri, November 3
Due: Von Ahn Reflection
 
Lecture 17: Data and Big Data 2
  • TBD...
Due: Assignment 3
 
Lecture 18: The Internet (part 1)
  • Physical connections: Ethernet
  • Switches and MAC addresses
  • IP addressing and hierarchy
  • ARP and address conversion
Lab/Project Time:
Project work time
Week 13
Mon, November 6 Wed, November 8 Fri, November 10
Reading: Von Ahn Wrap-up     Start BtB Chapter 6
 
Lecture 19: The Internet (part 2)
  • IP communication
  • DNS for looking up names
  • Routing between networks
  • Higher layers
  • What can go wrong
  • DNS for looking up names
  • Higher layers
  • What can go wrong
Due: Written project proposal
 
Lecture 20: The Internet (part 3)
  • TBD...
Due: Project progress report (5:00)
 
Lab/Project Time:
Project work time
Week 14
Mon, November 13 Wed, November 15 Fri, November 17
Due: BtB Chapter 6 Reflection
 
Lecture 21: Security and Privacy
  • Basic security goals
  • Eavesdropping
  • Encryption
  • Digital Signatures
  • Certificates
  • Tools: PGP, OTR, and Tor
Lecture 22: Artificial Intelligence
  • Basic Ideas/Areas
  • The Turing Test
  • Consequences
  • Future of AI/Robotics
Lab/Project Time:
Project presentations
Week 15
Mon, November 20 Wed, November 22 Fri, November 24
Reading: BtB Chapter 6 Wrap-up
 
Lecture 23: Limits and Future of Computing
  • Traveling Salesman Problem
  • NP-completeness
  • Uncomputability
 
No class - Thanksgiving!
 
No class - Thanksgiving!
Week 16
Mon, November 27 Wed, November 29 Fri, December 1
Topics:
Catch-up day or student choice
Topics:
  • Student-Choice Award
  • Review for Final Exam
 
Handout: Final Exam Review
Week 17
Mon, December 4 Wed, December 6
Due: All project materials
 
Final Exam (12:00-3:00)