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 |