Uploaded by Peaches Bum

2023-2-CMPT1209-Outline

advertisement
DOUGLAS COLLEGE
CMPT 1209: COMPUTER PROGRAMMING II
Course Outline
Summer 2023
Instructor: Mohammad Aboofazeli
Office: Room S3926 (NW Campus)
E-Mail: aboofazelim@douglascollege.ca
Textbook: “Starting out with C++, from control structures through objects:” by Tony Gaddis,
10th edition, Pearson Canada
COURSE DESCRIPTION
This is a second course in computing science and programming, presented using an objectoriented perspective and intensive hands-on experience. Students will learn how to apply
fundamental object-oriented concepts using a high-level programming language like C++ to
efficiently program applications that have an intermediate level of difficulty. Topics include
encapsulation, inheritance, aggregation, polymorphism, templates, and virtual functions.
Software development lifecycle and modelling, code efficiency analysis, event-driven
programming, and exception handling are also introduced in this course.
COURSE OBJECTIVES
Upon completion of this course, students will be able to:
 Explain the importance of modular programming and compare procedural and objectoriented methodologies
 Discuss encapsulation, abstraction, information hiding, inheritance, polymorphism,
virtual functions, templates, and other object-oriented-related terminology
 Identify different types of methods and their roles in a class: constructors, destructors,
copy constructors, getters and setters, and operator-overloading methods
 Design, develop, implement, and document programs efficiently according to current
best practices
 Identify and use some of the basic data structures implemented in C++ STL (Standard
Template Library) to develop software
 Analyze and compare the efficiency of algorithms
 Explain the importance of assertions and invariants to ensure program correctness
 Explain the role of documentation systems
 Compare CLI (Command Line Interface) and GUI (Graphical User Interface) applications,
and implement simple GUI applications
 Define exception classes to utilize object-oriented exception handling
 Apply lambda expressions and function pointers
EVALUATION
Evaluation will be carried out in accordance with Douglas College policies. Evaluation will be
based on the following criteria:
Labs (and participation): 15%
Homework Assignments: 20%
Midterm examination: 30%
Final examination: 35%
NOTE: A student MUST attempt at least 70% of the total weighted percentage for this course,
otherwise a grade of UN will be assigned. Missing the final exam will automatically lead to a UN
grade. Please refer to the appropriate pages of the current year’s College Calendar for
additional information on transcript grades and the grading system.
In order to pass the course, in addition to receiving an overall course grade of 50%, students
must achieve a grade of at least 50% on the combined weighted examination components
(including quiz, midterm and final examinations).
REGULATIONS
Attendance and Participation: Students are expected to attend, and actively participate in all
class sessions.
Class Announcements: Students are responsible for class announcements concerning course
assignment requirements, and/or schedule changes even if they are not in attendance.
Academic Dishonesty: The Academic Dishonesty policy is available through the Douglas College
website and will be the policy that is followed in this course.
Working on Assignments: In this course, all assignments are individual assignments. The
instructor takes no responsibility for lost assignments. Backups of your work should always be
kept on another storage device or computer.
Late assignments: Assignments must be handed in on or before the date and time specified on
the assignment. For every late assignment, a student will receive a 0. There will be no chance of
re-writing missed assignments.
Missed exams: Exams (midterm and final) will be offered ONLY during the scheduled date and
time. For any exception to be arranged, the instructor must be notified BEFORE the time of the
test (by e-mail to or discussion with the instructor) and only for very good reasons (i.e.
medical). The instructor may request to see proof of the reason for absence.
Final exam: Please check the exam schedule as soon as it becomes available for potential
scheduling conflicts.
Course Schedule
This course schedule is subject to change. Changes will be made based on our class experiences.
Students will be informed about any possible changes.
Week 1
Weeks 2 and 3
Weeks 4 and 5
Week 6
Week 7
Week 8
Week 9
Weeks 10 and 11
Week 12
Week 13
Review of pointers and dynamic memory allocation
Introduction to object-oriented programming, classes, objects, private
and public members, inline member functions, accessors, mutators,
constructors, passing arguments to constructors, destructors, pointers to
objects, arrays of objects
Static members vs. instance members, Copy constructors, Operator
overloading, friend functions, aggregation
Inheritance and polymorphism, exception handling, testing and
debugging
Function templates, class templates
Review
Midterm exam (June 29)
Rvalue references and move semantics, Lambda expressions
C++ STL
Event-driven programming and GUI applications
C programming for embedded systems
Download