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.

NOTE: Lab topics are just place-holders now - several of these will change!

 
Week 1
Mon, August 18 Wed, August 20 Fri, August 22
Lecture 1: Introduction
  • Introductions
  • Class/syllabus review
  • Tour of class resources
 
Handout: Syllabus
Reading: Start BtB Chapter 1
 
Lecture 2: Success in College
  • High school vs college
  • Tips for success
 
Handout: Reading Reflection Info
 
Reminder: Prepare for Friday Lab!
Reading (before lab!):
 
Lab 1:
Introduction to Scratch/BYOB
 
Week 2
Mon, August 25 Wed, August 27 Fri, August 29
Reading (read before class!):  
Lecture 3: Computer Science
  • What is Computer Science?
  • Impact of CS on the world
Due: BtB Chapter 1 Reflection
 
Lecture 4: Computing and Programming
  • Computing steps
  • Programming languages
  • Software development
  • Pair programming
 
Handouts:
Video (watch before lab!):  
Lab 2:
Interaction, variables, and sound
Week 3
Mon, September 1 Wed, September 3 Fri, September 5
 
No class - Labor Day!
Reading: BtB Chapter 1 Wrap-up
    Start BtB Chapter 2
 
Lecture 4: (continued from 8/27)
  • Understanding steps
  • Simulating a computation
  • Programming languages
 
Lecture 5: Intro to Abstraction
  • Basic idea
  • ...will need to continue later
 
Assigned:
Lab 3:
Abstraction with functions

Week 4
Mon, September 8 Wed, September 10 Fri, September 12
Lecture 5: Intro to Abstraction
  • Finish off discussion
 
In-class practice...
  • Practice with BYOB
  • Practice with abstraction
Due: BtB Chapter 2 Reflection
 
Lecture 6: Data Representation 1
  • Numbers
  • Number Bases
  • Binary
  • Conversions
Due: Assignment 1
 
Lab 4:
Starting a math tutor program
Week 5
Mon, September 15 Wed, September 17 Fri, September 19
Lecture 7: Data Representation 2
  • Hexadecimal
  • Conversions
  • Finite Representations
 
Assigned:
Reading: BtB Chapter 2 Wrap-up
    Start BtB Chapter 3
 
Lecture 8: Organizing Data
  • Abstract Data Types
  • Data Structures
  • Lists
(Didn't finish)
 
Lab 5:
Using lists for data
Week 6
Mon, September 22 Wed, September 24 Fri, September 26
Lecture 8: (Continued)
  • More Lists
  • Dictionaries and Trees
 
Lecture 9: Algorithms 1
  • Basic Definitions
(Didn't finish)
Due: BtB Chapter 3 Reflection
 
Lecture 9: (Continued)
  • Some Famous Algorithms
  • Problems vs Algorithms
  • Algorithm Trade-offs
  • Modern Computer Speeds
Lab 6:
Exploring programming languages
Week 7
Mon, September 29 Wed, October 1 Fri, October 3
Tips and suggestions for HW 2
 
Final bit from Lecture 9:
  • Moore's Law and the Singularity
 
Lecture 10: Algorithms 2
  • Algorithm "time"
  • Measuring time
Reading: BtB Chapter 3 Wrap-up
 
Due: Assignment 2
 
Lecture 11: Algorithms 3
  • Constant time
  • Loop patterns
    • Linear time
    • Quadratic time
  • Predicting times
 
Handout: Midterm Review
Lab 7:
Experimenting with algorithms
Week 8
Mon, October 6 Wed, October 8 Fri, October 10
 
Review for midterm
 
Midterm Exam!
Lab 8:
SnapPy Exploration and Testing
Week 9
Mon, October 13 Wed, October 15 Fri, October 17
 
No class - Fall Break!
Reading: Start BtB Chapter 4
 
Assigned:  
(Skipped Lecture 12)
 
Lecture 13: Reductions/Recursion
  • Solving one problem with another
  • Reduction examples
  • Recursion w/examples
Lab 9:
Self-similarity and recursion
 
Note: The lab write-up linked above is the "by popular demand" Python version. There is also a BYOB version of the lab on the lab exercises page, and students are free to do either version for the lab.
Week 10
Mon, October 20 Wed, October 22 Fri, October 24
Finish last topics from Lecture 13
 
Midterm exam solutions/discussion
Due: BtB Chapter 4 Reflection
 
Discussion: Class projects
 
Lecture 14: Data Representation 3
  • File formats and rendering
  • Text - ASCII
  • Formatted Text - HTML
  • Pictures - Grayscale
Due: Project team identification
 
Lab 10:
Games and Graphics in Python
Week 11
Mon, October 27 Wed, October 29 Fri, October 31
Finishing Lecture 14:
  • Pictures - Color
  • Human vision and color
 
Lecture 15: Data Representation 4
  • Sound - hearing and waveforms
Reading: BtB Chapter 4 Wrap-up
    Start BtB Chapter 5
 
Due: Assignment 3
 
Finishing Lecture 15:
  • Video and frame types
  • Data compression
Lab/Project Time:
Project proposal presentations
Week 12
Mon, November 3 Wed, November 5 Fri, November 7
Lecture 16: Data and Big Data
  • Measuring data
  • How much is that?
  • Where do I find data?
Due:
  • BtB Chapter 5 Reflection
  • Written project proposal
 
Finish up Lecture 16:
  • Data mining
  • Challenges
 
Lecture 17: The Internet (part 1)
  • Physical connections: Ethernet
  • Switches and MAC addresses
Lab/Project Time:
Project work time
Week 13
Mon, November 10 Wed, November 12 Fri, November 14
Finish up Lecture 17:
  • IP addressing and hierarchy
  • ARP and address conversion
 
Lecture 18: The Internet (part 2)
  • IP communication
  • DNS for looking up names
  • Routing between networks
  • Higher layers
  • What can go wrong
Reading: BtB Chapter 5 Wrap-up
    Start BtB Chapter 6
 
Finish up Lecture 18:
  • DNS for looking up names
  • Higher layers
  • What can go wrong
Lab/Project Time:
Project work time
 
Due: Project progress report (5:00)
Week 14
Mon, November 17 Wed, November 19 Fri, November 21
Lecture 19: Security and Privacy
  • Basic security goals
  • Eavesdropping
  • Encryption
Due: BtB Chapter 6 Reflection
 
Finish Lecture 19
  • Digital Signatures
  • Certificates
  • Tools: PGP, OTR, and Tor
Lab/Project Time:
Project presentations
Week 15
Mon, November 24 Wed, November 26 Fri, November 28
Reading: BtB Chapter 6 Wrap-up
 
Lecture 20: Artificial Intelligence
  • Basic Ideas/Areas
  • The Turing Test
  • Consequences
  • Future of AI/Robotics
 
No class - Thanksgiving!
 
No class - Thanksgiving!
Week 16
Mon, December 1 Wed, December 3
Topics:
  • Student-Choice Award
  • Review for Final Exam
 
Handout: Final Exam Review
Due: All project materials
 
Final Exam (12:00-3:00)
 
Final Exam: Wednesday, December 3, 12:00-3:00