CSE 143 - Section AC and AE

CSE 143 Summer 2000 >> Section AC & AE

General

Here are some notes and warnings you may want to read.

For contact information and office hours, see the course office hours page. To e-mail Keunwoo anonymously, use the following form:

http://depts.washington.edu/ctlt/catalyst/umail/mail.cgi?user=keunwoo&form=1

Keunwoo keeps his own 143 web space as well; there are links to some resources that you may find useful:

http://www.cs.washington.edu/homes/klee/courses/143/index.html

Mail Archives

Mail sent to all the course mailing lists is archived. Here are archives specific to sections AC and AE:

Class notes

20 June Introduction, C review, parameter passing
22 June Multi-file projects, header files and .cpp files, preprocessing/compilation/linking
27 June: AC Object-oriented programming concepts and terminology, classes, implementing member functions, constructors, initializer list syntax, destructor intro.
AE Object-oriented concepts and terminology, classes, implementing member functions, constructors.
29 June: AC I/O streams concepts, standard streams, using the >> and << operators, return values/precedence/associativity, operator overloading and user-defined overloaded operators, stream status functions, formatted I/O and manipulators, file streams.
AE I/O streams concepts, standard streams, using the >> and << operators, operator overloading, return values/precedence/associativity, stream status functions, formatted I/O and manipulators, file streams.
6 July: AC Vector (list) ADT. Using new, delete, delete []. A dynamically sized vector implementation. Introduction to advanced ideas for designing and implementing collections. Recursion concepts. Recursive data. Base and inductive cases. Recursion and the call stack. Tail recursion elimination. Exercise: parsing and evaluating binary arithmetic expressions.
AE Vector (list) ADT. Recursion concepts: base and inductive cases. Recursion and the call stack. Recursion exercises. Pointer review.
11 July Feedback, dynamic memory concepts
13 July: AC Linked list ADT in C and C++. Variations on linked lists: header information, dummy header node, external data. Recursion and linked lists. Doubly linked lists. Lists vs. array-based vectors.
AE Linked list ADT in C++. Operations on linked lists. Recursion and linked lists. Variations on linked lists: header information, dummy header node, external data, doubly linked lists.
18 July: AC Keyword const review and further explication. Dynamic memory and classes (copy constructor, assignment operator, destructor). Introduction to inheritance and inheritance consequences.
AE Keyword const review and further explication. Dynamic memory and classes (copy constructor, assignment operator, destructor). Implementing LinkedList properly.
20 July: AC Stacks, queues. One possible approach to collections and iterators, using inheritance.
AE Stacks, queues. Implementing stacks/queues using vectors.
25 July: AC Access protection and initializing superclasses. Exercise: inheritance and virtual functions. Accessing overridden members. Overriding vs. overloading. Default arguments, and their interaction with overloading.
AE Introduction to inheritance. Access protection and initializing superclasses. Memory layout of derived classes. Montagues and Capulets considered as a problem in object-oriented programming.
27 July: AC static_cast, dynamic_cast, reinterpret_cast. Operator type conversions. Operator overloading. An example: complex numbers.
AE Static and dynamic dispatch, virtual functions, pure virtual functions.
1 August: AC Templates and generic programming. Template functions, template classes, multiple arguments and simple value arguments to templates.
AE Dispatching review, overloading and overload resolution, operator overloading, overloading with friend functions, overloading ostream/istream operators.
3 August: Algorithmic complexity. Analysis of common algorithms.
8 August: AC Sorting: bubble, selection, insertion, merge, quick, heap.
AE Sorting: bubble, selection, insertion, merge, quick.
15 August: AC Trees and maps. Various exercises, including traversal. An alternative to iterators for generalizing traversals. Performance of tree operations.
AE Trees: find, traverse, various exercises. Performance of tree operations.
17 August: AC Introduction to the STL. Collections, iterators, and algorithms. The std::vector template; using iterators; the find() and count() standard algorithms.
AE Maps. A consideration of map implementations: trees, vectors, hashes.