Summer 2022 — Policies

Late submission

POTDs and homework assignments are fixed and scheduled from the first day of class. This is to help you plan your study and other activities throughout the semester.

There is no pop-up POTD, no pop-up homework assignment in this course. I do not believe in pop-up POTD (or pop-up homework assignment) as they can be stressful and interrupt some students' life plans. I am aware that students have many activities and responsibilities. Having a predefined schedule allows them to focus on their revenue tasks. It is entirely up to students how they manage their time and schedule.

No late POTD submission will be accepted.

For homework assignments, unless arrangements are worked out in advance, 25% of the total possible points per day will be deducted for late assignment submissions. Assignments are not accepted after two days past the deadline.

In software industry, timing is crucial. If a software company (or you) misses a deadline, breach of software contract fine applies and the company's (or your) reputation is damaged. Therefore, to help you prepare for your software-related career, I place a high emphasis on timely completion of POTDs and homework assignments. Furthermore, as mentioned earlier, each assignment helps you develop competency in basic and advanced concepts and is a step toward your course project. For these reasons, late homework assignments are heavily penalized.

No extension

To help you practice managing your time and to make best use of our time together, it is important that you prepare for class and complete all work on time. There is no extension on POTDs or homework assignments in this course unless the student has procured special accommodations for warranted circumstances.

If you send me an email requesting an extension or an exception but have not received a response from me, your extension or exception request is most likely denied. Please do not make any assumptions. Without an official approval from the course instructor, the same penalty applied to other students will be applied to your case(s).

Regrading policy

If you are dissatisfied with a grade on a homework assignment or a POTD, you should consult with the teaching team directly. To ensure the grading is completed in a timely manner and you can benefit from the feedback, you must submit the regrade request within one week of the graded work being returned to you. No regrade request will be accepted after the specified time.

For a final exam, a regrade request period may vary depending on the exam date and the deadline to submit final grades to SIS (please refer to the University exam period). The deadline for a final exam regrade request is typically 24 hours after the grade has been made available. I will formally announce the request period when the final exam grade becomes available.

All regrade requests are subject to the following policies:
  • We will regrade serious errors in judgement; we will not regrade partial credit judgement calls.
  • When regrading, we reserve the right to regrade the entire exam, assignment, or in-class exercise, which may result in either an increase or a decrease in your grade. We are not trying to scare off students whose exams or assignments were graded incorrectly, but we are trying to avoid frivolous requests.
What should be regraded?
  • Your answer is the same as what is on the key, but the grader didn't realize it.
  • Your answer is different, but is also correct (code that compiles and runs correctly, but is different than the key).
What should not be regraded?
  • "Most of what I wrote is correct, so I think I deserve more partial credit."
  • "My answer may be general but it is not wrong, although it does not answer the question, so I think I deserve more partial credit."
  • "I wrote so much, and the grader didn't notice that the correct answer is buried somewhere within this long paragraph."
  • "I'm just 1 point (or 2, 3, 4,... points) away from an A, so I thought it was worth scrounging around to find an extra point somewhere."
We reserve the right to dock professionalism points for frivolous regrade requests.

In-class computers and communication

Computers interfere with your classmate's ability to concentrate on the educational material, my concentration, and your learning. If you have to check your email or text messages, or take a phone call, (during a normal semester) please sit near the door so you can unobtrusively step out; (in an online learning environment) please mute your microphone. If your usage disturbs the class, I need to ask you to close your computers (or I need to mute your microphone) and if that does not work, will need to ask you to leave the classroom. Technology devices and computers may only be used to follow the material in class and will be used extensively during in-class exercises.


The teaching team occasionally sends important announcements to your UVA email account, so it is imperative that you read it regularly.

Students must use the UVA email system for all correspondence with the instructor (using the following email subject format: CS 4640 - insert your subject); if not, I may not notice it.

General assignments or class questions should not be sent through email — in such events, your email will be returned and you will be asked to post your question to the discussion board. In general, the turnaround time for responses to questions will be much quicker on the discussion board. Students should also avoid emailing their code to the instructor unless permission has been obtained (under no circumstances should code be posted publicly to the discussion board).

If you need to contact me via emails, please be aware that I typically answer emails during work hours Monday - Friday, 8:00am - 5:00pm.

Office hours

Office hours are times that instructor and TAs commit to being in their designated locations (virtual office hours via Zoom), door open, first come, first served. No appointment needed. If you cannot make the office hours, then we can try to set up an appointment. Please make a private post on Piazza, tagged all instructors, with your availability. We will try our best to match our times with yours; we want to see you succeed.

We will inform you in class or through announcements if we have to miss office hours.

Resource usage

Under no circumstances should you be copying solution or code written by others found on the Internet or provided by others in other ways. There is no learning taking place in such actions.


I encourage you to collaborate with your classmates. Not only is collaboration how real software is built, but also the best way to learn.

Collaboration that is always allowed:

This course requires a significant amount of programming. These things are encouraged and allowed at all times for all students.
  • Discussing material covered in lecture or handouts
  • Discussing the requirements of an assignments
  • Discussing features of any programming language
  • Discussing how to use the tools or development environments
  • Discussing general techniques of coding and debugging
  • Any discussion between the student and instructor. You are welcome to discuss any and all ideas, design, code, debugging, and details with instructor.

Collaboration that is allowed if documented:

Students engaging in a more detailed discussion of the project specifics can cross into the area of collaboration that is acceptable only if documented. You must include the name of those whom you received specific assistance from and properly credit their contribution (we will refer to them as your "special helpers"). Documentation guidelines will be given on the assignment pages. Some examples:
  • Discussing the design of the project. Design is a crucial part of the development process, and discussion can be valuable. You are required to document any design input you got from others.
  • Getting help from another student in order to debug your code. You are required to credit their assistance.
  • Getting help from another student to solve any technical difficulties. You are required to credit their assistance.
  • Sharing advice about how the software is tested. For example, if the team next to you tells you about some lesson learned ("our program did not handle the case where the input files did not end with a newline") that you then use to improve your program's robustness, you must credit them for providing you with that insight.

Collaboration that is NOT allowed:

You should be handing in code which represents your original, independent work. It should not be based on, influenced by, or copied from anyone else's.
  • Copying code: This is the most blatant violation. You should not be copying anyone else's work. You should also not allow anyone else to copy yours. You should keep your work secure (restrict access on the file system, don't leave printouts lying around, etc.)
  • Using work from past semesters: Using someone's work or solutions from a previous semester is an obvious violation.
  • Looking and copying code from the Internet: Looking for similar projects on the Internet and copying the code is a violation.
  • Studying or debugging someone else's code: Studying someone else' code or debugging along with someone makes it too easy to look over their code and allow (sometimes unintended) code-copying. If you need help debugging, describing to someone a problem and asking for advice on how to track it down is fine. You should do the actual debugging yourself.

Note: You are NOT ALLOWED to include "guest names." Every person listed as a collaborator must contribute. If someone is listed as a collaborator but did not contribute, all will receive a zero grade.


In this course, there will be a focus on learning and working well together. A large portion of that process involves interpersonal skills and conflict management. Students and staff are all expected to treat each other with respect. This includes, but certainly is not limited to:
  • Excessive web browsing during class
  • Disrespectful language
  • Promptness for all deadlines and class meetings
  • Quality work
Students can and will be penalized for unprofessional behavior.

If a student submits solution or code that was not authored by that student (i.e., copied from another student or from the Internet), or if another student submits solution or code that matches a student's solution or code, then the student's (and another student's) overall course grade will be dropped significantly. All will be reported to the University Honor Committee.

Copyright © 2022 Upsorn Praphamontripong

Released under the Creative Commons License CC-BY-NC-SA 4.0 license.

Last updated 2022-05-12 13:30