CS371p: Object-Oriented Programming



Course Information


  • Instructional Mode: Face-to-face

Instructor


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

UGCAs


Danika Rossbach
GitLab: https://gitlab.com//
Office Hours: TBD, GDC basement
Sneha Ballabh
GitLab: https://gitlab.com/snehaballabh/
Office Hours: TBD, GDC basement
Tapaswini Kodavanti
GitLab: https://gitlab.com/tk24428/
Office Hours: TBD, 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, exercises, and notes.
    • git clone https://gitlab.com/gpdowning-ut/cs371p.git
  • 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: 6.7.0

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 Spring Break
11 UML, random numbers, inheritance, method overriding 7
12 virtual functions, dynamic binding, dynamic_cast, pure virtual functions 4
13 smart pointers 8
14 singleton 9
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.
  • 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


Altitude
  • 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.
  • We will compute your grade with an innovative approach called specifications grading.
  • We will evaluate each assignment to see whether it meets the specifications.
  • Here's the EMRN scale:

  • The Canvas grade book uses a numerical scoring system and therefore we will map the EMRN scale onto a numerical scale:
    • E (3) [Excellent/Exemplary]
    • M (2) [Meets Expectations]
    • R (1) [Revision Needed]
    • N (0) [Not Assessable]

Assignments


Assignments Points Lates Makeups Resubmissions
Blogs
  • 7 blogs
  • M (2) to pass
  • must do the first and last
7
  • within one day
  • only twice
Exercises
  • 14 exercises
  • M (2) or E (3) to pass
  • two E (3)s make up one R (1)
  • on Ed Lessons
14
Papers
  • 14 papers
  • M (2) or E (3) to pass
  • two E (3)s make up one R (1)
  • on Perusall
14
  • within one day
  • only twice
Problems
  • 9 problems
  • M (2) to pass
  • on Kattis
9
  • within one day
  • only twice
Projects
  • 5 projects
  • M (2) to pass
  • R (1) to resubmit
  • on HackerRank
5
  • within one day
  • only twice
  • resubmissions within one week of grading
  • only twice
  • not the last project
Quizzes
  • 40 quizzes
  • M (2) or E (3) to pass
  • two E (3)s make up one R (1)
  • on Canvas
40
Tests
  • 2 tests
  • M (2) or E (3) to pass
  • one E (3) makes up one R (1)
  • on Canvas
2

Late Add


  • The last day to add is the fourth class day, Thu, 15 Jan.
  • If you add on that day, you will have already missed one problem and one quiz.
  • You can make up the problem, but you can not make up the quiz.
  • You must make a private Ed post by Fri, 16 Jan.

Grades


Letter Blogs Exercises Papers Problems Projects Quizzes Tests
Points 7 14 14 9 5 40 2
A 7 11 13 8 5 35 2
A- 6 11 13 8 5 35 2
B+ 6 10 12 8 4 32 2
B 6 10 12 8 4 31 2
B- 6 9 11 7 4 29 2
C+ 5 9 11 7 4 28 2
C 5 8 10 7 4 27 1
C- 5 8 10 6 4 25 1
D+ 5 7 9 6 3 24 1
D 4 7 9 6 3 23 1
D- 4 6 8 5 3 21 1
  • Your course grade will depend on the number of points you earned. It will then be the lowest grade in all assignment categories.

Generative Artificial Intelligence


  • AI tools (such as UT's Microsoft Copilot) and similar assistants can be valuable resources for learning and improving your code.
  • However, in this course, you are expected to use AI as a helper, not as a coder.
    • Do use AI to ask questions about concepts, debugging strategies, error messages, or ways to improve the clarity, style, or efficiency of your code.
    • Do use AI to deepen your understanding of why your code works, or doesn’t, and to learn alternative approaches.
    • Do not ask AI to generate solutions, write complete programs, or provide code that you then submit as your own.
  • The goal is for you to learn to think and code independently.
  • There is nothing to lose and everything to gain by asking an AI not to do your work but to critique it instead!

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)


  • The university is committed to creating an accessible and inclusive learning environment consistent with university policy and federal and state law. Please let us know if you experience any barriers to learning so I can work with you to ensure you have equal opportunity to participate fully in this course. If you are a student with a disability or think you may have a disability and need accommodations, please get in touch with Disability and Access (D & A). If you have already registered with D & A, please deliver your Accommodation Letter to me as early as possible in the semester so we can discuss your approved accommodations and needs in this course.

University Policies and Resources for Students Canvas Page


  • This Canvas page is a supplement to all UT syllabi and contains University policies and resources that you can refer to as you engage with and navigate your courses and the university.

Copyright © Glenn P. Downing, 1995-2026
Updated 29 Dec 2025