Stony Brook University – Spring 2018

Weekly Course Schedule

The following course schedule is tentative and subject to change. Except where noted, readings are taken from 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.

Week of Lecture Meetings Lab Meetings Homework Assignments
Jan. 22
  • Jan. 23: Unit 0: Course Overview; Unit 1: What is Computational Thinking?
    • Read Chapter 1 of Conery
  • Jan. 25: Unit 2: Computer Programming Fundamentals
  • Jan. 22: No lab sessions today
  • Jan. 24: No lab sessions today
  • Lab sessions will start meeting the week of Jan. 29th
 
Jan. 29
  • Jan. 30: Unit 2: Computer Programming Fundamentals (cont.)
    • Python Variables, Expressions, Functions and if-statements
  • Feb. 1: Unit 2: Computer Programming Fundamentals (cont.)
    • Python Variables, Expressions, Functions and if-statements
  • Lab Meeting #1:
    • Learn the basics of PyCharm
    • Submit work to CodeLoad and Blackboard
    • Basic expressions and functions
  • Homework #1 out on Jan. 29 (due Feb. 5)
    • PyCharm basics; basics of Python variables, expressions and functions
Feb. 5
  • Feb. 6: Unit 3: Iteration, Lists and Algorithm Design
    • Python Lists and for-loops
    • Read Chapter 2 of Conery
  • Feb. 8: Unit 3: Iteration, Lists and Algorithm Design (cont.)
  • Lab Meeting #2:
    • Use the PyCharm debugger to trace the execution of programs and record the results in Blackboard
    • Basic if-statements and relational operators
  • Homework #2 out Feb. 5 (due Feb. 16)
    • if-statements (relational operators), lists and for-loops
Feb. 12
  • Feb. 13: Unit 4: Searching and Sorting Algorithms; Scalability
    • Python Boolean Operators and while-loops
    • Read Chapter 4 of Conery
  • Feb. 15: Unit 4: Searching and Sorting Algorithms; Scalability (cont.)
  • Lab Meeting #3:
    • Edit a broken program to fix logical errors
    • for-loops and if-statements containing relational operators
 
Feb. 19
  • Feb. 20: Exam #1 Review Session
    • See Piazza for review materials
  • Feb. 22: Exam #1 - covers Units 1 through 4
  • Lab Meeting #4:
    • Boolean operators and while-loops (session #1)
 
Feb. 26
  • Feb. 27: Unit 5: Divide and Conquer Algorithms; Recursion
    • Recursive Functions in Python
    • Read Chapter 5 of Conery
  • Mar. 1: Unit 5: Divide and Conquer Algorithms; Recursion (cont.)
  • Lab Meeting #5:
    • Boolean operators and while-loops (session #2)
  • Homework #3 out on Feb. 26 (due Mar. 9)
    • Boolean operators, while-loops
Mar. 5
  • Mar. 6: Unit 5: Divide and Conquer Algorithms; Recursion (cont.)
  • Mar. 8: Unit 6: Machine Learning and String Manipulation
    • Python String Processing, Dictionaries and File I/O
    • Read Chapter 6 of Conery
  • Lab Meeting #6:
    • Use PyCharm to debug short Python programs that contain run-time errors
    • Basic recursive functions (session #1)
 
Mar. 12
  • Spring Break – no lectures
  • Spring Break – no lab meetings
 
Mar. 19
  • Mar. 20: Unit 6: Machine Learning and String Manipulation (cont.)
  • Mar. 22: Unit 7: Random Numbers and Object-oriented Programming
    • Fundamentals of Object-oriented Programming in Python
    • Read Chapter 7 of Conery
  • Lab Meeting #7:
    • Basic recursive functions (session #2)
  • Homework #4 out on Mar. 19 (due Mar. 30)
    • String processing, dictionaries and file input
Mar. 26
  • Mar. 27: Unit 7: Random Numbers and Object-oriented Programming (cont.)
  • Mar. 29: Exam #2 Review Session
    • See Piazza for review materials
  • Lab Meeting #8:
    • Strings, dictionaries and file I/O
 
Apr. 2
  • Apr. 3: Exam #2 - covers Units 5 through 7
  • Apr. 5: Unit 8: Data Representation and Compression
    • Read Chapter 8 of Conery
  • Lab Meeting #9
    • Basics of object-oriented programming
 
Apr. 9
  • Apr. 10: Unit 8: Data Representation and Compression (cont.)
  • Apr. 12: Unit 9: Computer Architecture and Assembly Language Programming
    • Read Chapter 9 of Conery
  • Lab Meeting #10:
    • Data representation and compression
  • Homework #5 out on Apr. 9 (due Apr. 20)
    • Classes and objects
Apr. 16
  • Apr. 17: Unit 10: Natural Language Processing and Regular Expressions
    • Python Intermediate String Processing and Regular Expressions
    • Read Chapter 10 of Conery
  • Apr. 19: Unit 10: Natural Language Processing and Regular Expressions (cont.)
    • Complete all of the tutorials at regexone.com. This should take no more than a few hours and will really help you.
    • Use regex101.com to practice writing regular expressions.
  • Lab Meeting #11:
    • Use PyCharm to debug short Python programs that contain logical errors
    • Bitwise operators
 
Apr. 23
  • Lab Meeting #12:
    • Regular expressions
  • Homework #6 out on Apr. 23 (due May 4)
    • Classes and objects
Apr. 30
  • May 1: Unit 12: Cryptography (cont.)
  • May 3: Exam #3 Review Session
    • See Piazza for review materials
  • Lab Meeting #13
    • Exam #3 review session with TAs
 
May 7
  • No lectures this week
  • Prof. McDonnell's office hours will be held as normal
  • No lab sessions this week
 
May 14
  • Exam #3 on Units 8 through 12, and Unit 7 (again) from 5:30 pm - 6:50 pm in room TBD