Spring 2021     Mondays and Thursdays   11:10 AM to 12:25 PM on BlackBoard Collaborate

Genady Maryash   office hours by appointment on BlackBoard Collaborate.

Data Abstraction and Problem Solving with C++: Walls and Mirrors, 7th Edition eText, Frank M. Carrano, ISBN-13 978-0134463971. Must be rented ($39) or purchased ($59) from in order for the chapter links to work!


Open Data Structures in C++
Prof. Stewart Weiss’ notes
Linux on Windows Tutorial:

This course is the second in a three-course series, and it is a major stepping-stone in your software development journey. The primary focus of this course is the design and analysis of algorithms and abstract data types. To this end it introduces elementary data structures with related algorithms and their use in problem solving. The course also covers core computer science concepts such as abstraction, algorithm complexity, performance analysis and the tradeoffs between running time, storage size, clarity and extensibility that are at the core of software design. As a sequel to CSCI 135 it will also enhance your programming skills in C++ and Object Oriented Programming by introducing new tools such as Templates, Inheritance, Polymorphism, extend your understanding of pointers and dynamic memory allocation.

CSCI 135 and CSCI 150.

Please check this page regularly for announcements, updates, lecture notes and schedule. All course materials will be gradually posted here.

I hope you will enjoy the programming projects! There will be seven programming projects. You will have a week to complete each project. Every program must comply with the Programming Guidelines. You must read this document, it contains guidelines about submission, lateness, plagiarism, grading and logging into your Linux accounts.

7% for each of the seven projects (together they are the most important part of your grade), 7% all lecture activities, 7% all study questions, 14% the midterm, and 23% the final exam.

Ask as many as you need during lecture! You may get additional help with your project during the daily Lab Session from 1:15 PM to 2:15 PM.

We will use BlackBoard Collaborate synchronousely for all lectures as well as all lab sessions for help with projects. We will also use BlackBoard for all exams. Make sure that you have configured BlackBoard to use your preferred email address (your Hunter email address, by default). You must regularly check my announcements on BlackBoard and your Hunter email. This is how you will receive important course-related communication.
IMPORTANT: 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.

You will submit all 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 to send you another one: you will need to email him or her your full name, EMPLID, and a working email address.

This course it taught in Linux and your programs must be able to run on a Linux platform. The standard Linux/Unix/Mac OS C++ compiler is g++. If you wish to use a home computer, you can use any version of Linux. We recommend Ubuntu Linux – it the one used by Gradescope. Or use a Mac. Macs have Unix command line and g++. You could also use a Linux environment included with most recent versions of Windows. Check out this excellent tutorial: or just google it. 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.

Except for changes that substantially affect implementation of the grading policy, this syllabus is a guide for the course and is subject to change. In particular, the course schedule on the webpage, including topics, readings and project assignments, is subject to change. Any changes will be announced in class and on the course webpage. Be sure to check for updates online regularly.

There are plenty of resources and examples available that you may consult and understand to incorporate those ideas into your projects. However, you must ultimately write your programs yourself. You are actively encouraged to discuss ideas with one other. However, unless otherwise stated, you may not give code to or receive code from anyone else. If you are uncertain about the appropriateness of a particular case, you may ask.

In this course, special attention is given to contract cheating, where students have work completed on their behalf that is then submitted for academic credit. All submitted projects will be thoroughly checked for authenticity/originality with screening software in order to prevent contract cheating. Please read more information on Contract cheating from http://

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: