IMPORTANT NOTE: The following schedule is still being updated for the Spring 2022 quarter (much of it is taken from Spring 2021), but it should give you a general idea of the pace and timing of the class. THIS SCHEDULE WILL CERTAINLY CHANGE AS THE QUARTER PROGRESSES. As the term progresses, I will be posting notes and other readings for you. Please don't depend on this information in purchasing airline tickets or making other irrevocable scheduling decisions without consulting me first.

Reading assignments are from Kernighan's Understanding the Digital World (2nd Edition) unless specified otherwise.

Jump directly to Week 1 | Week 2 | Week 3 | Week 4 | Week 5 | Week 6 | Week 7 | Week 8 | Week 9 | Week 10



DAY PREPARATION BEFORE CLASS IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
Week 1
Monday
(M1)

MASKS REQUIRED !

Introduction/Syllabus
Format of this course

(Windows) Visual Code and Python installation video -- 4 min

(Windows) JES4py and C++ (VS Tool Builder) installation video -- 3 min

Big-Picture Schedule for the Term (diagram)

Programming & Computer Science
(video for review, but created for COMP 110 -- 4 min)
Video:
Watch the Introduction to the Collaboration Center video (3.5 min)
Tasks:
Fill out your introduction/name card in the Intros powerpoint which can be found in the CS 107 Team.
Problem Set 1A Form. Do Wednesday before class.
Wednesday
(W1)
Lab Preparation:
Make sure you have VScode and Python installed on your computer.
Reading:
Computer as Universal Machine
Using VSCode to Program with Python and Jes4py

MASKS REQUIRED !

Mini-Lab: Getting Started with JES
Tasks:
Complete Getting Started with JES Mini-Lab
Work on Problem Set 1B (due Friday before class)

Video:
Introduction to Kit
LAB 1
Reading:
Functions
Video:
Functions (8.5 min)

MASKS REQUIRED !

Activity: Exploring Functions
Friday
(F1)
Due before Class:
Complete Problem Set 1A (form).
Submit Problem Set 1B to Kit.
Submit Getting Started with JES Mini-Lab to Kit.

MASKS REQUIRED !

Continue Exploring Functions (due Monday before class)
Reading:
  • Understanding the Digital World.
    • Chapter 1, Sections: 1.1.1-1.1.3, 1.2, and 1.3.
    • Chapter 2, Sections: 2.1 and 2.2
DAY PREPARATION BEFORE CLASS IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
Week 2
M2
Due before Class:
Exploring Functions Lab (from Lab 1)
Reading:
Introduction to Pictures
Video:
More on functions - 14.5 min

MASKS REQUIRED !

Mini-Lab: Drawing Pictures
Finish up the Mini-Lab.
Work on Exercises 1-9 in the Intro to Pictures reading.
W2
Due before Class:
Exercises 1-9 in Intro to Pictures
Drawing Pictures Mini-Lab (from M2)
Reading:
Pictures and Loops
Videos:
Intro to Picture Encoding - 9 min
Pictures and Loops - 14 min (Apologies for the construction noises in the background!)

MASKS REQUIRED !

Mini-Lab: Manipulating Pixels in a Picture
(You may find the JES Picture Functions Quick Reference helpful.)
Finish up the Mini-Lab.
Work on Lab Preparation. (see LAB 2)
LAB 2
Due before Lab:
Manipulating Pixels Mini-Lab (From W2)
Lab Preparation:
Finish Manipulating Pixels Mini-Lab
Analysis Questions from Manipulating Pixels
Type in the negative, grayscale, and weightedGrayscale functions from the reading.
Reading:
Make sure you have finished reading Pictures and Loops
Video:
Using Functions Inside Other Functions - 6.5 min

MASKS REQUIRED !

Lab: Simple Picture Manipulation
Finish up the lab.
F2
Due before Class:
Lab 2
Reading:
More with Picture and Loops: Looping through a subset of a picture
Video:
More with Loops: Looping through a subset of a picture - 14.5 min

MASKS REQUIRED !
Last Reminder!!!

Where are we in this course?

Mini-Lab: More Practice with For Loops

Reflection 1: Week 1 and 2 Reflection
DAY PREPARATION BEFORE CLASS IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
Week 3
M3
How Do Computers Represent Numbers?
Video: A Quick Look at Representing Numbers in Decimal, Binary, Octal, and Hexadecimal (12 min) (slides)

How Do Computers Represent Other Data?
In Kernighan's Understanding the Digital World, read the rest of Chapter 2 (2.3 and 2.4)

Additional Resources: Binary and Hexadecimal Number Systems on Khan Academy.
Activity: ASCII to Binary Mini-Lab
Reference: ASCII Table
Due Wednesday before class

Continue with Mini-Lab from Friday (if time permits)
Complete Problem Set on Number Representation (Due Wednesday)
W3
Due before Class:
More Practice With For Loops Mini-Lab (From F2)
ASCII Mini-Lab
Reading:
Reflections and Rotations
Video:
Reflections and Rotations - 10.5 min
Mini-Lab: Reflecting Pictures  
LAB 3
Due before Lab:
Problem Set on Number Representation
Reading:
Read the Lab
Videos:
How to copy a picture into another picture (including How to create a Matte effect) - 9.5 min
Scaling and Tiling - 2 min
Lab: CopyInto and Scaling Finish Lab
F3
Due before Class:
Reflecting Pictures Mini-Lab (From W3)
CopyInto and Scaling Lab
Reading:
Cropping Pictures
Video:
Cropping Pictures - 4 min
Mini-Lab: Using copyInto and cropPicture
DAY PREPARATION BEFORE CLASS IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
Week 4
M4
CopyInto and CropPicture Mini-Lab (From F3)
Reading:
Conditional Statements
Videos:
Conditional Statements - 10.5 min
Swapping Backgrounds - 4 min (first 20 seconds are review, then it goes on to new material)
Mini-Labs: Selectively Changing Colors

Take or find pictures for Lab 4. (If you haven't done so already, watch the Taking or Choosing Pictures for Lab 4 video.)
W4
Mid Semester Reflection Part 1:
Problem Set: Duplicate Function
Semester Reflection Part 2:
if statements, binary, hex, english (human readable)
Video:
Taking or Choosing Pictures for Lab 4 - 3 min (600 x 400 pixels or 400 x 600 pixels are pretty good sizes for landscape or portrait mode pictures; larger pictures take more time to process.)
LAB 4
Due before Lab:
Selectively Changing Colors
Video:
Introduction to Lab 4 - 11 min
(If you haven't done so already, watch the Taking or Choosing Pictures for Lab 4 video about taking or choosing pictures for this lab.)
Photo day!!!: do not wear green as we'll be taking pictures in front of a green screen. Meet in the library foyer
Combining Pictures
Finish up the Lab

Begin to work on practice online Problem Set (for loops) (due Monday)
F4
Reading:
Blurring and Scaling
Mini-Lab: Blurring and Scaling
DAY PREPARATION BEFORE CLASS IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
Week 5
M5
Due before Class:
Problem Set (for loops)
Blurring and Scaling Mini-Lab
Combining Pictures Lab

Reading:
Python Syntax
Complete the first exercise from the Debugging Mini-Lab

Begin to work on the Collage Project.
Complete the Debugging Mini-Lab started in class.
W5
Video:

Are Alg Anal videos still useful now that we have readings from Kernighan?
Intro to Algorithms and Algorithm Analysis
Video: Watch first 9.5 min
Problems, Algorithms, and Programs (00:00 - 3:44)
Example: Linear and Binary Search (3:44 - 9:25) -- Careful! We got right and left backwards a couple of times between 6:30 and 7:00. (Oops!)
See related Searching Code
Readings from Kernighan's Understanding the Digital World:
Chap. 4: Intro, 4.1, 4.2 (pp. 59-63)
Chap. 4 — Sorting: 4.3 (pp. 63 - 67)

Note: It would seem that the current schedule never does go back to the final 4.5 min (Computable/Non, Tractable/Intractable) of this video. Comparable reading assignment is currently W10.
Due M6 by 23:59
New Problem Set (if statements)

Where are we in this course?

Algorithms Slide

3D Picture

Collage Project (due no later than M7)
Read Through
Selection Sort
Insertion Sort
Merge Sort
Quick Sort
LAB 5
Video:
Time Complexity Demonstration - 9 min
Hands-on Exercises on Searching and Sorting Algorithms
Sorting Visualization Reference Materials:
Small-Scale, step-by-step animations
Comparisons
Animations with larger datasets

F5 Due before Class (No Extensions!!!):
Mid Semester Reflection Part 1:
Problem Set: Duplicate Function
Semester Reflection Part 2:
if statements, binary, hex, english (human readable)
Introduction to Sound:
Instead of watching a video in class, watch the followng video before Monday and submit a reflection: Physics of Musical Instruments - approx 60 min
Complete a video presentation reflection using the Video Reflection Template

Optional Reading to Supplement Video:
CH 6.1 from Guzdial's book
DAY PREPARATION BEFORE CLASS IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
Week 6
M6
Due by 23:59
Video Reflection from Physics of Musical Instruments (F5)
Searching and Sorting Exercises (Lab 5)

Reading:
What is Sampling? What is the "Sample Rate"?
Volume
Sound Manipulations (1st 3 pages)

Videos:
Introduction to Sound - 5 min
Changing Volume - 7 min
Mini-Lab: Changing Volume
Semester Reflection 3 Complete 3rd reflection by 23:59 04/06 (Friday)
W6
Reading:
Sound Manipulations

Video:
Changing Frequency - 3 min
Mini-Lab: Changing Frequency
Finish up the Mini-Lab
LAB 6
Video:
Splicing Sounds - 7.5 min
Splicing Sounds
Finish the lab
F6
CS History: Concepts to Implementation
Video: The Machine that Changed the World, Part I (approx. 60 min.) is available from the Links to CS History Videos file in Kit.
Read: Intro to Part I Hardware (pp. 7-10) in Kernighan's Understanding the Digital World
Complete Semester Reflection 3.


Mini-Lab: Echoing Sounds and Shifting Frequencies
Complete a video reflective response on The Machine that Changed the World, Part I using the Video Reflective Response Markdown template. Include at least one additional thing you learned from the reading.
DAY PREPARATION BEFORE CLASS IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
Week 7
M7
Due by 23:59:
Video Reflection on CS History
3D Picture
Collage Project
Changing Volume
Changing Frequency
Splicing Sounds
Echoing Sounds and Shifting Frequencies

Reading:
Lists in Python

External Video: The Fetch-Execute Cycle: What's Your Computer Actually Doing? (9 min)

Mini-Lab:
Blending Sounds (Due M8 by 23:59)
Finish the Mini-Lab
Begin to work on the Audio Collage Project (Due M9 by 23:59)
If you're interested in other sounds you can use in your project, check out freesound.org. You'll need to be careful, though, to find sounds with equivalent sampling rates if you want to use them together in a sound collage.
W7
How Do Computers Represent and Run Programs?

Is this too much? Comment out one or more?
Reading from Kernighan's Understanding the Digital World:
Chap. 5: Intro, 5.1, 2 pages of 5.2 (pp. 73-77)
Video: Introduction to the Central Processing Unit (7 min)   (slides)
Sub-topics:
High-level languages vs. machine code and assembly code
Memory and the Central Processing Unit (CPU)
The fetch-execute cycle
Mini-Lab: Cropping Sounds (Due M8 by 23:59)

Assembly/Machine Language Exercise
Reference Material: Simple CPU Simulator — Recommendation: bring up in a separate browser window and scroll down to find the instruction set.
Finish the Mini-Lab
LAB 7
Lab: Machine Language, Assembly Language, and the CPU
In two side-by-side browser windows, bring up:
The Lab Instructions
The Simple CPU Simulator

Extra Credit: 5 points
Music Composition (Due 05/26 by 23:59)

Alternative: Do Music Composition Here & Echoing on F7.
Finish the lab
F7
DOGL - No Class.

Alternative: Do Simple Animations Here & Chromakey ML on M8.
DAY PREPARATION BEFORE CLASS IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
Week 8
M8
Due by 23:59:
Assembly/Machine Language Exercise
Blending Sounds
cropping sound
Lab: Machine Language, Assembly Language, and the CPU
Due M9 by 23:59
Simple Animations

Alternative: Do Simple Animations on F7 & Chromakey ML here.

Publicize Final Project if there will be one.
Finish the Mini-Lab
W8 Work on:
Audio Collage Project (Due M9 by 23:59)

Alternative: Chromakey Animation

Other alternatives: Binary Numbers, Work Day, DOGL, Recursion

LAB 8 Work on:
Final Semester Reflection (Program)

Alternatives: Chromakey, Animations, Work on Final PP
Finish lab
F8

Final Project Storyboards due here if there is a final project (See StoryBoard Template for details)
Mini-Lab Preparation:
Some functions in the More Animations mini-lab take a long time to process, so you will want to run them on small files. You may use functions you have written previously to make existing picture files smaller.
More Animations

Alternatives: MTCTW 1, Chromakey Animation, Assembly/Machine Language, Binary Numbers, Recursion
OR if M9 is Mem Day Boolean Logic here and More Animations later
Finish the Mini-Lab
DAY PREPARATION BEFORE CLASS IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
Week 9
M9
Due by 23:59:
Semester Reflection 4
Simple Animations
Audio Collage Project

Boolean Logic, Boolean Expressions, and Truth Tables
Video: Boolean Operations and Truth Tables - 8 min   (slides)
This video was created for COMP 105 and 110. The one difference for Python is that Python uses and instead of &&, or instead of ||, and not instead of !. (00:50 - 3:05)
Video: Introduction to Boolean Algebra (with hints for Hands-on Activity exercises) (17 min)   (PowerPoint slides)
Hands-On Boolean Logic Exercises (complete the exercises on pp. 3-6)
OR
Hands-On Boolean Logic Exercises (pdf)
(Here is a Markdown template for these exercises that you may use to format your answers.)
Finish the in-class activity

Very Important "Handout":
Pumpkin Logic (Venn Diagrams) :-)
W9
Due before Class:
Boolean Logic Exercises

LogicGates:
Video: Introduction to Logic Gates (11.5 min) (slides)
Video: Going from Truth Tables to Gates - 4 min (slide)
Two-part Hands-On Exercise on:
Assembly and Machine Language
Gates and Logic
Preparation for next week:
Download the Java Development Kit (JDK), if you don't have it already, and JFLAP. The JDK is available from Oracle (type "download jdk" into a browser). JFLAP is available from jflap.org. (You will have to fill out a form to let them know you are using it in a course; textbook is "NONE -- Intro to CS course at Kalamazoo College").
LAB 9 Due by 23:59
Music Composition
Logic Gates → Arithmetic:
Video: How Do Computers Do Binary Addition? - 10 min (slides)
Gates Lab
Finish lab

Very Important "Handout":
Very Important circuit diagram :-)

Interesting follow up video on making microprocessors: How to Make a Microprocessor (a brief demonstration of photo reduction) - 3 min
F9
Due before Class:
Gates Lab

Social, Ethical, and Privacy Issues

Keep intro video? Or unnecessary thanks to Kernighan?
Video: Brief Intro to Social/Ethical Issues in Computing (8 min) (PowerPoint slides)
Readings from Kernighan's Understanding the Digital World:
Chap. 9: 9.6 (pp. 174-176)
Chap. 10: 10.3-10.9 (pp. 185-202)
Chap. 13: Intro (pp. 239-240), first 4 paragraphs of 13.2 (p. 247)
You may be interested in reading the rest of Chap. 13, especially 13.2.1-13.2.2 on Tor and Bitcoin.
Video: Watch any 2 of the 3 talks from TEDxUNCCharlotte: Inclusion Drives Innovation
Ashley Rivenbark on how inclusive thinking ignites innovation (9:07 - 19:04)
Dr. Manuel Pérez-Quiñones on why technology should support bilingualism (19:04-38:40)
Dr. Diana Rowan on battling covert racism (38:40-53:42)
Should be DOGL Make-up Day
E.g., something like
Alyce will be available online for Catch-Up / Office Hours

Work Day
Prioritize your semester reflection!!!
Complete the video reflection over the weekend.
Complete a reflective response that reflects on the introductory video, the readings from Kernighan and and the two TED talks you chose, using the Video Reflective Response Markdown template
(Pretend the template says "reading and/or videos".)
DAY PREPARATION BEFORE CLASS IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
Week 10
M10
Memorial Day - no class
W10
Due by 23:59:
Final Semester Reflection (Program) Final Semester Reflection (Written)
Video Reflection
More Animations

Hard Problems and Complexity
Reading from Kernighan's Understanding the Digital World:
Chap. 4: 4.4, 4.5 (pp. 67 - 71)

Computational Models
Video: Finite State Automata and Turing Machines (12 1/2 min) (PowerPoint slides)
FSA's and Regular Expressions

Alternative: Algorithm Analysis, Halting Problem (and P vs NP if you are out of your mind LOL)
LAB 10
Halting Problem: Example of a Non-Computable Problem
Video: The Halting Problem (10 1/2 min) (PowerPoint slides)
Continue with FSA's and Regular Expressions

Turing Machines Mini-lab

Alternatives: Review for Final Exam, Work on Final Projects, Final Project Presentations
Finish lab
F10
Due before Class:
FSA's and Regular Expressions
Turing Machines Mini-lab

Final Projects Due (if there are final projects)

Wrap up
Course evaluations

Alternative: Final Project Presentations