CMP 210 Syllabus  Spring 2018
Weeks 
Topics 
1 
Knowledge, machines, languages; Intro to Python: types, variables, operators and branching 
2 
Bindings, strings, input/output, IDEs, control flow, iteration, guess and check 
3 
Approximate solutions, bisection search, floats and fraction, other applications 
4 
Functions: Decomposition and abstraction, functions and scope, keyword arguments specifications, iteration vs recursion, Fibonacci, recursion on nonnumerics, files 
5 
Tuples and Lists: Tuples, lists, list operations, mutation, aliasing, cloning 
6 
Dictionaries: functions as objects, dictionaries, , examples, Fibonacci and dictionaries, global variables 
7 
Debugging: programming challenges, classes of tests, bugs, debugging 
8 
Assertions and Exceptions: Assertions, exceptions, examples 
9 10 
Classes and Inheritance: object oriented programming (OOP), class instances, methods, classes examples,
hierarchies, defining your own types, building a class, visualizing a hierarchy, adding another class,
using inherited methods, generators 
11 
Computational Complexity: program efficiency, bigO notation, complexity classes, analyzing complexity 
12 
Searching and Sorting Algorithms: indirection, linear search, bisection search, bogo and bubble sort, selection sort, merge sort 
13 
Visualization of Data: visualizing results, overlapping displays, adding documentation, changing data display, examples 
14 
Summary and review 
Notes:
 The time line shown above serves as a very rough guide.
 Unless otherwise noted, readings will be from the notes.
 See the Exams page for scheduling of examinations.
Click
to send me email.
Last modified: 1/19/2018
