Send Close Add comments: (status displays here)
Got it!  This site uses cookies. You consent to this by clicking on "Got it!" or by continuing to use this website.nbsp; Note: This appears on each machine/browser from which this site is accessed.
CS 101 SPRING 2020: Calendar


1. CS 101 SPRING 2020: Calendar

Note: This calendar and coverage is subject to change. Major changes to notes can happen until after that class meeting. Minor changes to notes can happen after that class meeting.
 CS101 sections: [30 meetings]
 CS101 calendar: [30 meetings]
SundayMondayTuesdayWednesdayThursdayFridaySaturday
Jan 19
Jan 20
Jan 21
Jan 22
Jan 23
#1
Jan 24
Jan 25
Jan 26
Jan 27
Jan 28
#2
Jan 29
Jan 30
#3:  L1   Q1 
Jan 31
:  A1 
Feb 1
Feb 2
Feb 3
Feb 4
#4
Feb 5
Feb 6
#5:  L2   Q2 
Feb 7
:  A2 
Feb 8
Feb 9
Feb 10
Feb 11
#6:  L3 
Feb 12
Feb 13
#7:  Q3 
Feb 14
:  A3 
Feb 15
Feb 16
Feb 17
Feb 18
#8:  L4 
Feb 19
Feb 20
#9
Feb 21
:  A4 
Feb 22
Feb 23
Feb 24
Feb 25
#10:  L5   Q4 
Feb 26
Feb 27
#11:  E1   E2 
Feb 28
:  A5 
Feb 29
Winter Break
Mar 1
Winter Break
Mar 2
Winter Break
Mar 3
Winter Break
Mar 4
Winter Break
Mar 5
Winter Break
Mar 6
Winter Break
Mar 7
Winter Break
Mar 8
Winter Break
Mar 9
Mar 10
#12:  L6 
Mar 11
Mar 12
#13:  Q5 
Mar 13
:  A6 
Mar 14
Mar 15
Mar 16
Mar 17
#14:  L7 
Mar 18
Mar 19
#15:  Q6 
Mar 20
:  A7 
Mar 21
Mar 22
Mar 23
Mar 24
#16:  L8 
Mar 25
Mar 26
#17
Mar 27
:  A8 
Mar 28
Mar 29
Mar 30
Mar 31
#18:  L9   Q7 
Apr 1
Apr 2
#19:  Q8 
Apr 3
:  A9 
Apr 4
Apr 5
Apr 6
Apr 7
#20:  E3   E4 
Apr 8
Apr 9
Spring Break
Apr 10
Spring Break
Apr 11
Spring Break
Apr 12
Spring Break
Apr 13
Spring Break
Apr 14
#21:  L10 
Apr 15
Apr 16
#22:  Q9 
Apr 17
:  A10 
Apr 18
Apr 19
Apr 20
Apr 21
#23:  L11 
Apr 22
Apr 23
#24:  Q10 
Apr 24
:  A11 
Apr 25
Apr 26
Apr 27
Apr 28
#25:  L12 
Apr 29
Apr 30
#26:  Q11 
May 1
:  A12 
May 2
May 3
May 4
May 5
#27:  Q12 
May 6
May 7
#28:  E5   E6 
May 8
Reading Day
May 9
Final Exams
May 10
Final Exams
May 11
Final Exams
May 12
#29:  E7   E8 
May 13
Final Exams
May 14
#30:  E9 
May 15
Commencement
May 16
 CS101 meetings summary: [30 meetings]
 CS101 meetings details: [30 meetings]
Thu, Jan 23 : #1: Intro, software installation, checks, etc. [notes]
  • Tutors: Spring 2020
  • Robin Snyder: office hours and class times
  • Welcome to this class
  • Syllabus: CS 101 - Spring 2020
  • Studying and learning
  • Introduction to computer science


  • This is a collection of notes on Cygwin that was updated on 2020-03-13. Cygwin is used in the classroom in KEC 119 for CS 101 and CS 496.

    See also:
  •  How to succeed in CS 101  (note: links in gray background are from previous CS notes page)
  •  Resources  (Cygwin on Windows, Linux, Mac)
  •  Tutoring  (schedule is not current but other info is, tutors to be announced soon)
  •  Reference card  (this is a PDF of hints on C)
  • Tue, Jan 28 : #2: Intro to CS, edit-compile-run, submit [notes]
  • The C programming language
  • C: Intro and edit-compile-run
  • C: A first program
  • C preprocesser introduction
  • C: Detected errors
  • How to study multiple choice questions
  •  Lecture 1: printf, scanf, int variables 
  •  Textbook: Chapter 1, 2 
  • Thu, Jan 30 : #3: Output: Text strings [notes]
  • L1: Lab#1: Output name in quotes (due Thu, Jan 30, available)
  • Q1: Quiz#1: 20 questions from lessons 1-2 (on Thu, Jan 30)
  • Character data
  • Character data
  •  Textbook: Chapter 3 
  • A1: Asmt#1: Name in big letters (due Fri, Jan 31, available)
  • Tue, Feb 4 : #4: Input, process: Literals, variables, assignment [notes]
    Start L2 and A2 before coming to class. As soon as you get stuck for more than, say, 5 minutes, then stop for the day. Continue the next day the same way. If you wait until class to start, you may have trouble getting everything done on time because your brain can only absorb a limited amount of new information each day.
  • Computer science
  • Tabs and spaces in code files
  • C: Comments on source code
  • Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
  • C: Literals
  • C: Variables
  • C: Expressions
  • C: Statements
  • C: Output statements
  • C: Input statements
  • C: Assignment statements
  • Area of a trapezoid
  • Thu, Feb 6 : #5: Input, process: continued [notes]
  • L2: Lab#2: Simple input process output (due Thu, Feb 6, available)
  • Q2: Quiz#2: 20 questions from lessons 3-4 (on Thu, Feb 6)
  • C: Floating point approximations
  • (more fine-grain coverage of concepts from last lesson)
  • A2: Asmt#2: Area of a trapezoid (due Fri, Feb 7, available)
  • Tue, Feb 11 : #6: Process: Assignment, expressions continued [notes]
  • L3: Lab#3: Euclidean distance (due Tue, Feb 11, available)
  • keep working and spending time until it makes sense - it often takes half the semester or more
  • Program aspects
  • Program development
  • Program style guidelines
  • Edit-compile-run diagram
  • C: Type casts
  • Simple strings in C
  • Euclidean distances
  • One dimensional distance
  • C: Constants
  • C math functions
  • Map distances
  • Thu, Feb 13 : #7: Style and program coding [notes]
  • Q3: Quiz#3: 20 questions from lessons 4-6 (on Thu, Feb 13)
  • Style comments
  • Programs that write programs
  • (introduced conditional logic, to be covered in detail next lesson)
  • A3: Asmt#3: Map distances (due Fri, Feb 14, available)
  • Tue, Feb 18 : #8: Characters, conditions, decisions [notes]
  • L4: Lab#4: Quadrant determination (due Tue, Feb 18, available)
  • L4 and A4 are available. Do not use features of C not covered in the notes through this week.
  • Style comments: more
  • C: Chars
  • Conditional processing
  • C: Conditions
  • Decision trees
  • C: If examples and refactoring
  • Thu, Feb 20 : #9: Conditions, decisions [notes]
  • (last lesson continued, with more finer points of conditionals)
  • Decision tree code
  • C: Else If
  • C: Boolean conditions
  • C: Boolean operations
  • A4: Asmt#4: Arithmetic operations (due Fri, Feb 21, available)
  • Tue, Feb 25 : #10: Iteration without loops [notes]
  • L5: Lab#5: Iteration without loops (due Tue, Feb 25, available)
  • Q4: Quiz#4: 20 questions from lessons 7-10 (on Tue, Feb 25)
  • C: Extended truth tables
  • C: Short circuit evaluation
  • Area of a triangle
  • Negative numbers and absolute value
  • C: Iteration without a loop
  • Debugging via output
  • Thu, Feb 27 : #11: E1: Exam#1 [notes]
  • E1: Exam#1: 40 questions from lessons 1-10 (on Thu, Feb 27)
  • E2: Exam#1: program 1 (on Thu, Feb 27)
  • As a change to the exam policy, you will be allowed access to the class web site while taking the program part of the exam. You are not to access other web sites, email, etc. During the exam day, the background color of the class site pages will be tinted cyan so it would be obvious to anyone looking that access being made to a non class web page.
  • Exam taking for CS101
  • Note: following added 2020-04-26 to allow these questions to be asked separately from other lessons.
  • Assignment statements with variables
  • Assignment statements with arrays 0
  • Assignment statements with arrays 1
  • Assignment statements with arrays 2
  • Assignment statements with records 0
  • Assignment statements with records 1
  • A5: Asmt#5: Triangle area (due Fri, Feb 28, available)
  • Tue, Mar 10 : #12: Repetition: while loops [notes]
  • L6: Lab#6: Iteration with loops (due Tue, Mar 10, available)
  • For those who are running programs manually rather than using automated input, as we get into loops and arrays, it will become increasingly hard to type all of the input into running programs.
  • Logical errors
  • Pseudo-code and loops
  • While loops that count
  • C: While loops for input
  • Pipes and redirection
  • Thu, Mar 12 : #13: Repetition: while loops [notes]
  • Q5: Quiz#5: 20 questions from lessons 9-12 (on Thu, Mar 12)
  • Area of a trapezoid
  • Area using trapezoidal method
  • C: Loops for data pairs using while
  • Counting
  • A6: Asmt#6: Integration using trapezoids (due Fri, Mar 13, available)
  • Tue, Mar 17 : #14: Repetition: nested while loops [notes]
  • L7: Lab#7: Vectors (due Tue, Mar 17, available)
  • Zoom recording: (login required)
  • C: Loops for data triples
  • Area of a polygon
  • Validating data
  • Nested loops using while loops
  • Thu, Mar 19 : #15: Repetition: for loops [notes]
  • Q6: Quiz#6: 20 questions from lessons 10-14 (on Thu, Mar 19)
  • Zoom recording: (login required)
  • For loops
  • C: For loops for input
  • C: Loops for data triples using for
  • Nested loops using for loops
  • Top-down thinking
  • A7: Asmt#7: Polygon area (due Fri, Mar 20, available)
  • Tue, Mar 24 : #16: 1D arrays and lists [notes]
  • L8: Lab#8: Vectors with arrays (due Tue, Mar 24, available)
  • Zoom recording: (login required)
  • Code style improvement
  • C: Variables, arrays and records (updated on 2020-03-29 to show more detail, records, etc.)
  • Array diagrams
  • Input, process, output using arrays
  • Arrays and lack of bounds checking
  • Top-down  development of a program (ideas of which I went over in class using L7)
  • Thu, Mar 26 : #17: 1D arrays and sorting [notes]
  • Zoom recording: (login required)
  • Winmerge: Comparing files (used WinMerge to compare solutions to L7 and L8)
  • talked some about verbosity levels in most programs and operating systems (via system event logs)
  • Arrays: maximum value
  • Code and data driven programming
  • Variables, arrays and records (diagrams added for visual comparison on 2020-03-27)
  • Turing machines and Lambda calculus
  • Bubble sort
  • A8: Asmt#8: Polygon area with arrays (due Fri, Mar 27, available)
  • Tue, Mar 31 : #18: Record structures [notes]
  • L9: Lab#9: Vectors with records (due Tue, Mar 31, available)
  • Q7: Quiz#7: 20 questions from lessons 9,13 (on Tue, Mar 31)
  • Zoom recording: (login required)
  • (go back and look at updated variables, arrays and records page)
  • Trailer loops with data sets (may help on L9 and A9)
  • Web-based C IDE
  • Abstraction
  • A 2D array example
  • Thu, Apr 2 : #19: Record structures [notes]
  • Q8: Quiz#8: 20 questions from lessons 15-18 (on Thu, Apr 2)
  • I had to reset the original quiz. I still have a record of the practice quizzes taken.
  • Zoom recording: (login required)
  • (we went over info on the exam - see next lesson notes)
  • Endfile loops with data sets
  • Abstraction and psychological chunking
  • Arrays: Case study of large powers of two
  • CS: code improvement
  • A9: Asmt#9: Polygon area with records (due Fri, Apr 3, available)
  • Tue, Apr 7 : #20: E2: Exam#2 [notes]
  • E3: Exam#2: 40 questions from lessons 12-19 (on Tue, Apr 7)
  • E4: Exam#2: program 2 (on Tue, Apr 7)
  • C: Record structures with strings (review of previous material, but might be useful for the program part of the exam)


  • There will be two parts to exam#2.
    • E3: Multiple choice part: Practice previews by Sunday.
    • E4: Program part: Like a lab, available 7 A.M. day of exam. Due that day. No outside help. Tutors can only help on computer not-working issues or questions that are not directly related to the problem. You would have to ask questions from the notes on how certain ideas work, not how those ideas relate to the exam problem. Make sure it is your own work. There are various ways to detect work that is not your own work - I know about and have used those ways in the past.
  • Common computer terms and definitions
  • Tue, Apr 14 : #21: Abstraction: functions and parameters [notes]
  • L10: Lab#10: Songs with variables 1 (due Tue, Apr 14, available)
  • Zoom recording: (login required)
  • Communication models
  • C: Procedural abstraction introduction
  • C: Procedural abstraction using variables (needed for L10 and A10)
  • Stacks: functions, modules
  • Thu, Apr 16 : #22: Abstraction: functions with parameters [notes]
  • Q9: Quiz#9: 20 questions from lessons 20 (on Thu, Apr 16)
  • Zoom recording: (login required)
  • Nested function calls
  • C: routine variations for variables
  • String input
  • Functions
  • Meta as a prefix
  • A10: Asmt#10: Songs with variables 2 (due Fri, Apr 17, available)
  • Tue, Apr 21 : #23: Abstraction: functions with arrays [notes]
  • L11: Lab#11: Songs with arrays 1 (due Tue, Apr 21, available)
  • Zoom recording: (login required)
  • Bloom's hierarchy of educational objectives
  • C: Constants and defined literals
  • C: Strings and endfile loops
  • C: Procedural abstraction using arrays (needed for L11 and A11)
  • Procedure to swap values
  • Meta-language techniques
  • Computer bugs and testing
  • Thu, Apr 23 : #24: Abstraction: functions with arrays [notes]
  • Q10: Quiz#10: 20 questions from lessons 18-19,21-23 (on Thu, Apr 23)
  • Zoom recording: (login required)
  • Recursion
  • Iteration via recursion
  • Reverse input without array
  • Failure and recovery: MTTF and MTTR
  • A11: Asmt#11: Songs with arrays 2 (due Fri, Apr 24, available)
  • Tue, Apr 28 : #25: Record structures and parameter passing [notes]
  • L12: Lab#12: Songs with records 1 (due Tue, Apr 28, available)
  • Zoom recording: (login required)
  • focus this week: record structures and functions with some array examples
  • C parameter passing issues
  • C: routine variations for records
  • Debugging output using defined macros
  • C: Procedural abstraction using records
  • Permutation: Introduction
  • Permutations: C code
  • Thu, Apr 30 : #26: Permutations, searching, Towers of Hanoi [notes]
  • Q11: Quiz#11: 20 questions from lessons 11 (on Thu, Apr 30)
  • note: programming questions for Q11 added under lesson#11: Exam#1


  • Zoom recording: (login required)
  • Any structure can have a field that is a structure.
  • Linear search: two ways
  • Magic square grid
  • Permutations: Applications
  • C preprocessor defined macros
  • Towers of Hanoi (started this, think about solution for next time)
  • A12: Asmt#12: Songs with records 2 (due Fri, May 1, available)
  • Tue, May 5 : #27: Preprocessor, modules, assertions [notes]
  • Q12: Quiz#12: 20 questions from lessons 28 (on Tue, May 5)
  • note: programming questions for Q12 added under lesson#28 Exam#3


  • Zoom recording: (login required)
  • C: Assertions
  • C: Goto statement
  • C: Ternary operator
  • Command line arguments to C programs
  • Alan Kay and Smalltalk
  • The C++ programming language
  • The Java programming language
  • Sorting: introduction
  • Insertion sort in C (based on linear search from last lesson)
  • Towers of Hanoi: code complexity
  • Towers of Hanoi in various languages
  • Computer science: areas of study
  • (topics collected here that will be moved earlier if needed)
  • 2D array processing using functions (example)
  • Modules and interfaces in C
  • Thu, May 7 : #28: E3: Exam#3 [notes]
  • E5: Exam#3: 40 questions from lessons 20-28 (on Thu, May 7)
  • E6: Exam#3: program 3 (on Thu, May 7)
  • I decided that rather than have two separate multiple choice exams, there would only be one with all the questions combined. This will be for E5: Exam#3 (meeting #28) and E7: Final (meeting #29).
  • Note: following added 2020-05-02 to allow these questions to be asked separately from other lessons.
  • Statements with variables
  • Statements with functions
  • Statements with procedures
  • Statements with conditional statements
  • Statements with conditional expressions
  • Statements with while loops
  • Tue, May 12 : #29: Final exam: program 4 for all, questions for 8:00 and 11:00 sections [notes]
  • E7: Final: 60 questions from lessons 1-28 (on Tue, May 12)
  • E8: Final: program 4 (on Tue, May 12)
  • For any submission or scoring issue, an email should be sent to robinsnyder@gmail.com from your YCP account with the subject line of I1 (for issue). Describe the issue. Use a separate email for each different issue as it helps me keep handled and unhandled issues separate. This applies even if you have previously told me verbally or sent an email.

    All scoring, except the final exam, will be posted by Saturday, May 9. Any scoring issue (except for the final exam) needs to be brought to my attention by Monday, May 11, via an I1 submission issue email (described above). Any score for which a scoring issue was not submitted by then will stand as posted.
    Thu, May 14 : #30: Final exam - program 5 for all, questions for 9:30 section [notes]
  • E9: Final: program 5 (on Thu, May 14)
  • Final exam date and time (Zoom):
  • CS 101 : TR at 8:00-9:15 : Final is on Tue, May 12 from 8:00 to 10:00 (Zoom)
  • CS 101 : TR at 9:30-10:45 : Final is on Thu May 14 from 8:00 to 10:00 (Zoom)
  • CS 101 : TR at 11:00-12:15 : Final is on Tue May 12 from 1015-1215 (Zoom)


  • Note:
    • You may take the multiple choice part of the final exam at 7:30 P.M. via Zoom using the Tutor chat link. Please let me know before arriving.
    • Final program #1 (E8, all sections) is available about 7 AM on Tue May 12, due that day, no help allowed.
    • Final program #2 (E9, all sections) is available about 7 AM on Thu May 14, due that day, no help allowed.
  • CS 101: more details tba here as available
  • Class contingency plans for COVID-19
  • Tutors: Spring 2020 (Zoom link for tutoring session added)
  • At class time, login to the web system. Then join the Zoom meeting.
  • Outside of class, click time on the "Let's Chat!" (lower right of web page) to connect and ask questions.
  • CS 101: One way to help with program issues is to grab a screen image of the issue(s) and then send them in Zoom through the chat window. An easy to use program for this is LightShot (do Internet search, install, etc.).
  • Internet connection issues (fyi)
  • Backup power supply (fyi)