COP-3337, Intermediate Programming
- January 7: Introduction and Administrivia
- Check out the web site.
- Get your accounts in order.
- January 9: Simple C++ (A.1 - A.6)
- Compiling and running programs.
- Simple syntax: types, I/O, expressions, statements.
- Functions: declaration vs. definition
- January 14: More Simple C++
- Parameter passing.
- Reference types.
- Bare basics of arrays and char[].
- Basics of files.
- String class and description of first assignment.
- Sample code.
- January 16: Summary of Assignment #1
- January 21: More Basic C++
- Separate compilation and make.
- The Vector class.
- Sample code.
- January 23: Pointers and Structures
- Introduction to pointers.
- Basics of structures.
- January 28: Pointers and Dynamic Allocation
- Review of pointers.
- Arrays are pointers.
- Dynamic allocation of arrays: new[] and delete[].
- Pointers to structures and the -> operator.
- January 30, February 4 and 6: Classes. Part I: The Interface
- Basic ideas of a class: The IntCell class.
- Concepts of encapsulation and information hiding.
- Visibility rules (public vs. private).
- Separation of interfaces and implementation.
- The #ifndef/#endif trick.
- Constructors, destructors, copy constructor, and copy assignment
specifications, including default behaviors (deep copy vs. shallow copy).
- Accessors vs. Mutators (const member functions).
- Operator overloading: specifications.
- Signature rules (return type doesn't count).
- Review of homework.
- Return by reference and constant reference.
- February 11: Classes. Part II: The Implementation
- The :: scope operator.
- Implementation of constructors, including initializer lists.
- Class data members that are const
or references and their initialization.
- Implementation of operator=, including this.
- Implementation of some operators.
- Overloading for input and output.
- Friends.
- Case study: the Rational class.
- February 13: Classes. Part III: Details I Could Live Without
- Inline directives.
- Implicit type conversions.
- Const and non-const operator[].
- Static members.
- Case study: the String class.
- February 18 and 20: Templates and Other Stuff
- Finish up from February 13.
- Why templates.
- Template functions.
- Template classes.
- Illustration of the Vector class.
- Specifying the requirements of the template type.
- Fancy template stuff.
- February 25: MIDTERM
- February 27: Class is cancelled
- March 4: Stacks and Queues: Part I
- Basics of running-time analysis.
- Properties and uses of the stack and queue.
- Array implementations.
- March 6: Stacks and Queues: Part II
- Linked list implementation of stacks and queues.
- March 11 and 13: SPRING BREAK
- March 18: Class is cancelled
- March 20 and 25: Recursion
- March 27 and April 1: Visual C++
- For some demos with step-by-step instructions go to
the BOTTOM of
Masoud Milani's class page.
This illustrates some of the basic principles.
- Using Windows NT
- The Resource Editor
- Basic components: buttons, check boxes, edit boxes, combo boxes,
groups, text fields
- State Variables
- Message Maps
-
AfxMessageBox
- UpdateData
- Enabling and hiding components
- April 3: Review
- Review for Assignment #10, including extra credit
- April 8: Inheritance
- Basic ideas of inheritance: IS-A, polymorphism, etc.
- Inheritance in Visual C++
- Exceptions
- General discussion of Assignment #11
- April 10: Visual C++: SDI Documents
- Basic ideas of SDI documents: menus, toolbars, etc.
- Drawing
- Assignment #11
- April 15: Wrapup - Review for Final