CSE 231 COURSE TOPICS
A. Digital Computer Systems
Overview of computer organization
B. Introduction to Problem Solving
Engage, Visualize, Experiment, Simplify, Analyze, Relax
C. Python beginnings
Getting Python
Modules, Interpreter (Python shell)
Keywords, Operators, Punctuators
Naming Conventions, Namespaces
Types, raw_input, type conversion
Assignment, Multiple Assignments
D. Strings and Booleans
Strings, methods, functions, slicing, output formatting
Immutable vs. Mutable objects
Booleans, Relational Operators, Logical Operators
E. Control: Selection
Compound statements, Indentation
if, if-else, if-elif-else
F. Control: Repetition
while, continue, break, else
G. Data Structures I: Lists and Tuples
Lists (mutable), methods, functions, slicing
Iteration, for, continue, break, else, range()
List Comprehension
2D lists
Tuples (immutable)
H. Functions
Definition, Invocation, return,
Arguments and Parameters: mutable vs. immutable
Local Objects
Default and Named Parameters
Docstrings
I. Files
File objects, modes, open, close, iterator
J. Data Structures II: Sets and Dictionaries
Sets, operators
Dictionaries, methods, functions, iterators
Zip
K. Scope
Namespaces: qualified & unqualified
Unqualified
LEGB: local, enclosing, global, built-in
Qualified
'dot' notation
L. Classes: user-defined data type
Object-Oriented Programming
Encapsulation, Inheritance, Polymorphism
Reuse, Group Development, Refactoring
Class vs. Instance
Methods, Attributes, 'dot'-reference, self
Constructor: __init__
Overloading
Operators: __add__, __sub__, etc.
Others: __str__, etc.
Collection Operators:__len__, __getitem__, etc.
Issues: commutative, mixed types, lhs-rhs
Inheritance
M. Exceptions
try, except, else, finally
Non-local control: call stack
N. Other Topics
(Sometimes one or two of the following are covered.
None were done in Fall 2012.)
1. Sorting, Searching, BigO
Sorting: selection
Search: linear, binary
BigO: O(log(n)), O(n), O(n*log(n)), O(n**2), O(n**3)
2. Testing
Doctest, Unittest
3. Recursion