ET-580: Object Oriented Programming in C++

Course Information

Course, prefix, number, & title: ET-580 Object Oriented Programming in C++

Hours (Class, recitation, Laboratory, studio): 2 class hours, 2 lab hours

Credits: 3

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:

A.A.S. Computer Engineering Technology

A.A.S. Internet and Information Technology

A.A.S. Electronic Engineering Technology

A.A.S. Computer Engineering Technology

A.A.S. Telecommunications Technology

A.S. Computer Science and Information Security

General Education Outcomes: Below is a listing of General Education Outcome(s) that this course supports.

  1. Use analytical reasoning to identify issues or problems and evaluate evidence in order to make informed decisions

  2. Reason quantitatively as required in various fields of interest and in everyday life

Course-specific student learning outcomes:

Course objectives/expected 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.

Students should:

• 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

Program-specific outcomes

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).

  1. Integrate knowledge and skills in the program of study

  2. Reason quantitatively and mathematically as required in their fields of interest and in everyday life


Supplemental Information


ET 580 Lecture-Lab Course Topics- Table of Week Numbers and Lecture Course Topics:


Week Lecture-Lab 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
5 Exam I
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
10 Exam II
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
15 Final Exam

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
  • Quizzes
  • Projects
  • 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).

Disabilities
Any student who feels that he or she may need an accommodation based upon the impact of a disability should contact the office of Services for Students with Disabilities in Science Building, Room S-132, 718-631-6257, to coordinate reasonable accommodations for students with documented disabilities. You can visit the Services for Students with Disabilities website.

Campus Cultural Centers

Kupferberg Holocaust Center (KHC)Opens in a new window
Kupferberg Holocaust Center Opens in a new window

The KHC uses the lessons of the Holocaust to educate current and future generations about the ramifications of unbridled prejudice, racism and stereotyping.

Queensborough Performing Arts CenterOpens in a new window
QPAC: Performing Arts CenterOpens in a new window

QPAC is an invaluable entertainment company in this region with a growing national reputation. The arts at QPAC continues to play a vital role in transforming lives and building stronger communities.

Queensborough Art GalleryOpens in a new window
QCC Art GalleryOpens in a new window

The QCC Art Gallery of the City University of New York is a vital educational and cultural resource for Queensborough Community College, the Borough of Queens and the surrounding communities.