OBJECT ORIENTED PROGRAMMING WITH C++ 

0368-3015-20 / 21

 

 

Course Stuff:

 

          Lecturer:    Ohad Barzilay

                             Drawer: Schreiber 391.

                             Office: Wolfson building for Software Engineering, room 209    

                             Phone: 03 640 5549

                             Email: 

 

          Grader:      Alexander (Sasha) Alperovich

                             Drawer: Schreiber 400.

                             Email: sashaal@post.tau.ac.il

 

          Additional means of Communication:       [Course Forum] [Mailing list Archive] [Virtual TAU]

 

          [Exam][Lecture Slides] [Recitation Slides] [Homework] [Useful links] [Books] [Grades]

 

 

Exam:         Will be on Tuesday, 20/9/2005 at 9:00am

                   [download exam] [download solution]

 

MOED BET:         Will be on Tuesday, 15.11.05 at 14:00pm

                             [download exam] [download solution]

 

Monopoly Submission: submission of the monopoly exercise is scheduled for 3/11 (the coming Thursday).

v    Presentations will take place at my (ohad's) office on "Wolfson building of software engineering", room 209.

v    Groups may come between 12:00 to 18:00. (preferably before 15:00)

v    One of the group members should send me an email with the names and ids of the group members and with the time you would like to come.

v    Each group will have approximately 20 minutes to present its work.

v    All group members should be present at the presentation.

 

 

 

Lecture Slides:

 

04/07/2005 Modularization and Reuse [1 per page] [2 per page]

07/07/2005 Namespaces [1 per page] [2 per page]

07/07/2005 Abstract Data Types [1 per page] [2 per page]

11/07/2005 Classes [1 per page] [2 per page]

14/07/2005 Objects [1 per page] [2 per page]

21/07/2005 Design by Contract [1 per page] [2 per page]

25/07/2005 Exception Handling [1 per page] [2 per page]

28/07/2005 Standard Template Library [1 per page] [2 per page]

01/08/2005 Inheritance and Polymorphism [1 per page] [2 per page]

04/08/2005 The Lecture is CANCELLED

08/08/2005 Multiple Inheritance [1 per page] [2 per page]

11/08/2005 More about Inheritance [1 per page] [2 per page]

18/08/2005 MFC Programming [1 per page] [2 per page]

22/08/2005 Design Patterns [1 per page] [2 per page]

25/08/2005 Design Patterns Cont [1 per page] [2 per page] [source code]

29/08/2005 eXterme Programming [1 per page] [2 per page]

01/09/2005 Concrete Side Effects [1 per page] [2 per page]

 

 

 

Recitation Slides:

 

04/07/2005 From C to C++ [1 per page] [2 per page]

11/07/2005 Abstract Data Types and Classes [1 per page] [2 per page]

18/07/2005 Static Members and Constructors [1 per page] [2 per page]

25/07/2005 Operator Overloading [1 per page] [2 per page]

01/08/2005 Inheritance and Polymorphism [1 per page] [2 per page]

08/08/2005 Advanced Inheritance [1 per page] [2 per page]

15/08/2005 Serialization in C++ [1 per page] [2 per page] [example]

22/08/2005 Types and Inheritance [1 per page] [2 per page]

29/08/2005 Testing [1 per page] [2 per page]

01/09/2005 Case Study - STATE [1 per page] [2 per page]

 

 

 

Homework:

 

Exercises should be submitted using Submission Guidelines

 

11/07/2005 Sets ADT [pdf]

18/07/2005 Sets Class [pdf]

25/07/2005 Sets Operators and Contract [pdf]

08/08/2005 Inheritance [pdf]

18/08/2005 Serialization [pdf]

25/08/2005 Monopoly [ppt]

 

·        GRADES [click here]

 

More submission guidelines:

o    The sources still should be submitted as is - no zip.

o    In the file naming the ID of the submitter should be part of the file.
Such as ex#q#_ ID#.cpp

 

Homework is 30% of your final grade, calculated using:

v    The highest 4 of 5 exercises submitted (10%),

and

v    The 6th exercise (monopoly) which is mandatory (20%).

 

 

Useful links:

 

*      A critique on C++ by Ian Joyner

*    C++ FAQ

*    Bjarne Stroustrup's Home page

*      Working with Visual C++

*      Nice Template Tutorial

*    Sgi STL Tutorial

*      Rogue Wave's STL Guide

*      MFC SCRIBBLE Tutorial

 

 

The Course Textbooks:

 

*    The C++ Programming Language, Third (and special) Edition
Bjarne Stroustrup,  Addison-Wesley 1997

*    Object-Oriented Software Construction, Second Edition (available online in TAU library)
BERTRAND MEYER

 

Other Recommended Reading:

 

*    C++ Primer, Third Edition.
Stanley B. Lippman, et al,  Addison-Wesley 1998

*    The Design and Evolution of C++.
Bjarne Stroustrup, Addison-Wesley 1994

*    Object Oriented Programming and C++ (in Hebrew!)
Amir Kirsh

*    Effective C++, 2nd Edition: 50 Specific Ways to Improve Your Programs and Designs. (available online in TAU library)
Scott Meyers, Addison-Wesley 1997

*    More Effective C++: 35 More Ways to Improve Your Programs and Designs. (available online in TAU library)
Scott Meyers, Addison-Wesley 1995

*    Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library
Scott Meyers, Addison-Wesley

*    Design Patterns: Elements of Reusable Object-Oriented Software
By Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 1994

*    Exceptional C++ by Herb Sutter.
Herb Sutter, Addison-Wesley 2000

*    The C++ Standard Library : A Tutorial and Reference.
Nicolai M. Josuttis, Addison-Wesley 1999 

*    Advanced C++ Programming Styles & Idioms.
James O. Coplien, Addison-Wesley 1991

*    Thinking in C++
Bruce Eckel. (this book can be downloaded for free from
http://www.BruceEckel.com)

*    Data Structures and Problem Solving Using C++.
Mark Weiss, Addison-Wesley 2000