Text: Online C++ Essentials by Sharam Hekmat, Thinking in C++ by Bruce Eckel, Having a hard copy of the above is often preferable to just using digital copy. It has been shown that reading and studying a hard-copy results in better understanding and retention. You can write comments in the book as well!
FIRST THINGS FIRST: Send me an email now with the subject line CMPS OOP. I will build an email list so I can send info you the entire class.
NOTE: I expect a serious study of the topics we cover in class. If you do not clearly understand something it is your responsibility to ask questions and study any necessary additional tutorials until you do so. This class will take a lot of work so keep up. In other words I will assume that you are an adult and have the goal of becoming a professional computer scientist.
Week1: (MKL, Jan 17,19)
- Debugging code using visual studio, run to, breakpoints etc
- #define DEBUG and its use
- Documentation Requirements
- The standard template library (containers, algorithms)
- The templated vector<type> class and associated methods and iterators. See CPLUSPLUS.com
- HW0 (due Jan 22 at start of class): look up the methods on CPLUSPLUS.com that work with stacks and queues. Type each container name together with 5 methods and their meanings and turn in with your name on it. Write a code snippet for the stack that allocates a stack<int>, pushes 5 integers on the stack and then removes the top item and prints it. Do the same for the queue except remove the front item and print it.
- Project#0(due Jan 26 at the start of class): Vector warmup
Week2:(Jan 22,24,26) : Review of Classes
- Creating classes in visual studio C++. You are required to do it THIS way.
- Constructors, destructors. Copy constructors, Consequences of dynamic memory allocation in a class.
- Adding methods using MVSC support. Getters and Setters. You are required to do it THIS way.
- Creating a complex number class. Review complex numbers if they have become lost in your brain, particularly the operations on them, add,sub,mul, and divide.
- Project#1(due Feb 5 at the start of class): Fractions(no dynamic memory)
Week3:(Jan 29,31, Feb2) Overloading
- Overloaded operators for Fractions and classes that have dynamic memory allocation. Add an overloaded add operator to you Fraction class and test it. Its prototype should be friend Fraction operator+(Fraction & a, Fraction & b);
- Deep copy constructors. Overloaded assignment for dynamic memory objects.
- Exam 1 the 6th (all class discussions, homework and projects to date)
- C++ 11 additions (ie Modern C++ topics such as rvalues, lvalues, move constructors and move assignment)
- Project#2:Polynomials (using a linked list)
Week5: (Feb 12,14,16)
Week6: (Feb 19,21,23)
Week7: (Feb 26,28, Mar 2)
Exam 2 on the 7th
Week9: SPRING BREAK, a great time to catch up.
Weel10: (Mar 19,21,23)
- Exam 3 on wed 11th
Week15:(Apr 30, May 2,4)
Final Exam Wed May 9th at 8:00 am
Additional Documents and support