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 4: Searching and Sorting Algorithms; Scalability (cont.)
  • Mar. 1: Unit 5: Divide and Conquer Algorithms; Recursion
    • Recursive Functions in Python
    • Read Chapter 5 of Conery
  • 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 5: Divide and Conquer Algorithms; Recursion (cont.)
  • Lab Meeting #6:
    • Nested loops
 
Mar. 12
  • Spring Break – no lectures
  • Spring Break – no lab meetings
 
Mar. 19
  • Mar. 20: Unit 6: Machine Learning and String Manipulation
    • Python String Processing, Dictionaries and File I/O
    • Read Chapter 6 of Conery
  • Mar. 22: Unit 6: Machine Learning and String Manipulation (cont.)
  • Lab Meeting #7:
    • Basic recursive functions
  • Homework #4 out on Mar. 19 (due Mar. 30)
    • String processing, dictionaries and file I/O
Mar. 26
  • Mar. 27: Unit 7: Random Numbers and Object-oriented Programming
    • Fundamentals of Object-oriented Programming in Python
    • Read Chapter 7 of Conery
  • Mar. 29: Exam #2 Review Session
    • See Piazza for review materials
  • Lab Meeting #8:
    • Strings and dictionaries
 
Apr. 2
  • Apr. 3: Exam #2 - covers Units 4 through 6
  • Apr. 5: Unit 7: Random Numbers and Object-oriented Programming (cont.)
  • Lab Meeting #9
    • String processing
 
Apr. 9
  • Apr. 10: Unit 8: Data Representation and Compression
    • Read Chapter 8 of Conery
  • Apr. 12: Unit 8: Data Representation and Compression (cont.)
  • Lab Meeting #10:
    • Basics of object-oriented programming
  • Homework #5 out on Apr. 11 (due Apr. 27)
    • Classes and objects
Apr. 16
  • Apr. 17: Unit 9: Computer Architecture and Assembly Language Programming
    • Read Chapter 9 of Conery
  • Apr. 19: Unit 10: Natural Language Processing and Regular Expressions
    • Python Intermediate String Processing and Regular Expressions
    • Read Chapter 10 of Conery
  • Lab Meeting #11:
    • Data representation and compression
 
Apr. 23
  • Apr. 24: 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.
  • Apr. 26: Unit 12: Cryptography
  • Lab Meeting #12:
    • Use PyCharm to debug short Python programs that contain logical errors
    • Bitwise operators
 
Apr. 30
  • May 1: Unit 11: The Limits of Computation
    • Read Chapter 12 of Conery
    • Unit 12: Cryptography (cont.)
  • May 3: Exam #3 Review Session
    • See Piazza for review materials
  • Lab Meeting #13
    • Regular expressions
 
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 7 through 11 from 11:15 am - 12:35 pm (section 1) and 5:30 pm - 6:50 pm (section 2) in Frey 104