Unless arrangements are worked out in advance,
25% per day
will be deducted for late 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 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.
If you are dissatisfied with a grade on a homework assignment
or an in-class exercise, you should consult with me 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
(Spring or Fall semester) / three days
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.
This course values social presence and emphasizes
how you perceive each other as real human beings
experiencing the course together as a community.
You are encouraged to have your camera on during class (if you feel comfortable doing so)
and interact with each other.
To ensure that as few background noises as possible are captured in the class recordings,
please have your microphone muted, unless you are speaking.
Whenever you want to speak, you are encouraged to use Zoom's "raise hand" option.
You may use the "thumbs up," "yes," "no," "go faster," or "go slower" option to
endorse or signify something.
If you need to leave (your computer) for a while
(e.g., to use the restroom, go get some water, take a phone call),
please indicate this by using the "away" option.
You may have refreshments or snacks during class
(and we may have a virtual party while learning).
You may support your animals (such as dogs, cats, ducks, dinosaurs),
given that they do not distract you.
I occasionally send 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
(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 are times that I commit to being
in my office,
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 email me with your availability.
I will try my best to match my times with yours;
I want to see you succeed.
I will inform you in class or on the discussion board
if I have to miss office hours.
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,
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.
: 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