Stony Brook University – Spring 2020

Weekly Course Schedule

The following course schedule is tentative and subject to change. Except where noted, readings are taken from the optional textbook, Explorations in Computing: An Introduction to Computer Science and Python Programming by John S. Conery.

Homework assignments, lab assignments, lecure notes and sample programs are posted on Piazza.

Date Day # Lecture Meetings Lab Meetings Homework Assignments
1/28 Tu 1
  • Unit 0: Course Overview
  • Unit 1: What is Computational Thinking?
    • Read Chapter 1 of Conery
  • No lab sessions this week
  • Lab sessions will start meeting the week of February 4th
 
1/30 Th 2
  • Unit 2: Computer Programming Fundamentals
 
2/4 Tu 3
  • Unit 2: Computer Programming Fundamentals (cont.)
    • Python Variables, Expressions, Functions and if-statements
  • Handout: Basic arithmetic in Python
  • Lab Meeting #1:
    • Learn the basics of PyCharm
    • Submit work to Blackboard
    • Topic: basic mathematical expressions and functions
 
2/6 Th 4
  • Unit 2: Computer Programming Fundamentals (cont.)
    • Python Variables, Expressions, Functions and if-statements
  • Homework #1 (due 2/16)
    • PyCharm basics; basics of Python variables, expressions, if-statements and functions
2/11 Tu 5
  • Unit 3: Iteration, Lists and Algorithm Design
    • Python Lists and for-loops
    • Read Chapter 2 of Conery
  • Lab Meeting #2:
    • Use the PyCharm debugger to trace the execution of programs and record the results in Blackboard
    • Topic: basic if-statements and relational operators
 
2/13 Th 6
  • Unit 3: Iteration, Lists and Algorithm Design (cont.)
 
2/18 Tu 7
  • Unit 4: Searching and Sorting Algorithms; Scalability
    • Python Boolean Operators and while-loops
    • Read Chapter 4 of Conery
  • Lab Meeting #3: for-loops and if-statements containing relational operators
  • Homework #2 (due 3/1)
    • if-statements, lists and for-loops
2/20 Th 8
  • Unit 4: Searching and Sorting Algorithms; Scalability (cont.)
 
2/25 Tu 9
  • Unit 4: Searching and Sorting Algorithms; Scalability (cont.)
  • Lab Meeting #4: Boolean operators and if-statements
 
2/27 Th 10
  • Exam #1 Review Session
    • See Piazza for review materials
 
3/3 Tu 11
  • Exam #1 (Units 1-3)
  • Lab Meeting #5: Boolean operators and while-loops
 
3/5 Th 12
  • Unit 5: Divide and Conquer Algorithms; Recursion
    • Recursive Functions in Python
    • Read Chapter 5 of Conery
  • Homework #3 (due 3/22)
    • Boolean operators, while-loops
3/10 Tu 13
  • Unit 5: Divide and Conquer Algorithms; Recursion (cont.)
  • Lab Meeting #6: Nested loops
 
3/12 Th 14
  • Unit 5: Divide and Conquer Algorithms; Recursion (cont.)
 
3/17 Tu  
  • Spring Break – no lectures
  • Spring Break – no lab meetings
 
3/19 Th  
  • Spring Break – no lectures
 
3/24 Tu  
  • Spring Break – no lectures
  • Spring Break – no lab meetings
 
3/26 Th  
  • Spring Break – no lectures
 
3/31 Tu 15
  • Unit 6: Machine Learning and String Manipulation
    • Python String Processing, Dictionaries and File I/O
    • Read Chapter 6 of Conery
  • Lab Meeting #7: Basic recursive functions
  • Homework #4 (due 4/12)
    • String processing, dictionaries, file I/O and recursion
4/2 Th 16
  • Unit 6: Machine Learning and String Manipulation (cont.)
 
4/7 Tu 17
  • Unit 7: Random Numbers and Object-oriented Programming
    • Read Chapter 7 of Conery
  • Lab Meeting #8: Strings and dictionaries
 
4/9 Th 18
  • Unit 7: Random Numbers and Object-oriented Programming (cont.)
 
4/14 Tu 19
  • Exam #2 (Units 4-6) via Blackboard and Respondus Lockdown Browser
  • Lab Meeting #9: Basics of object-oriented programming
  • Homework #5 (due 4/26)
    • Classes and objects
4/16 Th 20
  • Unit 7: Random Numbers and Object-oriented Programming (cont.)
 
4/21 Tu 21
  • Unit 8: Data Representation and Compression
    • Read Chapter 8 of Conery
  • Lab Meeting #10: Basics of object-oriented programming
 
4/23 Th 22
  • Unit 8: Data Representation and Compression (cont.)
 
4/28 Tu 23
  • Unit 9: Computer Architecture and Assembly Language Programming
    • Read Chapter 9 of Conery
  • Lab Meeting #11: Data representation and compression
  • Homework #6 (due 5/10)
    • String processing revisited and regular expressions
    • WILL INCLUDE EXTRA CREDIT (happy, Joe?)
4/30 Th 24
  • Unit 10: Natural Language Processing with Regular Expressions
    • Python Intermediate String Processing and Regular Expressions
    • Read Chapter 10 of Conery
    • Try the tutorials at regexone.com. You can also use regex101.com to practice writing regular expressions.
 
5/5 Tu 25
  • Unit 11: Cryptography
  • Lab Meeting #12: Regular expressions
 
5/7 Th 26
  • Unit 12: The Limits of Computation
    • Read Chapter 12 of Conery
 
5/13 We  
  • Exam #3 (Units 7-12) from 5:30 pm - 6:50 pm via Blackboard and Respondus Lockdown Browser