Csc 330 - OOD & Systems Programming
Course Outline - Prof B. Domanski
Description: Students, who are assumed to have had at least 2 semester of C programming (126 & 228 or 211), are introduced to Object Oriented Design and Programming. Concepts covered include basic C++, encapsulation, classes, member functions, private, protected and public members, function overloading, operator overloading, stream I/O and inheritance. Building upon their knowledge of assembly language covered in the prerequisite course CSC220, students are assigned a very large programming project where they are to use object oriented programming principles to build a systems program, for example, an assembler or a macro processor. GUI design using Visual C++ is used as the development environment.
This course uses Visual Studio 2005 Professional with Visual C++
Required Text: NO --> Starting Out with C++ ,5th or 6th Edition, Tony Gaddis, ISBN: 5th edition - 0-321-40939-6 6th edition - 0-321-51238-3
Reference Text: MAYBE --> An Introduction to Object-Oriented Design in C++, Perry & Levin, Addison-Wesley
Planned Topics (for a typical semester where writing an assembler is the large project):
Material
- What is Object-Oriented Programming? History, examples, Operating Systems
- Object-Oriented Program Development
- Introduction to GUI Programming part 1
- C++ Tools / Stream I/O
- Implementing Object Behaviors with Functions
- List Objects, Array-Based Implementations
- Producing Objects Through Classes
- GUI Programming Part 2
- First Class Objects
- Storage Management for Objects
- Inheritance & Reuse
- GUI GUI Controls
- ***** Mid-Semester Exam: Review, Exam, Answer Review
- Polymorphism and Generic Classes
- More GUI Controls
- Container Classes
- Advanced GUI Controls
- Assembler Designs
- Symbol Table, Search Algorithms including Hashing
- Converting Constants, converting register-register instructions
- Converting instructions that reference memory; object code
- ***** Final Exam: Review & Exam
Typical Lab Projects & Estimated Time for Completion
1- Mortgage interest program designed/implemented in several phases: first, as a traditional monolithic program in C; second, using an object as the interest computing engine; third, with objects that employ stream I/O, overloading, and other C++ concepts. 6 weeks.
2- A file-driven telephone database management system, complete with classes, overloading, etc.
3- A small C++ program to simulate a memory dump in a mainframe S/390 in hexadecimal. 2 weeks
4- A full 2 pass assembler for S/390 assembly language. Including parser, machine op table, pseudo op table, symbol table with hashing, address generation, and instruction generation. 6 weeks
Last Updated on 09/04/07