CSE 231 COURSE TOPICS Fall 2007 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 Namespacs: qualified & unqualfied Unqualified LEGB: local, enclosing, global, buitin 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. Sorting, Searching, BigO Sorting: selection Search: linear, binary BigO: O(log(n)), O(n), O(n*log(n)), O(n**2), O(n**3) O. Testing Doctest, Unittest