Schedule

All due events with a given date are due on 09:59pm that day.

Wk Tuesday Thursday Labs Events
1(35) Lecture 1: 2023-09-05
  • Class introduction/organization
  • History of Bell Labs, Unix and Linux
  • Command line introduction
Lecture 2: 2023-09-07
  • More command line
  • Pipes
  • Regular expressions
  • File attributes
2(36) Lecture 3: 2023-09-12
  • Command line customization
  • I/O redirection
  • Environment variables
  • Shell scripting
  • Process management
Lecture 4: 2023-09-14
  • Version control systems (VCS)
  • Centralized and distributed models
  • Intro to Git

PP01: (2023-09-12)

Setup private class repository, tmate.

3(37) Lecture 5: 2023-09-19
  • Version control systems (VCS)
  • Managing repositories
  • Remote repositories
  • Branching
Lecture 6: 2023-09-21
  • Python basics
  • Objects and Functions
  • Environments
  • Closures

PP02: (2023-09-18)

Bash scripting, Git workflow.

Note:
  1. PP01 deadline
    (2023-09-22)
4(38) Lecture 7: 2023-09-26
  • OOP in Python
  • Classes
  • Inheritance
  • Polymorphism
Lecture 8: 2023-09-28
  • Python data model
  • Dunder methods
  • Software licenses

PP03: (2023-09-25)

Git local branches, merge conflics and merge tool.

Note:

  1. HW1 deadline
    (2023-09-27)
  2. PP02 deadline
    (2023-09-29)
5(39) Lecture 9: 2023-10-03
  • Classes and methods
  • Modules and packages
  • Python Package Index
Lecture 10: 2023-10-05
  • Databases
  • SQL
  • SQLite

PP04: (2023-10-02)

Python closure, fully connected neural networks.

  1. PP03 deadline
    (2023-10-06)
6(40) Lecture 11: 2023-10-10
  • Databases: OLAP & OLTP
  • SQL: Joins
Lecture 12: 2023-10-12
  • SQL Joins
  • Pipelines
  • Case Study

PP05: (2023-10-10)

SQL and SQLite in Python.

  1. HW2 deadline
    (2023-10-13)
  2. PP04 deadline
    (2023-10-13)
7(40) Lecture 13: 2023-10-17
  • Pipelines
  • Software systems
  • Documentation
Lecture 14: 2023-10-19
  • Testing

PP06: (2023-10-16)

SQL and pipelines.

  1. PP05 deadline
    (2023-10-20)
8(40) Lecture 15: 2023-10-24
  • Testing revisited
  • Exeptions
  • Test coverage
Lecture 16: 2023-10-26
  • Continuous integration

PP07: (2023-10-23)

Documentation and testing

  1. Quiz #2 deadline
    (2023-10-25)
  2. HW3 deadline
    (2023-10-27)
  3. PP06 deadline
    (2023-10-27)
9(40) Lecture 17: 2023-10-31
  • Containers
  • Virtual environments
  • Docker
Lecture 18: 2023-11-02
  • Data structures
  • Linked lists
  • Iterators

PP08: (2023-10-30)

Package deployment

  1. PP07 deadline
    (2023-11-03)
10(40) Lecture 19: 2023-11-07
  • Binary search trees
  • Tree traversal
  • Priority queues
Lecture 20: 2023-11-09
  • Heaps

PP09: (2023-11-06)

BST, Docker images

  1. HW4 deadline
    (2023-11-10)
  2. PP08 deadline
    (2023-11-10)
11(40) Lecture 21: 2023-11-14
  • Generators
  • Coroutines
Lecture 22: 2023-11-16
  • Python internals
  • Memory

  1. PP09 deadline
    (2023-11-17)
12(40) Lecture 23: 2023-11-21
  • CATCH UP lecture
Thanksgiving break: 2023-11-23

  1. PP10 deadline
    (2023-11-17)
11(40) Lecture 24: 2023-11-28
  • Performance
Lecture 25: 2023-11-30
  • Project work

  1. Quiz #3 deadline
    (2023-11-30)
11(40) No lecture: 2023-12-05
  • Work on the project
  • Work on other projects
  • Rest and relax
Reading period: 2023-12-07

  1. PP12 deadline
    (2023-12-01)
11(40) Final exam period: 2023-12-12 Final exam period: 2023-12-14