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
Mon, August 19 Wed, August 21 Fri, August 23
Lecture 1: Introduction
  • Introductions
  • Class/syllabus review
  • Tour of class resources
 
Handout: Syllabus
Lecture 2: Success in College
  • High school vs college
  • Tips for success
 
Handouts:
Lab 1:
Introduction to Scratch/BYOB
 
Week 2
Mon, August 26 Wed, August 28 Fri, August 30
Reading (read before class!):  
Lecture 3: Computer Science
  • What is Computer Science?
  • Impact of CS on the world
 
Handout: Reading Reflection Info
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 2 Wed, September 4 Fri, September 6
 
No class - Labor Day!
Discussion: BtB Chapter 1
Reflection due Sept 3 @ 10:00am
 
Lecture 5: Intro to Abstraction   UPDATE: Only introduced concept
 
Assigned:
Lab 3:
Abstraction with functions

Week 4
Mon, September 9 Wed, September 11 Fri, September 13
Lecture 5: Intro to Abstraction
  • Abstraction in general
  • Abstraction in computing
Lecture 6: Data Representation 1
  • Numbers
  • Number Bases
  • Binary
  • Conversions
Lecture 7: Data Representation 2
  • Hexadecimal
  • Conversions
Due: Assignment 1
 
Lab 4:
Starting a math tutor program
Week 5
Mon, September 16 Wed, September 18 Fri, September 20
Lecture 7: (finish)
  • Finite Representations
 
Discussion: Assignment 2
 
Lecture 8: Algorithms 1
  • Basic Definitions
  • Did not finish...
 
Assigned:
Discussion: BtB Chapter 2
Reflection due Sept 17 @ 10:00am
 
Lecture 8: Algorithms 1
  • Did not get back to this...
 
Lab 5:
Using lists for data
Week 6
Mon, September 23 Wed, September 25 Fri, September 27
Lecture 8: Algorithms 1
  • Continued from last Monday
  • Some Famous Algorithms
  • Problems vs Algorithms
  • Algorithm Trade-offs
  • Modern Computer Speeds
Discussion: BtB Chapter 3
Reflection due Sept 24 @ 10:00am
 
Lecture 9: Algorithms 2
  • Algorithm "time"
  • Measuring time
Lab 6:
Experimenting with algorithms
Week 7
Mon, September 30 Wed, October 2 Fri, October 4
Lecture 10: Algorithms 3
  • Constant time
  • Loop patterns
    • Linear time
    • Quadratic time
  • Predicting times
 
Due: Assignment 2
 
Lecture 11: Algorithms 4
  • Logarithmic time
  • Exponential time
  • Comparing time complexities
 
Handout: Midterm Review
Lab 7:
Send in the clones
Week 8
Mon, October 7 Wed, October 9 Fri, October 11
 
Review for midterm
 
Midterm Exam!
Lab 8:
Mystery Lab Day!!!
(No Pre-Lab reading)
Week 9
Mon, October 14 Wed, October 16 Fri, October 18
 
No class - Fall Break!
Lecture 12: Reductions/Recursion
  • Solving one problem with another
  • Reduction examples
  • Recursion w/examples
Lab 9:
Self-similarity and recursion
 
Assigned:
Week 10
Mon, October 21 Wed, October 23 Fri, October 25
Lecture 13: Data Representation 3
  • File formats and rendering
  • Text - ASCII
  • Formatted Text - HTML
  • Pictures - Grayscale
  • Pictures - Color
  • Human vision and color
Discussion: BtB Chapter 4
Reflection due Oct 22 @ 10:00am
 
Discussion: Class projects
Due: Project team identification
 
Lab 10:
Shall We Play A Game?
Week 11
Mon, October 28 Wed, October 30 Fri, November 1
Lecture 14: Data Representation 4
  • Sound - hearing and waveforms
  • Video and frame types
  • Data compression
Lecture 15: Data and Big Data
  • Measuring data
  • How much is that?
  • Where do I find data?
  • Visualizing data
  • Data mining
  • Challenges
Lab/Project Time:
Project proposal presentations
Week 12
Mon, November 4 Wed, November 6 Fri, November 8
Lecture 16: The Internet (part 1)
  • Physical connections: Ethernet
  • Switches and MAC addresses
  • IP addressing and hierarchy
  • ARP and address conversion
Due:
  • Assignment 3
  • Written project proposal
 
Lecture 17: The Internet (part 2)
  • IP communication
  • DNS for looking up names
  • Routing between networks
  • Higher layers
  • What can go wrong
Lab/Project Time:
Project work time
Week 13
Mon, November 11 Wed, November 13 Fri, November 15
Lecture 18: Security and Privacy
  • Basic security goals
  • Eavesdropping
  • Encryption
  • Digital Signatures
  • Certificates
  • Tools: PGP, OTR, and Tor
  • Privacy: Cookies and DNT
Discussion: BtB Chapter 5
Reflection due Nov 12 @ 10:00am
... Online Discussion ...
 
Lecture: The CS Program at UNCG
Guest Lecture: Mark Armstrong
Due: Project progress report
 
Lab/Project Time:
Project work time
Week 14
Mon, November 18 Wed, November 20 Fri, November 22
Lecture 19: Artificial Intelligence
  • Basic Ideas/Areas
  • The Turing Test
  • Consequences
  • Future of AI/Robotics
Discussion: BtB Chapter 6
Reflection due Nov 19 @ 10:00am
Moved to Monday, Nov. 25
 
Catch-up on lectures (finish AI)
 
Discussion/work session:
  • Project presentation prep
Lab/Project Time:
Project presentations
Week 15
Mon, November 25 Wed, November 27 Fri, November 29
Discussion: BtB Chapter 6
Reflection due Nov 24 @ 10:00am
 
Lecture 20: Limits and Future of Computing
  • Traveling Salesman Problem
  • NP-completeness
  • Uncomputability
 
No class - Thanksgiving!
 
No class - Thanksgiving!
Week 16
Mon, December 2 Wed, December 4
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 4, 12:00-3:00