Lecture: Tong Yi ( Monday, Thursday 9:45 – 11:00 AM

Recitation (please choose one section).





13500 sec 1R01

Mo 1:10PM - 3:00PM

Minh Nguyen

13500 sec 1R02

Mo 3:10PM - 5:00PM

Minh Nguyen

13500 sec 1R03

Mo 5:35PM - 7:25PM

Serra Canca

13500 sec 1R04

Tu 2:10PM - 4:00PM

Katherine Howitt

13500 sec 1R05

We 9:10AM - 11:00AM

Yasmeen Hassan

13500 sec 1R06

We 11:10AM - 1:00PM

Yasmeen Hassan

13500 sec 1R07

We 3:10PM - 5:00PM

Minh Nguyen

13500 sec 1R09

Th 3:10PM - 5:00PM 

Melissa Lynch

CSHR-REC Regular

MoTh 8:35AM - 9:25AM

Michael Zamansky


This course is: • An introduction to software development, using the C++ programming language. Software development is a skill that involves solving real-world problems by developing computer programs. Breaking a problem down, then creating a series of logical steps (an algorithm) that solves the problem is the conceptual part of the course. The technical component involves translating the solution into a working computer program. A successful student will be able to clearly and logically develop an algorithmic solution to a problem, while being comfortable enough with C++ to transform the algorithm into a working computer program. • A preparation for further courses in computer science. This course is one of the “ABCs” of computer science. Students who expect to succeed in more advanced courses in computer science need to go beyond understanding the material presented in this course – they need to master it. It’s sort of like the fact that you need to master the alphabet in kindergarten in order to be a successful reader in first grade. • Time consuming, very, very time consuming. Any programming course takes up a lot of a student’s time. In addition to the time spent in class, most students will need to spend between 10 and 15 hours a week at a computer. That makes for a total of 15-20 hours a week actually developing algorithms, and writing and debugging programs, no kidding!

This course is not: • An introduction to computers in general. We will not cover: operating systems, networks, databases, etc. This course teaches a specialized skill – developing solutions using computer programming – and only that. You should already possess basic computer skills such as compiling simple computer programs, editing files, manipulating files, etc. If you don’t feel comfortable with these sort of basic computer skills you should come talk to me. • An overview of the C++ language. C++ is a huge language with a lot of highly technical details. We will cover the fundamentals of C++, but the focus is on designing algorithms and solving problems. • A good idea to take if you are working full time and taking a full course load, or, for any other reason(s) you don’t have a lot of free time to devote to CSCI 13500. The course material requires many hours to master (see above). Be honest with yourself. Make sure this course is for you, now, at this point in your academic life. If you would like to discuss the time requirements further please feel free to come talk with me.

Other than during lecture quizzes I ask that all cell phones be put away in class.

The prerequisite is CSCI 12700 or instructor’s permission. At the very least, you should have written, compiled, and run a program containing iteration while, for and selection if statements.

Cay Horstmann, Brief C++, 3rd ed. eText - please rent the eText for one semester from here - do not buy or rent it from Amazon or Kindle store - you will not get access to the necessary interactive material!

You should check this page and blackboard regularly, since all class materials will be gradually posted here and in blackboard.

There are dedicated computer lab for this course: HUNTER NORTH 1001B. It is staffed with tutors, who are there to help you. Please take advantage of them. You can ask for help with labs, projects, and general course material Monday through Friday from 11:00 AM to 6:00 PM.

Ask many in lecture! Outside of lecture go to the tutoring labs. The department hired additional tutors especially for students taking this course. Email the instructor of your recitation section with any programming questions that the tutors cannot answer. The beginning of each recitation is also devoted to answering questions. All emails to instructors must start with your full name, day and time of your recitation section, and name of your recitation instructor.

You will submit all labs, homework, quizzes, and projects electronically through Gradescope. You will see your grades (including exam grades) on Gradescope as well. An invite email was sent to you before the first lecture. If you have not received it, ask your recitation instructor to send you another one right away: you will need to email him or her your full name, EMPLID, and a working email address.

Make sure that you have configured BlackBoard to use your preferred email address (your Hunter email address, by default), since you are responsible for any email I might send there.

This course it taught in Linux and your programs must be able to run on a Linux platform. On campus, you may use the 1001C and 1001B labs to do your work for this course. The standard Linux/Unix/Mac OS C++ compiler is g++. If you wish to use a home computer, you can use a Mac. Macs have Unix command line and g++. You can install Ubuntu Linux. If you want a Linux environment on Windows without installing Linux, follow this excellent tutorial: . We have had problems in the past with students programming in a native Windows environment at home, and their programs don’t work in the Linux labs and might be incompatible with Gradescope.

26% for work in recitation section, 5% lecture quizzes, 5% lab quizzes, 7% homework, 7% for each of the three projects, 12% of midterm exam, and 24% final exam. If you do better on the final exam, your final exam grade can replace your midterm exam if the latter is lower than the final grade. However, if you do not pass the final exam, you cannot pass the course.

Ample time will be given to complete labs and projects. However, because of the logistics of running a large lecture course, there will be no late project or lab submissions.

Show a deep practical knowledge of one widely used programming language. Implement a complete correct program utilizing all basic C++ concepts. Analyze and solve a non-trivial problem by designing and implementing a C++ program on your own. Apply principles of design and analysis in creating substantial programs and projects of realistic scope.

• From the beginning, you will be expected to work independently outside of the lectures. Get started right away – especially if you are going to install your own compiler and/or operating system. The first programming project is assigned during the first week.

• Absorbing the material and doing the assignments may be challenging. In order to grasp software development concepts one must sit in front of a computer many hours a week actually writing and debugging programs outside of class time. When it comes to programming, the learning is in the doing. There is no substitute for trying and failing, trying and failing, until you finally get your program up and running correctly. Get ample help from the tutors.

• Midterm and final exams are largely based on the labs, programming projects, and homework. It is essential that you complete them on time.

We take academic honesty very seriously, and any violation results in sanctions in accordance with Hunter College procedure. Hunter College regards acts of academic dishonesty (e.g., plagiarism, cheating on examinations, obtaining unfair advantage, and falsification of records and official documents) as serious offenses against the values of intellectual honesty. The College is committed to enforcing the CUNY Policy on Academic Integrity and will pursue cases of academic dishonesty according to the Hunter College Academic Integrity Procedures.

In compliance with the ADA and with Section 504 of the Rehabilitation Act, Hunter College is committed to ensuring educational access and accommodations for all its registered students. Hunter College’s students with disabilities and medical conditions are encouraged to register with the Office of AccessABILITY for assistance and accommodation. For information and appointment contact the Office of AccessABILITY located in Room E1214 or call (212) 772-4857 or VRS (646) 755-3129.


In compliance with the CUNY Policy on Sexual Misconduct, Hunter College reaffirms the prohibition of any sexual misconduct, which includes sexual violence, sexual harassment, and gender-based harassment retaliation against students, employees, or visitors, as well as certain intimate relationships. Students who have experienced any form of sexual violence on or off campus (including CUNY-sponsored trips and events) are entitled to the rights outlined in the Bill of Rights for Hunter College. a. Sexual Violence: Students are strongly encouraged to immediately report the incident by calling 911, contacting NYPD Special Victims Division Hotline (646-610-7272) or their local police precinct, or contacting the College’s Public Safety Office (212-772-4444). b. All Other Forms of Sexual Misconduct: Students are also encouraged to contact the College’s Title IX Campus Coordinator, Dean John Rose ( or 212-650-3262) or Colleen Barry ( or 212-772-4534) and seek complimentary services through the Counseling and Wellness Services Office, Hunter East 1123. CUNY Policy on Sexual Misconduct Link



Students who participate in this class with their camera on or use a profile image are agreeing to have their video or image recorded solely for the purpose of creating a record for students enrolled in the class to refer to, including those enrolled students who are unable to attend live. If you are unwilling to consent to have your profile or video image recorded, be sure to keep your camera off and do not use a profile image. Likewise, students who un-mute during class and participate orally are agreeing to have their voices recorded. If you are not willing to consent to have your voice recorded during class, you will need to keep your mute button activated and communicate exclusively using the "chat" feature, which allows students to type questions and comments live.



Proctoring software, which may include the use of browser lock-downs and cameras, will be used for examinations in this course.