CS371p: Object-Oriented Programming

  • Fall 2021: 52970
  • 25 Aug - 6 Dec 2021
  • Updated 23 Sep 2021


Lectures

  • MWF 1-1:50 pm
  • RLP 0.128

Help Sessions

  • W 5-7 pm
  • online

Instructors

Professor
Grad TA

Serdjan Rolovic

Undergrad TA

Amogh Dambal


Getting Started

  • Sign into Canvas and confirm your registration for the course. Check your grades regularly.
  • Confirm that you have access to Ed Discussion on Canvas to post class questions. If it involves your grade, please message all of the graders on Canvas.
  • 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 to access the exercises.
  • Confirm that you have access to Perusall on Canvas to access the papers.
  • Sign up for a Zoom account. You must use your UT EID credentials. Ensure that you have the latest version of the app: 5.7.6.

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 navigation in Canvas.
  • To review a recording, simply click on the Lectures Online navigation tab and follow the instructions presented to you on the page. You can learn more about how to use the Lectures Online system at https://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/.

Topics

  • C++
  • assertions, exceptions, testing
  • algorithms, iterators, containers, allocators
  • classes, methods, UML
  • inheritance, dynamic binding, smart pointers
  • design patterns
  • software engineering tools

What is this class about?

  • 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.

What are estimates of the required effort to do well?

  • 1-2 hours per week of reading/studying
  • 5-10 hours per week of programming
  • 1,000-3,500 lines of code

Where can I find the class materials?

  • All of the examples and notes will be on GitLab.
  • It's helpful to clone that repo. I will be adding content as we progress through the class.
  • All of the quizzes will be on Canvas.
  • All of the exercises will be on HackerRank.

What will the quizzes be like?

  • We will start each day with a quiz.
  • The quizzes will be 4 min, multiple-choice, and two-stage on Canvas.

What will the lectures be like?

  • I will use the Socratic Method to discuss some part of the material, often involving a piece of code.
  • I will be courteous and respectful regardless of your level of experience, and those interactions will get to the issues you're having trouble with, and you will learn a lot more.
  • We will also do some exercises on HackerRank.

What will the exercises be like?

  • All of the exercises will be in C++ on HackerRank.
  • All you need is a Web browser to do the exercises.

What will the projects be like?

  • All of the projects will be in C++ on HackerRank.

Can I ask questions outside of class?

  • Ed Discussion will allow you to ask questions outside of class that everyone will see, and when I or the graders answer, everyone will benefit.
  • Please don't be shy about asking questions on the forum. No technical question is too basic to ask when learning new concepts, and everyone will benefit from seeing the questions and the answers.
  • It's also possible for you to answer questions on that forum, and that's also very valuable.
  • If you have a personal question, please message all of the graders on Canvas.

What is expected of me?

  • I want this class to feel like a community. To that end, I request that you follow these guidelines.
  • Please communicate with me about any problems you're having or about any help that you might need. Please make it a point to communicate with each other, as well.
  • Interact during the class. Don't hesitate to ask questions. I am very confident that others in the class will have the same questions. No question about the subject is inappropriate, regardless of what background you may be missing. Getting answers to your questions is the only way to get value out of the class.
  • Be on time at the start of class.
  • I very much welcome any suggestions you may have for improving the class.
  • You will get out of this class what you put into it. Please be aware, positive, proactive, and respectful in making this class what you want it to be.
  • Come to office hours!!!

Grading

  • We will compute your grade with an innovative approach called specifications grading.
  • We will evaluate each assignment on whether or not it meets the stated specifications.
  • Your course grade will depend on the number of assignments you complete with an E (exceeds), or an M (meets). It will then be the lowest grade in all of the categories.
  • Here's a video to explain the idea:

  • Here's the EMRN scale:


Virtual Tokens

  • We will give you 5 virtual tokens initially.
  • We will give you 3 more virtual tokens: up to two, if you go to help sessions or office hours, and a third if you submit UT's course evaluation survey at the end of the term.
  • If you have 6 virtual tokens at the end of the term, we will increase your grade to the next letter grade with a minus (e.g., B to A-).

Blogs

  • There will be 14 blogs.
  • You must submit the first and last blog.
  • If you receive an R:
    • resubmit within one day by using a virtual token
    • message us on Canvas when you resubmit
    You can only do that once in the term.

Exercises

  • There will be 12 exercises.
  • Exercises will be auto-graded by HackerRank.
  • Exercises will be worth 10 pts. You will receive (9-10 -> E), (7-8 -> M), (1-6 -> R), (0 -> N).
  • If you receive an R or an N:
    • use a previously-earned E or a virtual token
    • message us on Canvas within one week to make the request
    You can only do each of those once in the term.
  • Exercises will be collaborative.
  • You are responsible for having a device that works with HackerRank (e.g., a laptop or a tablet).
  • If you forget your tech or can't get it to work, we will mark your exercise as N.
  • You must attend the entire lecture. If you leave early, we will mark your exercise as N.
  • We will provide a password to unlock the exercise.
  • Sending the password, the questions, or the answers to anyone violates the university's honor code.
  • Students who violate University rules on academic dishonesty are subject to disciplinary penalties, including the possibility of failure in the course and dismissal from the university. Since such dishonesty harms the individual, all students, and the integrity of the university, we will strictly enforce policies on academic dishonesty.
  • We will provide the solutions to the exercises.

Papers

  • There will be 14 papers.
  • You must submit the first paper.
  • Papers will be auto-graded by Perusall.
  • Papers will be worth 3 pts. You will receive (3 -> E), (2 -> M), (1 -> R), (0 -> N).
  • If you receive an R:
    • resubmit within one day by using a previously-earned E or a virtual token
    • message us on Canvas when you resubmit
    You can only do that once in the term.

Projects

  • There will be 5 projects.
  • You must submit the first project individually.
  • You may submit the remaining projects in pairs.
  • You may not partner with the same person more than once.
  • Projects will be partially auto-graded by HackerRank.
  • You can get an extra two days with a virtual token; you can only do it once per project, twice per term.
  • If you receive an R, you can:
    • TAs will message you on Canvas
    • resubmit within two days by using a previously-earned E or a virtual token
    • message us on Canvas when you resubmit
    You can only do that once in the term.
  • We will not provide solutions to the projects.

Quizzes

  • There will be 41 quizzes.
  • Quizzes will be auto-graded by Canvas.
  • Quizzes will be worth 10 pts. You will receive (9-10 -> E), (7-8 -> M), (1-6 -> R), (0 -> N).
  • If you receive an R or an N:
    • use a previously-earned E or a virtual token
    • message us on Canvas within one week to make the request
    You can only do each of those twice in the term.
  • Quizzes will be two-stage.
  • You are responsible for having a device that works with Canvas (e.g., a laptop, a phone, or a tablet). Sometimes there's enough text on the quiz that using a phone is inconvenient.
  • If you forget your tech or can't get it to work, we will mark your quiz as N.
  • You must attend the entire lecture. If you leave early, we will mark your quiz as N.
  • We will provide a password to unlock the quiz.
  • Sending the password, the questions, or the answers to anyone violates the university's honor code.
  • Students who violate University rules on academic dishonesty are subject to disciplinary penalties, including the possibility of failure in the course and dismissal from the university. Since such dishonesty harms the individual, all students, and the integrity of the university, we will strictly enforce policies on academic dishonesty.
  • We will provide the solutions to the quizzes.

Letter Grades (number of E's or M's)

Type Number A B C D
Blogs 14 12 11 10 9
Exercises 12 9 8 7 6
Papers 14 12 11 10 9
Projects 5 5 4 3 2
Quizzes 41 33 29 25 21
  • Note: The Canvas grade book uses a numerical scoring system and therefore we will map the EMRN scale onto a 3–0 numerical scale. Keep in mind that E's are rarely given.
    • E = 3
    • M = 2
    • R = 1
    • N = 0

Academic Integrity

  • 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 core values of the university and uphold academic integrity." Plagiarism is taken very seriously at UT. Therefore, if you use words or ideas that are not your own (or used in a previous class), you must cite your sources. Otherwise, you will be guilty of plagiarism and subject to academic disciplinary action, including failure of the course. You are responsible for understanding UT's Academic Honesty and the university Honor Code, which you can find at the following web address: Standards of Conduct.

BeVocal

  • BeVocal is a university-wide initiative to promote the idea that individual Longhorns have the power to prevent high-risk behavior and harm. At UT Austin, all Longhorns can intervene and reduce injury. To learn more about BeVocal and how you can help to build a culture of care on campus, go to BeVocal.

Communication

  • If your communication applies to other students in the class, please use Ed Discussion.
  • If your communication is only relevant to you, please use Canvas.

Counseling and Mental Health Center

  • Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep, and taking some time to relax. That lifestyle will help you achieve your goals and cope with stress.
  • All of us benefit from support during times of struggle. You are not alone. There are many helpful resources available on campus, and an essential part of the college experience is learning how to ask for help. Asking for support sooner rather than later is often helpful.
  • Please seek support at the Counseling and Mental Health Center if you or anyone you know experiences academic stress, difficult life events, or feelings like anxiety or depression.

COVID-19 Update

  • We're offering this course in a format to which you are unaccustomed. If you are looking for ideas and strategies to help you feel more comfortable participating in our class, please explore these available resources.

Independent Inquiry Flag

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

Personal Pronoun Use (She / He / They / Ze / Etc)

  • Professional courtesy and sensitivity are essential concerning individuals and topics dealing with differences of race, culture, religion, politics, sexual orientation, gender, gender variance, and nationalities. Class rosters are provided to the instructor with the student's legal name unless they have added a "preferred name" with the Gender and Sexuality Center. I will gladly honor your request to address you by a name different from what appears on the official roster and by the gender pronouns you use (she/he/they/ze, etc.). Please advise me of any changes early in the semester to make appropriate updates to my records. And please add your pronouns to Canvas and Zoom.

Prerequisites

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

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.

Sanger Learning Center

  • Did you know that more than 1/3 of UT undergraduate students use the Sanger Learning Center each year to improve their academic performance? All students are welcome to take advantage of their classes and workshops, private learning specialist appointments, peer academic coaching, and tutoring for more than 70 courses in 15 different subject areas. For more information, please visit or call 512-471-3614 (JES A332).

Services for Students with Disabilities

  • This class respects and welcomes students of all backgrounds, identities, and abilities. If circumstances make our learning environment and activities difficult, if you have medical information you need to share with me or need specific arrangements to evacuate the building, please let me know. I am committed to creating an effective learning environment for all students, but I can only do so if you discuss your needs with me as early as possible. I promise to maintain the confidentiality of these discussions. Any student with a documented disability who requires academic accommodations should contact Services for Students with Disabilities at 512-471-6259 (voice) or 512-410-6644 (Video Phone) as soon as possible to request an official letter outlining authorized accommodations. For more information, visit Services for Students with Disabilities.

Title IX Reporting

  • Title IX is a federal law that protects against sex and gender-based discrimination, sexual harassment, sexual assault, sexual misconduct, dating/domestic violence, and stalking at federally funded educational institutions. UT Austin is committed to fostering a learning and working environment free from discrimination in all its forms.
  • When sexual misconduct occurs in our community, the university can:
    • Intervene to prevent harmful behavior from continuing or escalating.
    • Provide support and remedies to students and employees who have experienced harm or have become involved in a Title IX investigation.
    • Investigate and discipline violations of the university's relevant policies.
  • Texas Senate Bill 212 requires all employees of Texas universities, including faculty, to report any information to the Title IX office regarding sexual harassment, sexual assault, dating violence, and stalking that you disclose to them. Texas law requires that all employees who witness or receive any information of this type (including, but not limited to, writing assignments, class discussions, or one-on-one conversations) must report it. I am a responsible employee and must report any Title IX-related incidents that you disclose in writing, discussion, or one-on-one. Before talking with me or with any faculty or staff member about a Title IX-related incident, be sure to ask whether they are a responsible employee. If you would like to speak with someone who can provide support or remedies without making an official report to the university, please e-mail advocate@austin.utexas.edu. For more information about reporting options and resources, visit Title IX, contact the Title IX office via e-mail at titleix@austin.utexas.edu, or call 512-471-0419.
  • Although graduate teaching and research assistants are not subject to Texas Senate Bill 212, they are still mandatory reporters under Federal Title IX laws. They are required to report a wide range of behaviors we refer to as sexual misconduct, including the types of sexual misconduct covered under Texas Senate Bill 212. The Title IX office has developed supportive ways to respond to survivors and has compiled campus resources to support survivors.

Zoom

  • We reserve the class recordings for students only, and FERPA protects them. You are not allowed to share the class recordings outside of class in any form. Violation of this restriction by a student may lead to Student Misconduct proceedings.

Copyright © Glenn P. Downing, 1995-2021