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 20 Wed, August 22 Fri, August 24
Topics - Lecture 1:
  • Introductions
  • Class/syllabus review
  • Advice for students
  • Student background survey
Handout: Syllabus
Topics - Guest Lecture:
  • Computer Science at UNCG
Lab 1:
Introduction to Scratch/BYOB
 
Related handouts:
Week 2
Mon, August 27 Wed, August 29 Fri, August 31
Reading (read before class!): Topics - Lecture 2: (part 1)
  • What is Computer Science?
  • Impact of CS on the world
Discussion: BtB Chapter 1
Reflection due Aug 28 @ 5:00
 
Topics - Lecture 2: (part 2)
  • Finish lecture 2 topics
Lab 2:
Interaction, variables, and sound
Week 3
Mon, September 3 Wed, September 5 Fri, September 7
 
No class - Labor Day!
Assigned: Topics:
Lab 3:
Abstraction with functions

Week 4
Mon, September 10 Wed, September 12 Fri, September 14
Topics - Lecture 4:
  • Data Representation - numbers
  • Number Bases
  • Binary
Discussion: BtB Chapter 2
Reflection due Sept 11 @ 5:00
 
Note: This discussion took the full class period - other topics delayed until next Monday.
Due: Assignment 1
 
Lab 4:
Starting a math tutor program
Week 5
Mon, September 17 Wed, September 19 Fri, September 21
Assigned: Assignment 2
 
Topics:
  • More resources: Video walkthroughs
  • Overview of Assignment 2
Lecture 4: (cont'd)
  • Finish Binary Conversions
  • Hexadecimal
Topic: In-class BYOB Practice
Lab 5:
Using lists for data
Week 6
Mon, September 24 Wed, September 26 Fri, September 28
Topics:
  • Demos of Student Work
Lecture 5: Algorithms
  • Basic Definitions
  • Some Famous Algorithms
  • Problems vs Algorithms
  • Algorithm Trade-offs
  • Modern Computer Speeds
Discussion: BtB Chapter 3
Reflection due Sept 25 @ 5:00
 
Topics:
Lecture 5 wrap-up
  • A Flood of Data...
Lecture 6 - Algorithms, Part 2
  • What is "time" for algorithms?
Lab 6:
Experimenting with algorithms
Week 7
Mon, October 1 Wed, October 3 Fri, October 5
Due: Assignment 2
 
Topics:
Lecture 6 - Algorithms, Part 2
  • Basic steps and timing
  • Constant time
  • Loop patterns
    • Linear time
    • Quadratic time
  • Predicting times
Topics:
Solution to Lab 6 question
Lecture 6 - Algorithms, Part 2
  • Logarithmic time
  • Exponential time
  • Comparing time complexities
Lecture 7: Concurrency
  • What is Concurrency?
  • Traditional model
  • Time-division multiplexing
  • Multicore model
  • Moore's Law and multicore
  • Kinds of concurrency
Lab 7:
Concurrency and parallelism
Week 8
Mon, October 8 Wed, October 10 Fri, October 12
Topics: Lecture 7: Concurrency
  • Parallel algorithms/speedup
  • Race conditions
  • Deadlock
Review for midterm
 
Midterm Exam!
Lab 8:
Send in the clones
Week 9
Mon, October 15 Wed, October 17 Fri, October 19
 
No class - Fall Break!
Topics:
Lecture 8: Reductions and Recursion
  • Solving one problem with another
  • Reduction examples
  • Recursion w/examples
Lab 9:
Self-similarity and recursion
Week 10
Mon, October 22 Wed, October 24 Fri, October 26
Lecture 9: Data Representation, part 2
  • File formats and rendering
  • Text - ASCII
  • Formatted Text - HTML
  • Pictures - Grayscale
  • Pictures - Color
Topics:
  • Project Discussion
Lab 10:
Putting it all together
Week 11
Mon, October 29 Wed, October 31 Fri, November 2
Lecture 9 - continued
  • Human vision and color
  • Sound - hearing and waveforms
  • Video and frame types
  • Data compression
Discussion: BtB Chapter 4
Reflection due Oct 30 @ 5:00
Lab/Project Time:
Project proposal presentations
Week 12
Mon, November 5 Wed, November 7 Fri, November 9
Solution to Lab 9 extra credit
 
Lecture 10 - Artificial Intelligence
  • Basic Ideas/Areas
  • The Turing Test
  • Consequences
  • Future of AI/Robotics
Discussion: BtB Chapter 5
Reflection due Nov 6 @ 5:00
Lab/Project Time:
Project work time
Week 13
Mon, November 12 Wed, November 14 Fri, November 16
Lecture 11 - The Internet
  • Physical connections: Ethernet
  • Switches and MAC addresses
  • IP addressing and hierarchy
  • ARP and address conversion
Discussion: BtB Chapter 6
Reflection due Nov 13 @ 5:00
 
Lecture 11 - continued
  • IP communication
  • DNS for looking up names
  • Routing between networks
  • Higher-layer issues: TCP
Lab/Project Time:
Project work time
Week 14
Mon, November 19 Wed, November 21 Fri, November 23
Student choice day:
Copyright and DRM
  • More on SOPA and PIPA
  • P2P technologies: Napster, Gnutella, and Bittorrent
  • DRM and Sony rootkit
 
No class - Thanksgiving!
 
No class - Thanksgiving!
Week 15
Mon, November 26 Wed, November 28 Fri, November 30
Limits and Future of Computing
  • Traveling Salesman Problem
  • NP-completeness
  • Uncomputability
  • Quantum computing
  • DNA computing
Due: Assignment 3
 
Class Time (attendance optional):
  • Team presentation prep
Lab/Project Time:
Project presentations
Week 16
Mon, December 3
Topics:
  • Project awards
  • Class review
  • Preparation for Final Exam
 
Final Exam: Wednesday, December 5, 12:00-3:00