ET-580: Object Oriented Programming in C++
Course, prefix, number, & title: ET-580 Object Oriented Programming in C++
Hours (Class, recitation, Laboratory, studio): 2 class hours, 2 lab hours
Pre-requisites (if any): ET-575
Co-requisites (if any): None
Course Description in college catalog:
This course covers object-oriented programming principles and techniques using C++. Topics include pointers, classes, overloading, data abstraction, information hiding, encapsulation, inheritance, polymorphism, file processing, templates, exceptions, container classes, and low-level language features.
Academic programs for which this course serves as a requirement or an elective:
General Education Outcomes: Below is a listing of General Education Outcome(s) that this course supports.
Use analytical reasoning to identify issues or problems and evaluate evidence in order to make informed decisions
Reason quantitatively as required in various fields of interest and in everyday life
Course-specific student learning outcomes:
|Course Objectives||Learning Outcomes|
|• To understand object oriented programming and advanced C++ concepts||• Perform object oriented programming to develop solutions to problems demonstrating usage of control structures, modularity, I/O. and other standard language constructs|
|• Take a problem and develop the structures to represent objects and the algorithms to perform operations.||
• Demonstrate adeptness of object oriented programming in developing solutions to problems demonstrating usage of data abstraction, encapsulation, and inheritance.
• Demonstrate ability to implement one or more patterns involving realization of an abstract interface and utilization of polymorphism in the solution of problems which can take advantage of dynamic dispatching
|• Understand and demonstrate the concepts of object-oriented design, polymorphism, information hiding, and inheritance.||
Students will be able to:
• Apply standards and principles to write truly readable code.
• Test a program and, if necessary, find mistakes in the program and correct them.
|• Take a problem and develop the structures to represent objects and the algorithms to perform operations||
Students will be able to:
• Write programs employing sequence, selection, and repetition structures • Implement modular design/decomposition in solving complex problems
• Develop formulas and algorithms that are well structured, robust, reliable, and amenable to implementation in a computer program.
|Work effectively with other programmers||
Students should be able to:
• Work as part of a team to analyze a given problem, propose and compare potential software solutions to the problem, and implement the chosen solution
Student Outcome (1) - an ability to apply knowledge, techniques, skills and modern tools of mathematics, science, engineering, and technology to solve well-defined engineering problems appropriate to the discipline;
- Performance Indicator ETCT1-2 Solve applied problems by employing computer programming skills and associated software including circuit simulation software.
Other program outcomes (if applicable).
Integrate knowledge and skills in the program of study
Reason quantitatively and mathematically as required in their fields of interest and in everyday life
ET 580 Lecture-Lab Course Topics- Table of Week Numbers and Lecture Course Topics:
|1||Lecture and Lab 1: Review: Functions, Recursion, Arrays, File I/O|
|2||Lecture and Lab 2: Structures, Classes, Objects, Class Members, Scope Resolution Operator, Access|
|3||Lecture and Lab 3: Constructors, Static vs Instance, Inline, Nested Classes, Temporary Objects|
|4||Lecture and Lab 4: Operator Overloading: unary, subscript, shortcut, stream I/O Friend Functions, Automatic Type Conversion|
|6||Lecture and Lab 5: Separate Compilation, Scope and Lifetime of Primitives vs Objects, Copy Elision, Return Value Optimization, Backtracking|
|7||Lecture and Lab 6: Pointers, Functions and Pointers, Heap vs Stack Dynamic Arrays, Pointer Arithmetic, Memorization vs. Dynamic Programming, Big-O|
|8||Lecture and Lab 7: Pointers and Classes, The Big Three, Arrow Operator, Function Pointers; Implementing a Safe Dynamic Array Class|
|9||Lecture and Lab 8: Composition, Aggregation, Inheritance, Multiple Inheritance, Diamond Problem; Inheritance and the Big Three, Inheritance and Access Modifiers|
|11||Lecture and Lab 9: Polymorphism, Virtual Functions, Early vs Late Binding, Overriding Functions; Covariant Functions, Virtual Destructors, Abstract Classes, Slicing Problem|
|12||Lecture and Lab 10: Templates and Functions, Templates and Classes, Templates and Inheritance|
|13||Lecture and Lab 11: STL, Vectors, Singly Linked List, Postfix/Prefix/Dereference Overloading, Stack/Queue as an Array, Stack/Queue as a Linked List|
|14||Lecture and Lab 12: Linear vs Binary Search, Bubble Sort, Insertion Sort, Selection Sort; QuickSort, MergeSort|
Methods by which student learning will be assessed and evaluated; describe the types of methods to be employed; note whether certain methods are required for all sections:
- One midterm examination
- One final cumulative examination
- Homework assignments
Academic Integrity policy (department or College):
Academic honesty is expected of all students. Any violation of academic integrity is taken extremely seriously. All assignments and projects must be the original work of the student or teammates. Plagiarism will not be tolerated. Any questions regarding academic integrity should be brought to the attention of the instructor. The following is the Queensborough Community College Policy on Academic Integrity: "It is the official policy of the College that all acts or attempted acts that are violations of Academic Integrity be reported to the Office of Student Affairs. At the faculty member's discretion and with the concurrence of the student or students involved, some cases though reported to the Office of Student Affairs may be resolved within the confines of the course and department. The instructor has the authority to adjust the offender's grade as deemed appropriate, including assigning an F to the assignment or exercise or, in more serious cases, an F to the student for the entire course." Read the University's policy on Academic Integrity opens in a new window(PDF).
Any student who feels that he or she may need an accommodation based upon the impact of a disability should contact the Office of Accessibility Services in Science Building, Room S-132, 718-631-6257, to coordinate reasonable accommodations for students with documented disabilities. You can visit the Office of Accessibility Services website.