CS371g: Generic Programming and the STL

Summer 2017: 86970

This is a course on generic programming using C++ and the Standard Template Library (STL). It will include:

  • algorithms
  • iterators
  • iterator adapters
  • containers
  • allocators
  • container adapters
  • lambdas
  • function adapters

It is also strongly focused on using tools to improve the quality of software development, including:

Estimates of the required effort to do well are:

  • 3 hours per week of reading/studying
  • 10 hours per week of programming
  • 3,000 lines of code


Unique Days Time Place
86970 MWF 1-2:30pm GDC 4.304

TA/Proctor Lab Sessions

Graders Days Time Place
Sarah & Sid Tue 6-8pm GDC 1.302


Type Name Days Time Place
Lecturer Glenn Downing MF 11:45-12:45pm GDC 6.308
TA Siddhesh Chaubal F 4-5pm GDC 1.302
Proctor Sarah Baxter Th 1-2pm GDC 1.302



Getting Started

  1. Sign into Canvas and confirm that you're registered for the course and can see your grades. It's imperative that you check your grades on a regular basis.
  2. Sign into Piazza. Post class questions to Piazza. Regarding a question of a personal nature e-mail us on Canvas.
  3. Get a GitHub education account as soon as possible. It must be an education account, which will entitle you to private repos. It can take several days to get this, and you must have it before you can turn in any projects.


Computer Science 429 (or 310) or 429H (or 310H) with a grade of at least C-.

Special Needs

Any student with a documented disability who requires academic accommodations should contact Services for Students with Disabilities at 471-6259 (voice) or 1-866-329-3986 (Video Phone) as soon as possible to request an official letter outlining authorized accommodations.

You must provide this letter to me by the 4th class day. Project deadlines will not be extended for special-needs students.


To be eligible for an incomplete you must have a letter grade of C or better and a written, verifiable excuse for missing the last test. This is a necessary but insufficient condition for receiving an incomplete.

Academic Integrity

Students who violate University rules on academic dishonesty are subject to disciplinary penalties, including the possibility of failure in the course and/or dismissal from the University. Since such dishonesty harms the individual, all students, and the integrity of the University, policies on academic dishonesty will be strictly enforced. For further information please visit the Student Judicial Services Web site: Student Judicial Services.

Programming assignments will be compared using MOSS. You may share design ideas with your fellow students. You may not share code in any way with your fellow students.

The penalty for academic dishonesty will be a course grade of F and a referral of the case to the Dean of Students. Further penalties, including suspension or expulsion from the university, may be imposed by that office.