CS253: Software Development with C++

Spring 2021

Syllabus

TaskCountPointsTotal
Labs15115
Quizzes13113
Homework 0111
Homework 1–77428
Midterms21428
Final exam11515
GradePoints
A+≥ 96.67
A≥ 93.33
A-≥ 90.00
B+≥ 86.67
B≥ 83.33
B-≥ 80.00
C+≥ 76.67
C≥ 70.00
D≥ 60.00
F≥ 00.00
Class
CS253: Software Development with C++
Lecture
1:00–1:50ᴘᴍ MT Monday/Wednesday/Friday
Lectures are virtual—we do not meet at CSU. Lectures are recorded, available via Microsoft Teams, and also linked into the schedule. You can watch the lecture live via Teams at the scheduled time and ask questions, or watch it later. Watch the lectures promptly, so you don’t fall behind.
Labs
Weekly labs (alias recitations) are also virtual. Do not go to campus. A recorded video introduction for each lab will be available via Teams and linked into the schedule. Do the lab, and turn in your results via Canvas.
Semester
January 20 – May 7, 2021
Last Drop
February 3, 2021
Last Withdraw
March 22, 2021
Optional Text
C++ for Java Programmers Mark Allen Weiss, ISBN 013919424X (beware of another book with the same title)

Instructor
Office Hours
via Teams: Monday noon–12:50ᴘᴍ MT, Wednesday 5:00–7:00ᴘᴍ MT, Thursday 4:00–5:00ᴘᴍ MT, Friday 6:00–8:00ᴘᴍ MT, and by appointment
GTA
Saira Jabeen <Saira [period] Jabeen [snail] ColoState [period] Edu>
Office Hours
via Teams: Monday/Wednesday/Friday 2:00–4:00ᴘᴍ MT
GTA
Apoorv Pandey <Apoorv [period] Pandey [snail] ColoState [period] Edu>
Office Hours
via Teams: Tuesday/Wednesday 8:00–11:00ᴀᴍ MT
GTA
Ramya Patchava <RamyaSree [period] Patchava [snail] ColoState [period] Edu>
Office Hours
via Teams: Monday/Thursday 5:00–8:00ᴘᴍ MT
GTA
Soumyadip Roy <Soumyadip [period] Roy [snail] ColoState [period] Edu>
Office Hours
via Teams: Monday/Tuesday/Wednesday/Thursday 11:00ᴀᴍ–noon MT, Friday 10:00ᴀᴍ–noon MT

Important information for students on COVID-19

All students are required to follow public health guidelines in any university space, and are encouraged to continue these practices when off-campus(es). Students also are required to report any COVID-19 symptoms to the university immediately, as well as if they have potentially been exposed or have tested positive at a non-CSU testing location. If you suspect you have symptoms, please fill out the COVID Reporter (https://covid.colostate.edu/reporter/). If you have COVID symptoms or know or believe you have been exposed, it is important for the health of yourself and others that you complete the online COVID Reporter. Do not ask your instructor to report for you; if you report to your instructor that you will not attend class due to symptoms or a potential exposure, you are required to also submit those concerns through the COVID Reporter. If you do not have access to the internet to fill out the online COVID-19 Reporter, please call (970)491-4600.

If you report symptoms or a positive test, your report is submitted to CSU’s Public Health Office. You will receive immediate, initial instructions on what to do and then you will also be contacted by phone by a public health official. Based on your specific circumstances, the public health official may:

If you report a potential exposure, the public health official will help you determine if you are at risk of contracting COVID.

For the latest information about the University’s COVID resources and information, please visit the CSU COVID-19 site (https://covidrecovery.colostate.edu/).

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:

Letter Grades

Letter grades are computed per the table above. There’s no rounding. If you earned 89.99 points, you get a B+. The labs & weekly quizzes are worth a lot of points—don’t throw them away and miss a letter grade by quarter point. There is no extra credit.

Quizzes & Tests

Take quizzes & tests via Canvas. Use Canvas to see your scores. Quizzes & tests are weighed according to the table above. Quizzes are not curved, only the midterms and the final exam are. Contact the instructor to review a Canvas test.

Homework

Submit homework via Canvas. Use Canvas to see your scores & feedback. The TAs grade the homework. If you don’t like your score, talk with them first, then to the instructor if you still disagree.

Making up Work

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.

Don’t ask the TAs to let you turn in work late, or to let you make up work. They don’t have the power to permit that—only the instructor does.

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.

It is especially difficult to maintain focus in an online envirohment. Persevere!

Contact

Reliable ways to contact the CS253 staff:

Avoid Canvas messages—we have enough other modes of communication.

Closures

I will announce cancellations on Teams. 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.

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 deadlines applicable to non-SDC 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 they have cheated themself 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.

The use of online “homework helper” sites including, but not limited to, Chegg, NoteHall, Quizlet, and Koofers are not permitted in this course. Please reach out to your instructor to discuss if a specific service you are thinking about using for this course is acceptable. Use of these types of resources will be considered receiving unauthorized assistance and, therefore, a violation of the student conduct code. Using them may result, at the discretion of the instructor, in an F for the course or a negative value for the assignment, quiz, or exam. All incidents of this type will be referred to the CSU Student Resolution Center and may be subject to additional University disciplinary action.

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.