![]() |
C++ Programming - Winter 2012
|
![]() |
Syllabus
Welcome
Welcome to CMSC 389C, C++ Programming. This is a one credit course that will introduce the essential features of the C++ programming language. The official pre-requisite for this course is CMSC 216 (or 212 or 213/313), and so we will assume that students are already familiar with Java and elementary programming in C.
Instructor
Fawzi Emad
Recommended Text
C++ for Java Programmers
Topical Content
The topical content will be determined somewhat dynamically, but major topics we hope to include are (in approximate order of presentation):Other potential topics (time permitting):
- Brief history of C++
- Comparing Java with C++ (Overview)
- Introductory syntactical examples
- Functions (taxonomy, syntax, etc.)
- Variables in C++
- Separate compilation model
- Memory maps (Java vs. C++)
- C++ string class
- Assignment in C++ vs. Java
- Dynamic allocation (new/delete)
- const
- Passing parameters
- Return values
- Collections (arrays, vectors)
- Writing classes (overview)
- Constructors
- Nested objects
- Member initializers
- Destructor
- Basics of operator overloading
- "The big 3": copy constructor, operator=, destructor
- static members
- Inheritance (Java vs. C++)
- Templates
- Exception handling
- Finer points of operator overloading
- More about the standard template library (STL)
Course Grades
There will be two significant projects (one short and one longer) along with several homeworks. Some of the homeworks will involve a graded programming exercise, others will be a set of questions for you to answer and hand in.The tentative plan for computing final course grades is:
35% - Projects (10% for Project #1 and 25% for Project #2)
30% - Homeworks
35% - Final Exam
Due dates
The due dates for assignments are rigid. Programming assignments that are to be submitted electronically will be due at 11:00PM. You may submit a programming assignment up to 24 hours after the due date, but you will be penalized 20%. Assignments that are to be handed in on paper will be due at the beginning of class. These assignments will not be accepted after the due date unless there are very extraordinary circumstances.
Project Implementation
Programming assignments will be distributed and submitted on the Grace system. You may also implement the projects directly on Grace, or you may implement them externally using the IDE of your choice. Options will be discussed in class.
Excused Absences
- Any student who needs to be excused for an absence from a single class session , due to a medically necessitated absence shall:
- Make a reasonable attempt to inform the instructor of his/her illness prior to the class.
- Upon returning to the class, present their instructor with a self-signed note attesting to the date of their illness. The note must contain an acknowledgment by the student that the information provided is true and correct. Providing false information to University officials is prohibited under Part 9(h) of the Code of Student Conduct (V-1.00(B) University of Maryland Code of Student Conduct) and may result in disciplinary action.
- This self-documentation may not be used for the Major Scheduled Grading Events as defined below and it may only be used for 1 class meeting during the course.
- Any student who needs to be excused for more than one absence, or for a "Major Scheduled Grading Event", must provide written documentation of the illness from the Health Center or from an outside health care provider. This documentation must verify dates of treatment and indicate the timeframe that the student was unable to meet academic responsibilities. The documentation should be given to the instructor, not the TA. The Major Scheduled Grading Events for this course include:
- Final Exam
Academic Honesty
All assignments/exams must be done individually. Please visit the webpage of the Student Honor Council for a detailed explanation of what constitutes academic dishonesty. Note that it includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. You are allowed to use the Web for reference purposes, but you may not copy code from any website or any other source. In short, all submitted work must be your own.Cases of academic dishonesty will be dealt with harshly. Each such case will be referred to the University's Office of Judicial Programs. If the student is found to be responsible of academic dishonesty, the typical sanction results in a special grade "XF", indicating that the course was failed due to academic dishonesty. More serious instances can result in expulsion from the university. If you have any doubt as to whether an act of yours might constitute academic dishonesty, please contact your instructor.

