CS371p: Object-Oriented Programming

  • Fall 2024: 50595 (57), 50600 (55)
  • 26 Aug - 9 Dec 2024
  • MEZ B0.306: MWF 10 am & 11 am


Course Information


  • Instructional Mode: Face-to-face
  • Help Sessions: MW 6 pm, GDC basement

Instructor


Prof. Glenn Downing

Teaching Assistants


TA: Rodrigo Brandao
GitLab: https://gitlab.com/reego1/
Office Hours: T, 6 pm, GDC basement
TA: Zhenxiao Liang
GitLab: https://gitlab.com/lzxone/
Office Hours: T, 4 pm, GDC basement

Welcome Message


  • We permit using AI tools (such as ChatGPT), provided that you properly cite the AI-generated content.
  • 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.
  • 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/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.1.6

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


  • This is a course on object-oriented programming.
  • The lectures will be about C++.
  • C++ has many object-oriented features, and I will compare and contrast them to Java's.
  • The early projects will be about mastering C++. The later projects will involve some object-oriented design.
  • It is also strongly focused on using tools to improve the quality of software development.

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 continuous integration
  • 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

Flag Courses


  • This course carries the Independent Inquiry flag. Independent Inquiry courses are designed to engage you in the process of inquiry over a semester, providing you with the opportunity for independent investigation of a question, problem, or project related to your major. Therefore, you should expect a substantial portion of your grade to come from the independent investigation and presentation of your work.

Grading Policy


  • 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]
Assignment R (1) [Revision Needed] M (2) [Meets Expectations] E (3) [Excellent/Exemplary]
5 projects
auto-graded by HackerRank
first project will be individual
rest of the projects may be in pairs (with different partners)
late up to two days, twice in the term
you can resubmit within one week
only two times in the term
but not the last project
no E (3)s
12 exercises
auto-graded by HackerRank
exercises will be collaborative
2 out of 3 points 3 out of 3 points
two E (3)s will make up one R (1)
14 blogs
must submit the first and last blog
late up to two days, twice in the term
no E (3)s
14 papers
auto-graded by Perusall
papers will be collaborative
late up to two days, twice in the term
2 out of 3 points 3 out of 3 points
two E (3)s will make up one R (1)
42 quizzes
auto-graded by Canvas
2 out of 3 points 3 out of 3 points
Two E (3)s will make up one R (1).
  • Note: Your course grade will depend on the number of assignments you complete with an M (2) or an E (3). It will then be the lowest grade in all assignment categories.
Letter Percent Projects Exercises Blogs Papers Quizzes
5 12 14 14 42
A 94% 5 11 13 13 39
A- 90% 5 11 13 13 38
B+ 87% 4 10 12 12 37
B 84% 4 10 12 12 35
B- 80% 4 10 11 11 34
C+ 77% 4 9 11 11 32
C 74% 4 9 10 10 31
C- 70% 4 8 10 10 29
D+ 67% 3 8 9 9 28
D 64% 3 8 9 9 27
D- 60% 3 7 8 8 25

Overview of all Major Course Requirements and Assignments



MOSS


  • We will compare your programming assignments with 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-2024
Updated 18 Nov 2024