RIT Department of Computer Science
CSCI-541: Programming Skills: Efficient Design in Modern C++

MyCourses -- Resources -- Syllabus -- Schedule -- Instructor -- Assignments -- Code

Programming Skills: Efficient Design in Modern C++

Catalogue Description

The goal of this course is to introduce the students to a programming paradigm and an appropriate programming language chosen from those that are currently important or that show high promise of becoming important. A significant portion of the learning curve occurs through programming assignments with exemplary solutions discussed later in class.

This instance of the course will develop the students' skills in developing software for the C++ programming language, and is particularly focused on the new C++11 standard. The course is highlighted by a semester long programming project that emphasizes object oriented design principles, test-first programming and cross platform GUI development.

Previous experience programming in C is essential. The beginning of the course will move quite quickly based on this assumption.


The undergraduate (CSCI-541) prerequisite for this course is:

Course Outcomes

Course Policies

Development of code and writings for homeworks, labs and projects is an individual responsibility.

Submitting individual work written by others or as an unsanctioned team is considered an act of academic dishonesty. Although students may discuss assignments and projects with others, all individually submitted writings and code must be created independently by the student and not copied from others or other sources. Team-developed work also must be created solely by team members and not copied from others or other sources unless with prior instructor approval. In cases where a student is suspected of cheating or copying material, the instructor shall act in accordance with http://www.cs.rit.edu/csdocs/StudentAcademicIntegrityPolicy.pdf, the Department of Computer Science Policy on Academic Integrity.

Required Materials

There are no required materials for this course.

Optional Textbooks


Your graded is computed as a percentage weighted by the table below. Letter grades are based on the following scale:

Undergraduate (CSCI-541):

Component Weight
Midterm Practial Exam 15%
Final Practical Exam 15%
Homeworks 20%
Labs 20%
Projects 30%

Grade Appeals

Questions may arise regarding an item of graded work. Grade appeals must be raised within one week after the day on which the grade was received. Otherwise, a grade becomes permanent one week after the student received the grade.

Also make note that extra credit and/or make-up assignment are not offered in this course.

Course Logistics

The course meets for 2h30m per week in two 1h15m classes. Students are expected to attend all meeting sessions of the course.


The normal class mode is a standard lecture on various C++ topics. Most lectures will be supplemented with live coding examples.

Midterm and Final Practical Exams

The midterm and final exams will be scheduled in our CS lab rooms. It will feature an in-lab practical programming exercise where students will demonstrate their ability to implement a small programming problem. This exercise is open book/notes and can be done either on our Ubuntu machines or on a student's own laptop. Website use is restricted to C++ references page and the One Note course page only, e.g. no stackoverflow. You may not access any of your previous code.


There will be several homework assignments. These are assignments that are meant to be done individually on pen and paper. A typical homework has a one week timeframe and is to be handed in at the start of class on the day noted.


There will be several labs assigned throughout the semester. These are small programming asignments meant to be done individually. All labs will be in C++ and submitted through the CS try system.


There will be a couple of projects assigned. These are larger programming assignments that are also meant to be done individually. Unlike labs these assignments will typically only have requirements and you will be required to design, implement and test your project.

CS Common Course Policies

updated: 1/15/2018