CS371p: Object-Oriented Programming



Course Information


  • Instructional Mode: Face-to-face

Instructors


Prof. Glenn Downing
https://www.cs.utexas.edu/~downing/
Office Hours: MF 12 pm, GDC 6.308

Teaching Assistants


Danika Rossbach
GitLab: https://gitlab.com/drossbach/
Office Hours: T 12 pm, GDC basement
Sneha Ballabh
GitLab: https://gitlab.com/snehaballabh/
Office Hours: M 5 pm, GDC basement

Welcome Message


  • Sign into Canvas and confirm your registration for the course.
  • Check your grades regularly.
  • Confirm that you can access Ed Discussion on Canvas to post class questions.
  • If it involves something personal, like your grade, please make a private post on Ed Discussion.
  • Sign up for a GitLab account and clone the class repo to access the examples and notes.
    • git clone git@gitlab.com:gpdowning-ut/cs371p.git
  • Confirm access to UT's Claude EDU (Use <your EID>@eid.utexas.edu).
  • Sign up for a HackerRank account for the projects.
  • Sign up for a Zoom account. You must use your UT EID credentials. Ensure that you have the latest version of the app: 7.1.5

Communication


  • Please use Ed Discussion for all of your communication with the staff.

Catalog Description


  • Programming using class derivation; inheritance; and dynamic polymorphism.
  • Application of a simple object-oriented design methodology to several software development problems.

Overview of the Class


Week Topic Problem Project Test
1 syllabus, docker 1
2 assertions, unit tests, coverage, operator++(), references 2
3 exceptions, consts 1
4 iteration, std::equal(), std::copy(), std::reverse() 3
5 iterators, range, operator[](), const methods, stack arrays 4
6 operator==(), friends, initializations, std::initializer_list, std::array 2
7 heap arrays, std::vector, std::allocator 5
8 copy constructor, copy assignment 6 1
9 function overloading, move, std::deque, std::list, std::stack, std::queue, std::priority_queue 3
10 UML, random numbers, inheritance, method overriding 7
11 virtual functions, dynamic binding, dynamic_cast, pure virtual functions 8
12 smart pointers 4
13 singleton 9
14 Fall Break
15 std::shared_ptr, observer, strategy 5
16 2

Lectures Online


  • This class is using the Lectures Online recording system. This system records the audio and video material presented in class for you to review after class. Links for the recordings will appear in the Lectures Online tab on the Canvas page for this class. You will find this tab along the left side of the navigation in Canvas.
  • The recordings are delayed for 7 days.
  • To review a recording, click on the Lectures Online navigation tab and follow the instructions on the page. You can learn more about how to use the Lectures Online system at http://sites.la.utexas.edu/lecturesonline/students/how-to-access-recordings/.
  • You can find additional information about Lectures Online at https://sites.la.utexas.edu/lecturesonline/.

Pre-Requisites of the Course


  • Prerequisite: Computer Science 429 or 429H with a grade of at least C-.

Software



Learning Outcomes


Attitude
  • appreciate the value of automatic builds
  • appreciate the value of collaboration
  • appreciate the value of component reuse
  • appreciate the value of continuous integration
  • appreciate the value of refactoring
  • appreciate the value of software testing
Knowledge
  • algorithms
  • allocators
  • assertions
  • class vs. instance data
  • class vs. instance methods
  • classes
  • containers
  • design patterns
  • dynamic vs. static binding
  • exceptions
  • inheritance
  • iterators
  • makefiles
  • smart pointers
  • UML
  • unit tests
  • virtual methods
Skill
  • algorithm design that requires the weakest iterator
  • container design that provides the strongest iterator
  • continuous integration design
  • object-oriented design that minimizes setters and getters
  • makefile design
  • software coverage
  • software documentation
  • software formatting
  • software testing

Grading Policy


  • We expect each student to abide by the University of Texas Honor Code: "As a student of The University of Texas at Austin, I shall abide by the university's core values and uphold academic integrity."
  • We permit discussing problem solutions with other students, asking others for conceptual help with a problem, looking online for tutorials explaining how to solve a problem, or getting help from a classmate debugging code you wrote.
  • However, all code you turn in must be your own.
  • The penalty for copying code (either from another student or the Internet) is an F in the course.

Assignments


In Class Number Drops Lates Makeups Platform Percentage
Exercises 13 2
  • Not Applicable.
15%
Quizzes 39 5
  • Not Applicable.
15%
Tests 2 0
  • Not Applicable.
30%

Out of Class Number Drops Lates Makeups Platform Percentage
Blogs 14 7
  • up to two days
  • 10% per day penalty
  • Not Available.
5%
Papers 14 1
  • up to two days
  • 10% per day penalty
  • Not Available.
5%
Problems 9 1
  • up to two days
  • 10% per day penalty
  • Not Available.
10%
Projects 5 0
  • up to two days
  • 10% per day penalty
  • Not Available.
20%

Late Add


  • The last day to add is the sixth class day, Mon, 31 Aug.
  • If you add on that day, you will have already missed one paper, one problem, and two quizzes.
  • There are no makeups for that.

Grades


Letter Percentage
A 94%
A- 90%
B+ 87%
B 84%
B- 80%
C+ 77%
C 74%
C- 70%
D+ 67%
D 64%
D- 61%

HOP 2-9970 Classroom Recording


  • HOP 2-9970 prohibits students from recording class instruction (audio or video) unless a student obtains the instructor’s permission or Disability & Access has approved audio recording as an accommodation.

Course AI Policy Syllabus Statement


  • In Class
    • exercises: AI is prohibited
    • quizzes: AI is prohibited
    • tests: AI is prohibited
  • Out of Class
    • blogs: AI is permitted as a reviewer
    • papers: AI is prohibited
    • problems: AI is permitted as a reviewer
    • projects: AI is required

Overview of all Major Course Requirements and Assignments



MOSS


  • We will compare your programming assignments with Kattis and MOSS.
  • You may share design ideas with your fellow students. You may not share code in any way.

Canvas Assignments



Required Course Materials


  • No required materials.

Recommended Course Materials



Final Exam Date and Time


  • No final exam.


Notice of Academic Accommodations from Disability and Access (D & A)


  • If you are a student with a disability, or think you may have a disability, and need accommodations, please contact Disability and Access (D&A).
  • Contact and more details are available on D&A’s website: https://disability.utexas.edu.
  • If you are already registered with D&A, please share your accommodation letter with me as early as possible in the semester so we can discuss how your approved accommodations will be implemented in this course.

University Policies and Resources for Students Canvas Page


  • For a list of important university policies and helpful resources that you may need as you engage with and navigate your courses and the university, see the University Policies and Resources for Students Canvas page.
  • The page includes important safety information including the policy on carrying of handguns on campus, the language of the University Honor Code, Title IX legal requirements for Texas employees, and information about how to receive support through the office of Disability & Access, tutoring services, the Counseling and Mental Health Center, University Health Services, and other resources.

Copyright © Glenn Downing, 1995-2026
Updated 23 Aug 2026