calendar Photo by Eric Rothermel on Unsplash

Please note the schedule is tentative and will be fine-tuned through out the semester due to unexpected weather or sickness. Plesae check back frequently.

This schedule includes planned topics, exams, and semester breaks. For individual assignment deadlines, please refer to the Canvas site. The semester has two major blocks:

  1. Develop an advanced understanding of object-oriented design, inheritance, event-driven programming, and GUI design. Weeks 1-10
  2. Introduction to efficient algorithms, data structures, sorting, and advanced recursion. Weeks 11-15

Week 1

  • Tue, Jan 17 Software Setup and Course Overview. Homework 1 out.
    • Reading:
      • Review the resources section and ensure that you have attempted to install all required software and obtained all necessary accounts & licenses
      • Warm up exercises
  • Fri, Jan 20 In-class asssement
    • Reading:
      • ds Ch 1

Week 2

  • Tue, Jan 24 Python Review 1: Data types, Assignments, Variables, Call Frames.
    • Reading:
      • ds CH 1 and in-class material
      • homework 1 is due.
  • Fri, Jan 27 Python Review 2: Function, Branching, Control Loop, List. Python Tutor
    • Reading:
      • ds CH 1 and in-class material

Week 3

  • Tue, Jan 31 Python Review 3: List Comprehension, Tuples, Diciontary, Files I/O,
  • quiz 1
  • Homework 2 out
    • Reading:
      • ds CH 1 and in-class material
  • Fri, Feb 3 Python Review 4
    • Reading:
      • ds CH1
      • Runstone Foundation of Programming

Week 4

  • Tue, Feb 7 Python Review 5
    • Reading:
      • ds CH 1
  • Fri, Feb 10 Python Review 6; Introduction to OOP 1; Class and Objects
    • Reading:
      • oop Ch 3

Week 5

  • Tue, Feb 14 Introduction to OOP 2; Methods
  • Reading
    • oop Ch 1-3
  • Fri, Feb 17 Introduction to OOP 3; Operator overloading
    • Reading:
      • oop ch 3

Week 6

  • Tue, Feb 21 Introduction to OOP 3; Operator overloading, Mental Models
    • Reading:
      • oop ch 3
  • Fri, Feb 24 Exam I
    • Reading:

Week 7

  • Tue, Feb 28 Multiple Objects
    • Reading:
      • oop Ch 4
  • Fri, Mar 3 Multiple Objects
    • oop Ch 4

Week 8

  • Tue, Mar 7
    • Reading:
      • oop Ch 10
  • Fri, Mar 10
    • Reading:
      • oop Ch 11

Week 9

  • Tue, Mar 13 Spring Break No Class

  • Fri, Mar 17 Spring Break No Class

Week 10

  • Tue, Mar 20 Class Canceled: Instructor Sick
    • Reading:
      • oop Ch 5
  • Fri, Mar 24 Introduction to GUI Pygame
    • Reading:
      • oop Ch 5

Week 11

  • Tue, Mar 28 GUI II
    • Reading:
      • oop Ch 5
  • Fri, Mar 31 Object-Oriented PyGame and GUI Widgets
    • Reading:
      • oop Ch 6

Week 12.

  • Tue, April 4 Encapsulation
    • Reading:
      • OOP Ch 7 and 8
  • Fri, April 7 Polymorphism
    • Reading:
      • OOP Chapter 10

Week 13

  • Tue, Apr 11 ** Exam 2***

  • Fri, Apri 14 Inheritance

    • Reading:
      • OOP Chapter 11

Week 14

  • Tue, April 18 Inheritance II and Algorithm Analysis
    • Reading:
      • ds CH 2
  • Fri, April 21 GitHub Branches and Basic Data Structures

Week 15

  • Tue, April 25 Recursion I
    • Reading:
      • ds Ch 4.1-4.6
  • Fri, April 28 Recursion II
    • Reading:
      • ds Ch 4.6-end of chapter

Week 16: Final Exams

  • Fri, May 5
    • Sec 001 8:10am-10:40am
  • Tue, May 9
    • Sec 001 11:20-1:50pm