Final Exam

* Fri, Aug 18 (1:10 - 3:00).

* Covers everything you learned this quarter, and probably plus a simple (1-point) question from each of the following lectures

1. Mike VanHilst's "Advanced C++ Features"

2. Martin Tompa's "Secret Codes"

Office Hour Changes This Week

* Extended office hour today from 2:20 to 4:30pm.

* No office hour on Friday.

* Possible office hours Saturday (for regrade etc.) I will announce by e-mails.

Protected members

* A protected member can be accessed by its derived classes but not by its clients.

class Base {

public:

void public_fun();

protected:

void protected_fun();

private:

void private_fun();

};

class Derived : public Base {

public:

void derived_fun();

};

void Derived::fun()

{

public_fun(); // okay?

protected_fun(); // okay?

private_fun(); // okay?

}

int main()

{

Base *p = new Derived;

p->public_fun(); // okay?

p->protected_fun(); // okay?

p->private_fun(); // okay?

p->derived_fun(); // okay?

}

* Similarly, you can use "protected" for data members too.

What do we have this quarter?

* An excellent class of students.

1. Asked a lot of key questions in lectures.

2. Caught mistakes in lecture notes / exam solutions.

3. Helped each other in the labs as well as using the mailing lists.

* An excellent lecture room with two nice projectors.

* An excellent meeting time (when you want to sleep during a lecture while digesting your lunch).

* An excellent weather to stay indoors to write code.

Course Summary

* From C to C++

* Program that has multiple files

* Modularization

* (Project #1)

* Specification and implementation

* C++ Classes (privates, publics and friends)

* (Project #2)

* Common data structures

* Array implementation of an ordered list

* (Project #3)

* Pointers and dynamic data

* Constructors, copy constructors and destructors

* Implementation of a linked list

* (Project #4)

* Examples of implementation of other data structures

* Recursive functions

* Designing a medium size program

* Introduction to object-oriented design

* (Project #5)

* Run-time complexity (big-O notation)

* Trees

* (Project #6)

* Inheritance & Polymorphism

* Advanced C++ topics

* Computer science is not just programming (e.g. secret codes)

GOOD LUCK!