Course Schedule#

The following outlines the course coverage by term week:

Week

Concepts

Reading Exercises (due 11:59 am Tuesday)

Class Session

Homework (due the following Tuesday at 11:59 am)

Lab (due the following Tuesday at 11:59 am)

1-1/9

Beginning & Variables

Ch. 1

application

HW1 (Hello World)

Lab1 (Workflow)

2-1/16

Expressions & Modules

Ch. 2,3

application

HW2 (Mathematical Calculations)

Lab2 (Commenting Randomization Code: Modules)

3-1/23

Types & Strings

Ch. 4,5

application

HW3 (Types)

Lab3 (Scrabble)

4-1/30

Functions & Recursion

Ch. 6,7

application

HW4 (Functions)

Lab4 (Image Processing)

5-2/6

No Class

No Reading

Midterm

No HW

Midterm Recapitulation

6-2/13

Branching & Loops

Ch. 8,9

application

HW6 (Branching)

Lab6 (Rock, Paper, Scissors)

7-2/20

Flow Control & File Handling

Ch. 10

application

HW7 (Loops)

Lab7 (DNA Analysis)

8-2/27

Lists & Dictionaries

Ch. 11

application

HW8 (Strings)

Lab8 (Audio Signal Processing)

9-3/5

Classes

Ch. 12,13

application

HW9 (Classes)

Lab9 (Pollutant Tracking)

10-3/12

Visualization & Exceptions

Ch. 14,15

application

No HW

Lab10 (Plotting and Fitting)

11-3/19

Final Exam


Week

Concepts

detailed topics

1-1/9

Beginning, Variables, & Modules

Course introduction, general review of computer organization, program execution, importing packages, working in JupyterHub, objects and variables

2-1/16

Expressions & Modules

Assignments, name binding, numeric types, string introduction, module basics, finding modules, importing specific names from a module, execution modules as scripts, reloading modules, packages: bundles of modules, the standard library, high performance arrays using Numpy

3-1/23

Types

String basics, String formatting, List basics, Dictionary basics.Β  Container types, string slicing, advanced string formatting, strings as anonymous/nameless objects, string methods, splitting and joining strings, the string formatting method

4-1/30

Functions

User-defined functions, function parameters, returning values from functions, dynamic typing, functions as objects, scope, namespaces, function arguments, keyword arguments, defining default function parameter values, arbitrary argument lists, multiple function outputs

5-2/6

No Class

Review prior concepts

6-2/13

Branching & Loops & Exceptions

Code blocks, if-else statements, relational and equality operators, boolean operators and expressions, conditional expressions; while-loops, iterators, for-loops; handling exceptions using try-except, multiple exception handlers, raising exceptions, exceptions with functions.

7-2/20

Flow Control & File Handling

Multiple if-else statements, membership operators, iteration using the built-in range() function, while-loops vs for-loops, nested loops, modifying iteration using break and continue, iteration using by both index and value using enumerate()reading files; writing files, interfacing with the operating system and file systems, handling human-readable data, handling binary data, passing files via command-line arguments, using the with statement to create safe file handling contexts, parsing Comma Separated Value (CSV) files

8-2/27

Lists and Dictionaries

Lists, list methods, iterating over a list, nested lists, list slicing, loops that mutate lists, list comprehensions, sorting lists, command line arguments. dictionaries: dictionary methods, iterating over dictionaries, nested dictionaries

9-3/5

Classes

Intro to Object Oriented Programming (OOP), grouping data with classes, class methods, class and instance object types, class constructors, class interfaces, operator overloading and using classes to build complex custom numeric types

10-3/12

Visualization

Introduction to Matplotlib, plotting and visualizing data, styling plots, text and annotations