1 Basic Info

Course website: http://cs1110.cs.virginia.edu

Lectures and Labs: see main page

2 Contact

Running a course as large as Introduction to Programming requires some coordination. Please help us by directing your contact in the right direction.

To discuss You should contact us via
Q about course topics In-class questions, office hours, or Piazza
Q about code not working Office hours
Q about grading Regrade request on the submission site
Conversations about mentoring, research, student life, etc. Office hours or schedule one-on-one visit
Personal issues impacting coursework (labs, exams, etc…) Your dean, and/or private email to your section’s instructor

2.1 Ray Pettit

Office: Rice 212

Office Hours Online Link: https://virginia.zoom.us/j/139895823 Office Hours by appointment

Email: rp6zr@virginia.edu. Please include “CS1110” in the subject line of all of your email correspondence.

2.2 Teaching Assistants

See the office hours tab for more on how to get their help.

We have many fantastic teaching assistants for this course. Get to know them!

Our TAs are students too. Please show them respect and only contact them via piazza, or in person during their scheduled office hours.

Contacting our TAs when they are off the clock (including via email) can be penalized under the “professionalism” clause of our grading policy. The TAs are not expected to be available other than during labs and their offical OH.

3 Piazza Message board

Piazza @ piazza.com/virginia/summer2020/cs1110su20/home

Log in to Piazza and use the threads for quick questions, assignments, and for discussion with other students and staff.

You can also post private messages here that will only be seen by staff members. Make sure all private messages are visible to all instructors, not just one or two.

3.1 Piazza Etiquette

  • Reserve the “student answer” section for answers, not expanding on the question or saying “I have this problem too”
  • Use the Followups section for additional comments, clarifications, or the like
  • Mark a followup thread “resolved” if the current state of that followup thread is anything other than an unanswered question
  • Never make a post visible to only one instructor/TA; if other students should not see it, make it visible to all instructors.
  • Short bit of code (1-3 lines) can provide useful context to a question or answer, but longer block are inappropriate and will not be answered. Posts containing significant portions of the solution to assignments are unprofessional and will be penalized as such.
  • Any posts which have code should not be posted as public (instead they should be visible by instructors only)
  • If you have to include enough context in your question to give away part of the solution to the problem, make it a private (visible to instructors and you only) post.

4 Text

4.1 Primary Text

Sprock books’s cover

The Coder’s Apprentice by Pieter Spronck; available online for free: http://www.spronck.net/pythonbook/

So far as we know, no print version of this book is available.

4.2 Optional resource

Gaddis books’s cover

Starting Out with Python by Tony Gaddis; available via the UVA bookstore or for purchase online.

We will not refer to this text explicitly, but if you want a printed reference this is a good pick.

5 Course Requirements

You should meet the following requirements to take this class:

  • Can attend class regularly.

6 Assessment

In common with many courses in CS, we use a point-based grading system.

Task Weight Comments
- Programming assignments 40% (2% each) Solo programming assignments will be due almost every week, and will be weighted equally
- Project 10% (worth 5 PAs) A larger partner project will be worth more points than the average assignment
- Code Walkthroughs 30% (12% each midterm, 16% final) Per College policy, “Unexcused absence from a final examination results in an automatic grade of F in the course.”
- Labs 10% (7 labs in total)
- Participation 10% Grade will be based on class (lecture) attendance and participation (responding to polls)
- Professionalism Penalty 0–100% Excessive missed classes, rude behavior toward instructor or classmates, unauthorized homework assistance, contacting TAs when they are not on the clock, etc., can be held against a student when final grades are calculated.

The exact weights of assignments is subject to change as we further refine the assignments we will give.

Your final letter grade will be calculated as follows. Please note that due to the NC/GC/CR grading option for Spring 2020, the C- grading bracket has been removed:

You get (letter grade) if you score GPA value
A+ 4.0
A ≥ 93% 4.0
A− ≥ 90% 3.7
B+ ≥ 87% 3.3
B ≥ 83% 3.0
B− ≥ 80% 2.7
C+ ≥ 77% 2.3
C ≥ 73% 2.0
C- ≥ 70% 2.0
D+ ≥ 67% 1.3
D ≥ 63% 1.0
D− ≥ 60% 0.7
F < 60% 0.0

Rounding: By default, grades will not be rounded in this course.

Pass/Fail/Audit: A course average of 65.0% or higher with at least one passing exam grade is required for successful completion.

6.1 Programming Assignments

Your grade on each programming assignment will be determined by two evaluations:

  • automated tests - The automated tests are intended to evaluate the correctness of a solution, and the grade earned is simply the proportion of our tests that were passed.

  • human assessment - The human assessment is designed to assess the solution in ways that are not suitable for automation, and to provide opportunity for partial credit on incorrect solutions.

For most assignments, each will comprise 50% of your grade.

7 Class Management

7.1 General

  • Faculty Office Hours – The instructor we usually stay after class and lab each day to answer any questions that students have. One-on-one OH with the instructor can be arranged via email.
  • When posting on Piazza, please use the search feature first; we prefer not to answer the same question repeatedly.
  • If you email, please put 1110 somewhere in the subject. It makes it easier on the staff. And please don’t just reply to an email sent over a month ago. That makes it harder to keep up with your email.
  • Please don’t hesitate to contact us if you have any problems, concerns, questions, or issues regarding the course, material, or anything else in the class.

7.2 Academic Honor in Coding

The line between collaborative learning (which is beneficial and encouraged) and cheating (which is counterproductive and discouraged) is often difficult to draw clearly in CS courses. Additionally, some questionable behavior (like doing a web search for a homework assignment and submitting whatever you find) is correlated with negative learning impact (a lot of misinformation is available online).

7.2.1 No plagiarism (nor anything like it)

You must site any and every source you consult, other than those explicitly provided by the course itself. Talked to a friend, saw an interesting video, consulted a website, had a tutor? Tell us!

Citing can be done either as a comment near the code in question, as e.g.

    year = int(input('What year is it? '))
    if (year % 4) == 0:        # I got this line from M.S. Theater (mst3k)
        if (year % 100) == 0:  # ... and used it to figure out this line on my own!

or as a docstring at the beginning of the file, as e.g.

"""Source of help:
  I found the distance formula on http://this.web.site/here 
  My friend Thomas Jefferson (tj1a) showed me how to use ** instead of math.sqrt

7.2.2 Write your own code

You must write your own code. Not just type it (though you need to do that too): compose it yourself, as your own original work. Do not look at other students code. Do not google solutions to the assignments. It is hard to unsee and can spoil your ability to compose your own solutions! Looking at another student’s program is a violation, as is looking onlin at a solution to a homework problem. Make when you have discussions with your others, that you are getting help for general issues (i.e. “How can I delete an item from a list?”, and not, “Can I see your code for this assignment?”. Do not make long snippets code public on the Piazza Message Board.

7.2.3 Understand what you submit

Working together can help you learn. But make sure you learned! We may ask you to explain aspects of a solution you turn in, and may dock points if it appears you simply copied someone else’s ideas (or just guessed a lot of things until one worked) without understanding them.

7.3 Programming Assignments

  • Homework assignments will not be handed out in class. Everything will be available online.
  • Be sure to include your name and computing id in all assignments. This acts as your “honor pledge”, and signifies that all of the work submitted in that file is your own.
  • You should cite any ideas you discuss with other students or outside resources, as well as any code assistance you receive from any source.
  • See the submission system for more information.

7.3.1 Late Submissions

Our late policy is designed to provide extra assistance for students who require it. Assignments may be submitted up to 24 hours after the deadline with penalty. Within this 24 hour window, to provide you with more assistance on where your solution may have gone wrong, you will be able to see any automated test cases which your submission has failed.

To receive full credit on you programming assignment, it must pass all automated tests prior to the submission deadline. After the submission deadline has passed you may still submit for 24 hours, however you may only earn 50% credit on all automated tests passed since the deadline. No penalty for a late submission will be taken on the human assessment portion of your grade.

For example (all cases assume 100% on the human assesment):

  • If you passed zero tests before the deadline, then pass all of the tests after, you would receive at most a 75% on your assignment.
  • If you passed half of the tests before the deadline, then pass all of the tests after, you would receive at most a 87.5% on your assignment.
  • If you passed half of the tests before the deadline, and pass no additional tests after, you would receive at most 75% on your assignment.

Note that the maximum penalty for late submissions is 25%, and that your grade cannot decrease due to additional submissions after the deadline.

7.4 Generality of Solutions

Both assignments and exams will frequently describe general problems to be solved, and also give a few concrete examples. Presenting a solution that works for those specific examples but does not attempt to solve the general problem is a form of the anti-pattern called hard coding and will usually be graded the same as if you had not even attempted the problem.

7.5 Attendance

  • Attendance in lecture is required for your participation grade. Occasionally questions will be asked (via Zoom polls), and not responding signals that you are not participating.

7.6 Labs

  • To earn credit for a lab, you must be in attendance during the lab session and work with your partner to either complete the lab, or at least make meaningful progress towards completion. Your grade will be based primarily on participation, rather than completion.

7.7 Code Walkthroughs

  • There will be a Code Walkthough each Friday (a total of 4).
  • For each Code Walkthrough, you will setup a Zoom meeting with a TA (details will be given).
  • During your Code Walkthrough, your TA will ask you questions about one or more of the PA’s that was recently due.
  • You should be able to explain what your submitted code is doing.
  • You may also be asked questions about how a specific change to your code would affect the overall program.

7.8 Grading concerns and appeals

The submission system is also where you see your grade and any feedback on it, and is also how you can submit a regrade request for an assignment.

Requests are subject to the following policies:

  • All regrade requests must be made within one week of the assignment being returned to the student.
  • 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 or assignment, 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?

  • The grader made a comment that is not true of your answer.
  • 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.”
  • “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 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.

8 Professionalism

In this course, there will be a focus on working well together and learning about the development process. 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:

  • Inappropriate behavior during class (it’s OK to joke around, but keep it PG-rated).
  • Disrespectful language
  • Promptness for all deadlines and class meetings
  • Quality work

Students can and will be penalized for unprofessional behavior.

If a student submits code that was not authored by that student (i.e. copied from another student or from the Internet), or if another student submits code that matches a student’s code, then the student’s overall course grade will be dropped significantly. Egregious violations may be taken to the Honor Committee.

9 Research

Your class work might be used for research purposes. For example, we may use anonymized student assignments to design algorithms or build tools to help programmers; use data collected from course support tools to better understand and seek to improve student engagement and learning; etc. Any student who wishes to opt out can contact the instructor or TA to do so after final grades have been issued. This has no impact on your grade in any manner.

10 Academic Integrity

The School of Engineering and Applied Science relies upon and cherishes its community of trust. We firmly endorse, uphold, and embrace the University’s Honor principle that students will not lie, cheat, or steal, nor shall they tolerate those who do. We recognize that even one honor infraction can destroy an exemplary reputation that has taken years to build. Acting in a manner consistent with the principles of honor will benefit every member of the community both while enrolled here and in the future.

Students are expected to be familiar with the university honor code, including the section on academic fraud (https://honor.virginia.edu/academic-fraud). Each assignment will describe allowed collaborations, and deviations from these will be considered Honor violations. If you have questions on what is allowable, ask! Unless otherwise noted, exams and individual assignments will be considered pledged that you have neither given nor received help. (Among other things, this means that you are not allowed to describe problems on an exam to a student who has not taken it yet. You are not allowed to show exam papers to another student or view another student’s exam papers while working on an exam.) Sending, receiving or otherwise copying electronic files that are part of course assignments are not allowed collaborations (except for those explicitly allowed in assignment instructions).

Assignments or exams where honor infractions or prohibited collaborations occur will receive a zero grade for that entire assignment or exam. Such infractions will also be submitted to the Honor Committee if that is appropriate. Students who have had prohibited collaborations may not be allowed to work with partners on remaining homeworks.

11 SDAC and Other Special Circumstances

If you have been identified as an SDAC student, please let the Center know you are taking this class. If you suspect you should be an SDAC student, please schedule an appointment with them for an evaluation. We happily and discretely provide the recommended accommodations for those students identified by the SDAC. Please contact us at least one week before an exam so we can make accommodations. Website: http://www.virginia.edu/studenthealth/sdac/sdac.html

If you have other special circumstances (athletics, other university-related activities, etc.) please contact your instructor and/or a TA as soon as you know these may affect you in class.

12 This Syllabus

This syllabus is to be considered a reference document that can and will be adjusted through the course of the semester to address changing needs. This syllabus can be changed at any time without notification. It is up to the student to monitor this page for any changes. Final authority on any decision in this course rests with the professor, not with this document.