Spring 2024 — Policies

Late submission

Everything in this course (POTDs, homework assignments, and project) is 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 POTDs (or pop-up homework assignments) 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.

Unless arrangements are worked out in advance, 25% of the total possible points per 24 hours will be deducted for late submissions. POTDs and homework assignments are not accepted after 48 hours past the deadline.

In the software industry, timing is crucial. If a software company (or you) misses a deadline, a 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 the timely completion of POTDs and homework assignments.

You may think that we have many POTDs and homework assignments. That is true and there are reasons why this course is structured this way. As mentioned on the Syllabus, each POTD and homework assignment helps you develop competency in basic and advanced concepts. POTDs and homework assignments are also used to reinforce the concepts in recent classes and help you assess your understanding of recent topics/skills.

For these reasons, late POTDs and homework assignments are heavily penalized.

No extension, no exception

To help you practice managing your time and make the best use of our time together, it is important that you prepare for class and complete all work on time. There is no extension / no exception / no make-up 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 official approval from the course instructor, the same penalty applied to other students will be applied to your case(s).

Accommodations: Religious

If you wish to request academic accommodation for religious observance, please let me know via email as far in advance as possible.

If there exists a religious conflict, please mention it.

Do not say "You are busy" or "You have a busy start to the week." "Being busy / having a busy schedule / having a busy start to the week" is not a sufficient justification for an accommodation / extension.

"Being busy / having a busy schedule / having a busy start to the week" does not imply a religious conflict.

If you need religious accommodations, please say that you need religious accommodations.

Accommodations: Schedule conflict

If there exists a schedule conflict, please provide the necessary information to determine an accommodation.

Do not say "You are busy" or "You have an unavoidable conflict." "Being busy / having a busy schedule / having an unavoidable conflict" is not a sufficient justification for an accommodation / extension.

It is important to note that being busy with other courses (homework assignments, projects, exams, quizzes, tests, ...) is not a sufficient justification for an accommodation / extension. Please consider adjusting or planning your time management.

Accommodations: Things in life and special circumstances

If you believe that circumstances warrant an extension or exception, come talk to the course instructor and we will resolve the situation as best we can.

Make-up exam

If you know in advance that you are unable to make an exam for a valid and unavoidable reason (such as scheduled surgery, etc), you must notify me at least one week before the scheduled exam date to make arrangements for a make-up. Appropriate documentation (as determined by the instructor) is required. For some cases, requisite permissions (approved by the Dean's Office, in particular) may be required for make-up exam requests. If you miss an exam due to a university-accepted excused absence, you must notify me as soon as possible (at least one week before, but no less than within 24 hours of your absence) to make arrangements for make-up, and submit approved documentation. Failure to follow either of these policies will result in a zero grade on the exam.

Regrading policy

If you are dissatisfied with a grade on a homework assignment, a POTD, or a project, please submit a regrade request to Gradescope. 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.

For exams, 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 exam regrade requests may range from 24 hours to one week after the grade has been made available. We will formally announce the request period and how to submit the request when the exam grade becomes available.

All regrade requests are subject to the following policies:

  • We will regrade serious errors in judgment; we will not regrade partial credit judgment calls.
  • When regrading, we reserve the right to regrade the entire exam, assignment, project, and practice-of-the-day, 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 misunderstood the question so I wrote something else. Although it does not answer the question, it is not wrong. So, I think I deserve some partial credits."
  • "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, the instructor's concentration, and your learning. If you have to check your email or text messages or make (or take) a phone call, please sit near the door so you can unobtrusively step out. If your usage disturbs the class, I need to ask you to close your computer, and if that does not work, I will need to ask you to leave the classroom. Technology devices may only be used for class purposes (e.g., following slides or working on class activities).


We occasionally send important announcements to your UVA email account, so it is imperative that you read them regularly.

For any personal issues that can only be handled by an instructor, please email me directly. Please make sure to use the UVA email system for all correspondence with the instructor. Put CS 4750 in the subject line so that your email can be tracked — without "CS 4750" in the subject line, I may not notice it. Please also note that I receive a lot of emails and it is easy to get behind; so please be patient with me in responding. I will try my best to respond as soon as possible. If there is a time-critical nature of your email, please let me know that as well.

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 the code be posted publicly to the discussion board). Please also note, the UVA email system blocks certain kinds of file extensions (e.g., program source code such as Java); and there is no fail delivery notification.

Our TAs are students too. Please only contact TAs via Piazza or during their scheduled office hours, do not contact them via email.

If you need to contact me via email, please note that I typically answer email during work hours Monday − Friday, 8:00am − 5:00pm EST.

Office hours

Office hours are times that an instructor and TAs commit to being in their designated locations (virtual office hours via Zoom), door open, first come, first served. No appointment is needed. If you cannot make the office hours, then we can try to set up an appointment. Please make a private post on Piazza, tagging 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

For POTDs, homework assignments, and the course project, you may consult with any outside source you wish in the completion of your work. This includes, but is not limited to, web tutorials, a different book, classmates, a friend, or a TA. However, if you do consult with any outside source, including Generative AI tools (such as ChatGPT) and other classmates), you must clearly cite/reference every source that you consult and you must answer each question in your own words.

I cannot stress this enough. Any submission that is a straight copy of anyone else's that is turned in with the justification of "we were working together and thus it is okay" will result in a zero grade for all collaborators. I simply request that if you work together, take the time to understand the answer and write it down in your own words.

Some assignments allow you to work in a group, if this is the case you do not need to cite/reference your group members in your resources.

Any misrepresentation of the work of others as your own work is plagiarism and will be considered cheating and will be handled according to the University procedures on academic misconduct.

Under no circumstances should you be copying solutions 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.

See the Collaboration section for additional information.


We 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:

These things are encouraged and allowed at all times for all students.

  • Discussing material covered in lectures 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 TAs, or instructor. You are welcome to discuss any ideas, design, code, debugging, and details with us (instructor and TAs). We are here to support you; we want to see you succeed.

Collaboration that is allowed if documented:

Students engaging in a more detailed discussion of the homework or project specifics can cross into the area of collaboration that is acceptable only if documented. You must include the name of those who are not your group partners but you collaborate with when submitting your homework or project.

  • Discussing the design of the homework or 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 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.
  • Discussing the solution of the homework or sharing advice about how the software is tested. For example, if other students tell you about some lessons learned ("our program did not handle the case where a search query contains an empty string") 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 that represents your original 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's 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:

  • Behave appropriately and professionally.
  • Use respectful language.
  • Never abuse anyone (including the emotional abuse of criticizing, embarrassing, blaming, or manipulating others). Kindness is more important than correctness.
  • Our TAs are students too. Let them be students when they are not on the clocks as TAs.
  • Work and collaborate professionally, as a team.
  • Be honest. I always hope everyone will behave honestly. All work must be your own work. You may use only officially-provided or personally-created materials including:
    • The course textbook
    • Anything (materials and examples) on the course website or linked to from the course website
    • Your personal notes or materials created as a result of class activities or discussions
    • Class recordings
    Sometimes, we all are tempted to do what we ought not; if you do something you regret, the sooner you tell me the sooner (and more leniently) we can correct it.

Students can and will be penalized for unprofessional behavior.

If I believe you have acted dishonestly, I will communicate this fact to you and propose a penalty. If you have the information I lack, please share that with me; I may thereafter change my belief and/or proposed penalty.

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

If course staff detect violations such as cheating, plagiarism, improperly sharing, copying another solution to an assignment (including portions thereof), or other dishonest behavior and honor code infractions, they may impose any penalty up to and including a failing grade (F) in the course. This is independent of and in addition to the operations of the Honor Code.

  • 1st Offense: You will receive zero (0) points on that assessment and your final course grade will be reduced by one full letter grade (e.g., B- goes down to C-)
  • 2nd Offense: Automatic F in the course

Students who have had prohibited collaborations may not be allowed to work with partners on remaining homework assignments.

Incomplete grade

(based on the information obtained from the CS department, the School of Engineering and Applied Science, and the College of Art and Science)

When an IN is an Appropriate Option?
  • You have a solid attendance record.
  • You have completed approximately 75% or more of the work for the class.
  • You are not failing the class.
  • You have consulted with the instructor and you have a viable plan to complete the coursework within the allotted four weeks.
  • One to two incompletes is reasonable; more than that may mean that you should withdraw from the semester.

No GCP reimbursement

To help you practice and have hands-on experience in an industry platform, you are encouraged to use Google Cloud Platform (GCP) to host your database(s) and software application(s), although GCP usage is optional.

CS 4750 is supported by Google by giving us access to their Cloud Platform. GCP coupon is available for you. Please refer to an announcement / email regarding the Google Cloud Platform coupon. Redeem and use your Google coupon. Do *NOT* enter your credit card. If more coupons are needed, please make a private post on Piazza. We will get you more coupons.

Do *NOT* enter your credit card information. We do not have funding to cover the charge for you. We cannot help you pay.

Top Copyright © 2024 Upsorn Praphamontripong
Released under the Creative Commons License CC-BY-NC-SA 4.0 license.
Last updated 2024-01-13 19:26