CS253: Software Development with C++

Spring 2020

Syllabus

TaskCountPointsTotal
Recitations15115
iClicker quizzes15½
Homework 0111
Homework 1–77428
Paper quizzes3515
Midterms21326
Final exam11313
Total105½
They don’t add up to 100. Who says they have to?
GradePoints
A≥ 90
B≥ 80
C≥ 70
D≥ 60
F< 60
(no +/− grades)
LabWhenWhereWho
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
Class
CS253: Software Development with C++
Lecture
Chemistry A 103, 12:30–1:45ᴘᴍ Tuesday/Thursday, January 21 – May 7, 2020
Last Drop
February 5, 2020
Last Withdraw
May 8, 2020 (Yes, really!)
Required Text
C++ for Java Programmers Mark Allen Weiss, ISBN 013919424X (beware of another book with the same title)
Instructor
Jack Applin <Applin [snail] ColoState [period] Edu> (email tips)
URL
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
GTA
Zihui Li <Zihui [period] Li [snail] ColoState [period] Edu>
URL
https://meet.google.com/ewv-wzdy-tsg
Office Hours
Mon 7:00–9:00ᴘᴍ, Wed 7:00–9:00ᴘᴍ
Lab(Recitation) Hours
Fri 10:00–10:50ᴀᴍ
GTA
Saptarshi Chatterjee <Saptarshi [period] Chatterjee [snail] ColoState [period] Edu>
URL
https://meet.google.com/sxa-kkzn-xgc
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ᴘᴍ
GTA
Soumyadip Roy <Soumyadip [period] Roy [snail] ColoState [period] Edu>
URL
https://meet.google.com/kwa-eotu-xkw
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>
URL
https://meet.google.com/qdj-jchu-mpy
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>
URL
https://meet.google.com/mzo-znvn-ddv
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ᴘᴍ

Overview

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

Grading

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.

Multitasking

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.

Contact

Closures

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:

SDC

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

Cheating

A student copies

but she has cheated herself 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.