CS253: Software Development with C++

Spring 2020


iClicker quizzes15½
Homework 0111
Homework 1–77428
Paper quizzes3515
Final exam11313
They don’t add up to 100. Who says they have to?
A≥ 90
B≥ 80
C≥ 70
D≥ 60
F< 60
(no +/− grades)
R01Fri8:00–8:50ᴀᴍCSB 225Soumyadip Roy
R02Fri10:00–10:50ᴀᴍCSB 130Zihui Li
R03Fri1:00–1:50ᴘᴍCSB 130Saptarshi Chatterjee
R04Fri2:00–2:50ᴘᴍCSB 130Saptarshi Chatterjee
R05Fri3:00–3:50ᴘᴍCSB 130Saptarshi Chatterjee
CS253: Software Development with C++
Chemistry A 103, 12:30–1:45ᴘᴍ Tuesday/Thursday, January 21 – May 7, 2020
Last Drop
February 5, 2020
Last Withdraw
March 31, 2020
Required Text
C++ for Java Programmers Mark Allen Weiss, ISBN 013919424X (beware of another book with the same title)
Jack Applin <Applin [snail] ColoState [period] Edu> (email tips)
https://cs.colostate.edu/~applin/office (Google Hangouts)
Office Hours
Tue 2:00–2:25ᴘᴍ, Wed 9:45–11:30ᴀᴍ, Thu 2:00–4:00ᴘᴍ, and by appointment
Zihui Li <Zihui [period] Li [snail] ColoState [period] Edu>
Office Hours
Mon 7:00–9:00ᴘᴍ, Wed 7:00–9:00ᴘᴍ
Lab(Recitation) Hours
Fri 10:00–10:50ᴀᴍ
Saptarshi Chatterjee <Saptarshi [period] Chatterjee [snail] ColoState [period] Edu>
Office Hours
Wed 1:00–2:00ᴘᴍ, Wed 6:00–7:00ᴘᴍ, Thu 7:00–9:00ᴘᴍ
Lab(Recitation) Hours
Friday 1:00–4:00ᴘᴍ
Soumyadip Roy <Soumyadip [period] Roy [snail] ColoState [period] Edu>
Office Hours
Mon 8:00–10:00ᴀᴍ, Thu 7:00–9:00ᴘᴍ
Lab(Recitation) Hours
Fri 8:00–8:50ᴀᴍ
GTA (half-time)
Nazia Farhat <Nazia [period] Farhat [snail] ColoState [period] Edu>
Office Hours
Wed 6:00–8:00ᴘᴍ
Lab(Recitation) Hours
Fri 8:00–9:00ᴀᴍ, Fri 10:00–11:00ᴀᴍ, Fri 1:00–4:00ᴘᴍ
GTA (half-time)
Shree Ravichandran <Shreeharini [period] Ravichandran [snail] ColoState [period] Edu>
Office Hours
Mon 5:00–6:00ᴘᴍ, Wed 5:00–6:00ᴘᴍ
Lab(Recitation) Hours
Fri 8:00–8:50ᴀᴍ, Fri 10:00–10:50ᴀᴍ, Fri 1:00–3:50ᴘᴍ


The purpose of this class is twofold:

  1. Learn C++, which will partition the class into three sections:
    • Non-object-oriented C++
    • Object-oriented C++
    • Templates and the STL
  2. Learn the tools of a professional programmer, including:
    • make
    • debuggers
    • valgrind
    • programming styles (imperative, event-driven, object-oriented)
    • source control systems
    • coding standards


Homework, quizzes, and tests are weighed according to the tables on the right. Use ~cs253/bin/grade to see all of your scores, or ~cs253/bin/grade HW3 for detailed feedback on homework #3. Quizzes and tests are curved, homework is not, so, for example, you will see both Q2 (quiz #2) and a Q2-curved (quiz #2, curved) versions. There is no extra credit.

The TAs grade everything. If you don’t like your score, talk with them first, then to the instructor if you still disagree.

Homework is submitted & graded online, with ~cs253/bin/checkin and ~cs253/bin/grade. Quizzes are returned in class. Tests are not returned, but you can schedule time with the instructor to review them.

Class participation will be measured with weekly iClicker quizzes. Get one; register it via Canvas.

The Unexpected

If illness prevents you from doing homework or taking a quiz/test, get a note from Hartshorn, a doctor, an emergency room, etc. It is not good enough to diagnose yourself. Similarly, if you suffer a family tragedy, your apartment catches fire, you’re called up for military service, etc., then provide documentation for the event. Concerts and ski trips are not unexpected.


Students often believe that they can efficiently multitask. Specifically, they believe that they can surf the web, catch up on social networking, and absorb the lecture at the same time. They are incorrect. Studies consistently show that we are all miserable at multitasking.



I will announce cancellations on Piazza. However, I don’t decide when to cancel classes—CSU does. If the weather looks interesting, go to https://safety.colostate.edu. If that site says that CSU is closed, then classes, labs, office hours, etc., are cancelled. If it doesn’t, then they’re not.

Conduct in Class

Don’t distract the students. I can’t force you to learn, but you must allow others to do so. This means:


The course policies for the SDC (Student Disability Center) students are based on the policies of the College of Natural Sciences. The homework deadlines applicable to regular students apply to SDC students as well. The instructor may permit a student to take quizzes/tests at the SDC.


A student copies

but he has cheated himself and so fails the class

Exams and projects will be done individually and grades assigned on an individual basis. Further, students not already familiar with the CSU Honor Pledge should review this clear and simple pledge and always adhere to it.

Policies on cheating, plagiarism, incomplete grades, attendance, discrimination, sexual harassment, and student grievances are described in the Student Information Guide. All other matters follow the policies set in the current CSU General Catalog, the Student Conduct Code, and in the CS Dept. Code of Conduct.

You may not copy or use, all or in part, someone else’s work. You may not give your work, all or in part, to someone else for any reason. It is your responsibility to keep your work private from all others. You may not collaborate to produce one product turned in multiple times. You may not use work done in a previous semester by someone else. You may not post assignments on the internet. Paying for homework will result in dire consequences. Acting surprised will not help you.

You may discuss assignments but the work you turn in must be your own. You have crossed the line if you start comparing someone else’s work to your own (or vice versa). You have crossed the line if you cannot explain/understand the work you submit. “I copied it from the internet” is not an explanation.

Writing a program comprises two phases: design and implementation. You must do both on your own. It is unacceptable to have joint design but separate implementations.