CS 1110/1111 - Spring 2016 - Syllabus

Basic Info

2016 Spring Semester

1110 - Mondays, Wednesdays, and Fridays, 12:00-12:50 pm w/ Prof. Smith - Wilson 402
1110 - Mondays, Wednesdays, and Fridays, 2:00-2:50 pm w/ Prof. Sherriff - Chem 402
1111 - Mondays and Wednesdays, 2:00-3:15 pm w/ Prof. Dill - Olsson 009

Section 100 - Thursdays, 3:30-4:45pm - Rice 120 - TAs: Joe Scott, Stephen Read, and Patrick Myers
Section 101 - Thursdays, 9:30-10:45pm - OLS 001 - TAs: Jackie Tran, Summer Thompson, and Annie Springsteen
Section 102 - Thursdays, 11:00am-12:15pm - OLS 001 - TAs: Kamille Foster, Claire Veasey, and Rupali Vohra
Section 103 - Thursdays, 12:30-12:45pm - OLS 001 - TAs: Scott Mallory, Sebastian Lerner, and Maria Schweitzer
Section 104 - Thursdays, 2:00-3:15pm - OLS 001 - TAs: Madelyn Luansing, Caroline McNichols, and Marco Gomez-Wong
Section 105 - Thursdays, 3:30-4:45pm - OLS 001 - TAs: Leon Zhan, Elisabeth Von Spakovsky, and Abdullah Aly
Section 106 - Thursdays, 5:00-6:15pm - OLS 001 - TAs: Isaac Tessler, Jack Nugent, and Graham Turner
Section 107 - Thursdays, 6:30-7:45pm - OLS 001 - TAs: Trad Groover, Matt Aldridge, and Richard Shaw
Section 108 - Thursdays, 8:00-9:15pm - OLS 001 - TAs: Marina Sanusi, Will Grayeski, and Alyssa Porto
Section 109 - Thursdays, 11:00-12:15pm - Rice 120 - TAs: Kathleen Ross, Anthony Quach, and Ajay Patel
Section 110 - Thursdays, 2:00-3:15pm - Rice 120 - TAs: John Mourad, Jake Weber, and Melony Bennis
Section 112 - Thursdays, 9:30-10:45pm - Rice 120 - TAs: Eric Siegel, Madeline Watkins, and Rachel Weaver

Office Hours:
All office hour times are posted on the course calendar at the bottom of the Schedule page on the course website. TA office hours are held in the Thornton Stacks lab (large lab in the middle of the top floor of the A-wing of Thornton Hall - look for the sign). Professor office hours are held in their respective offices.

Office Hour Queue:
If you are attending TA office hours, please sign in on the Office Hour queue web site upon arrival. Faculty member office hours do not use the Office Hour queue.

Staff Contact Information

Instructor: Prof. Mark Sherriff
Office: Rice 401
Office Hours: See Calendar on Schedule page on course website
Phone: (434) 982-2688
Email: sherriff@virginia.edu
Twitter: @MarkSherriff

Instructor: Prof. Mary Smith
Office: Rice 209
Office Hours: See Calendar on Schedule page on course website
Phone: (434) 243-3845
Email: mls4aa@virginia.edu

Instructor: Prof. Craig Dill
Office: Variable - See Calendar on Schedule page on course website
Office Hours: See Calendar on Schedule page on course website
Email: cd9au@virginia.edu

Graduate TAs: Jingjie Zhang, Ge Song, Paul Gancitano, and Zeya Chen

Message boards: Piazza
Login 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. This includes regrade requests for homework assignments.

Primary Text

Starting Out with Python (3rd Edition)
(a.k.a. “the banana slice book”)
Tony Gaddis
ISBN-13: 9780133582734

The text book is not required. We will be following the basic outline and ordering of this book; for students who would like a reference, this is an excellent resource. However, no assignments will be given from this book and it is possible to be successful without the text if you come to class and take good notes.

Note on the 2nd Edition: You should be okay with the 2nd edition, but the chapters and page numbers will be different. It will be up to you to figure out all of the changes.

Automating the Boring Stuff with Python
Al Sweigart
Available Online for free: https://automatetheboringstuff.com/

Course Description

A first course in programming, software development, and computer science. Introduces computing fundamentals and an appreciation for computational thinking. No previous programming experience required. Note: CS 1110, 1111, 1112, 1113, and 1120 provide different approaches to teaching the same core material; students may only receive credit for one of these courses and all count the same toward degree requirements.

Course Goals:
In this course, we have two main goals - to teach you the skill of programming and the art of computer science. Engineering in all fields is progressing at a rapid rate and having the ability to write and understand simple programs has become increasingly more important. While you may not be using Python as your language of choice in your field (although you might!), the concepts and principles you pick up in this class will give you the ability to take an algorithm or problem in your chosen field and write a program that will help you do your job quicker, easier, and more reliably.

But the question now is how do you find those algorithms/problems in your field that would be a good candidate for a new program? Or what if you have to derive the algorithm yourself from the problem? Part of the art of computer science is in recognizing what problems are computable and using computational thinking to derive the best way to solve the problem.

It’s important to remember that programming and computer science in general isn’t an area that only a select few people need - computing is everywhere and in everything. The world needs engineers in aerospace, mechanical, chemical, systems, biomedical, civil, environmental, materials, and electrical that recognize how computing and computational thinking applies to their field to create the next generation of solutions in their respective fields.

Course Topics:

  • Why Computer Science?
  • The Parts of a Program
  • Data Types
  • Lists and Dictionaries
  • Basic and File I/O
  • Decision Structures (ifs and loops)
  • Writing and Using Functions
  • Communication on the Internet
  • String Manipulation
  • Image Manipulation

Course Requirements

You should meet the following requirements to take this class:

  • Can attend class regularly.
  • Can attend lab regularly.
  • For 1110, no previous programming experience is expected.
  • For 1111, some previous programming experience is required. (NOTE: We may have a pretest to verify this.)


Program of the Day - 32% - There will be 16 individual programming assignments, each worth 2% of your overall grade.
Game Project - 10% - A partner project in which you will build a video game.
Test 1 - 15% - Covering the first third of the course.
Test 2 - 15% - Covering the second third of the course.
Final Exam - 15% - Covering mainly the remainder of the course, with some material from the first two-thirds.
CS 1110 Lab Projects - 13% - Composed of lab attendance and successfully completing various lab programming assignments.
CS 1111 Activities - 13% - Instead of lab, CS 1111 students will earn these points through one extra project, some in-class graded activities, and in-class participation.
Professionalism Penalty - up to -100% - Excessive missed classes, rude behavior toward instructor or classmates, unauthorized homework assistance, etc can be held against a student when final grades are calculated.

Your final grade will be calculated as follows:

Letter Max Min
A+ 100 98.000
A 97.999 93.000
A- 92.999 90.000
B+ 89.999 87.000
B 86.999 83.000
B- 82.999 80.000
C+ 79.999 77.000
C 76.999 73.000
C- 72.999 70.000
D+ 69.999 67.000
D 66.999 63.000
D- 62.999 60.000
F 59.999 0

Rounding: By default, grades will not be rounded in this course.
Pass/Fail/Audit: A course average of 65.00 or higher with at least one passing test grade is required for successful completion.

Class Management


  • Faculty Office Hours - We in general have an “open door” policy, in that if our door is open, by all means stop on in and say “hi” or ask a question. If our doors are closed, then we’re heads down on some task, on the phone, in a meeting, etc. It’s always a good idea to email or call before coming to make sure we’re here if it’s not office hours.
  • If you email, please put 1110/1111 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.


There will be a partner project in this course. Details of the groups are:

  • Normal group size is two. Group sizes of three might arise. Expectations will be adjusted to reflect available person power.
  • You will remain in the same group for the entire assignment unless you are asked to change.
  • In general, all group members will receive the same grade for graded assignments. However, group members will evaluate their peers and any student who appears to not be contributing may be penalized.

You are expected to work as a member of your group in this course and cooperate with your colleagues. Cooperation means attending group meetings, completing your assignments properly and on time, letting your group know if you will be out of town, responding to e-mail from your group, and so on. If there is a lack of cooperation by any group member, it must be brought to the attention of the instructor as soon as it happens. If the lack of cooperation is serious, the offending group member’s semester grade will be lowered.


  • Attendance in lecture is vital to learning the material and making a good grade in this class.
  • We make no guarantees as to whether we will or will not take attendance or give a quiz on any given day.
  • Any pop assignment we give cannot be made up.
  • Attendance in lab, however, is mandatory and it will be checked.

Homework Assignments

  • Homework assignments will not be handed out in class. Everything will be available online.
  • Every file should begin with your name and ID in a comment.
  • You should cite any ideas you discuss with other students or outside resources. Using any code written by another student, tutor, or website is considered a violation of the honor code.
  • See the HW page and the automated grading system page for more information.
  • Late policy: Homework (specifically Programs-of-the-Day or POTDs) can be submitted up to 2 days late, with a 10% penalty for each day late. POTDs are not accepted after 2 days past the deadline.


  • There will be a total of three formal exams during the course of the semester, counting the final exam.
  • The midterm exams will be given in class. The final exam will be given during the university-set time.
  • Any exam that is missed due to any absence that is not a University Excused Absence will result in a zero (0) for that grade.
  • Any exam that is missed due to a University Excused Absence or due to circumstances that are approved by me beforehand must be made up within a week of the missed test.

Grading Concerns and Appeals

Exam regrades are submitted via the TPEGS tab in Collab (which will also be where you will find out how you did on the exams).

POTD and Lab regrades are submitted on a private post on Piazza, tagged both regrade_request and the lab section in which you are enrolled (e.g. lab107-930am-ols).

Both forms of regrade 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?
    1. Your answer is the same as what is on the key, but the grader didn’t realize it.
    2. 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?
    1. “Most of what I wrote is correct, so I think I deserve more partial credit.”
    2. “I wrote so much, and the grader didn’t notice that the correct answer is buried somewhere within this long paragraph.”
    3. “I’m just 1 point away from an A, so I thought it was worth scrounging around to find an extra point somewhere.”

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.


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:

  • 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 code that he or she did not author (i.e. copied from another student or from the Internet), or if another student submits code that matches your that student, then the student’s overall course grade will be dropped significantly.


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

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 in the Engineering School and in the future.

Students are expected to be familiar with the university honor code, including the section on academic fraud (http://www.virginia.edu/honor/what-is-academic-fraud-2/). 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.) Send, 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.

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 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 Head TA as soon as you know these may affect you in class.

Frequently Asked Questions

Q: How do I get off the waitlist?
Here’s the deal with the wait list for 1110:

In order to come off the wait list, there has to be an open seat in BOTH the lecture and lab you are signed up for. If one or the other is not true, then SIS moves on to the next student who has the right combination.

Our main cap is the lab. The lab sessions in OLS 001 and Rice 120 CANNOT go over 46 due to fire marshall limits. A couple seats in each lab are held back for a week or so to accommodate very special cases. If you feel you fall into this category, please fill out the form here:

Google Form for Special Cases

SEAS Students:

  • Fill out the form above. We have a commitment to get all SEAS students into a CS1 course in the Spring semester.

CLAS (and other schools) Students:

  • If you are a first year, we’re sorry, but you probably won’t get the course this semester.
  • If you are thinking about the BA major in CS, you need to take 1110 by your third semester. You still have plenty of time. If this is your third semester or later, fill out the form above.
  • If you are in a major that requires CS 1110 (Math, Cog Sci - note NOT Commerce!) and are either a third or fourth year, use the form above.

If you have previous programming experience:

Please consider taking CS 1111! It is meant for people with experience! If you have questions about this version of the course, please talk to one of the instructors.

Consider the other CS1 courses:

We are offering three other CS1 courses this semester: CS 1112 with Profs. Cohoon and Tychonievich (for students with no programming experience), CS 1113 with Prof. Horton (for SEAS students that probably won’t major in CS), and CS 1120 with Prof. Evans (for CLAS students). All of these are good options to consider and all count the same for prerequisites and major requirements!

We wish we could take everyone that wanted CS 1110 or CS 1111, but it’s simply not feasible with the room sizes and resources we have. Please do try again next semester if you can’t get in this time.

Let us know if you have any questions.

Q: Can I use another edition of the textbook?
A: Since the book is optional, it’s totally up to you. The book is there to provide a physical reference if you would like to have one.

Q: I have (insert awesome club/group here) during my lab time. Can I permanently swap labs?
A: You can, assuming you find someone to swap with. You can post on Piazza if you are interested in doing this. If BOTH people agree to the swap, email Prof. Sherriff and he’ll take care of it. DOUBLE CHECK that you both can actually take the other lab before agreeing! Check Piazza for more information.

Q: I have (insert awesome club/group or some special test/class session here) just during one lab session. Can I go to another lab this week?
A: Due to fire marshall limits, you cannot attend another lab session, even for just one week. We’re also doing group work, so you need to be there for your team. If this is a class/test session, your other professor should provide you with an alternate time since you have a university class at the same time. Missing one week in general will not affect your grade.

Q: I’m in the X lecture, can I go to the Y lecture instead?
A: 1111 students can attend an 1110 section on occasion if they like. 1110 students should not attend 1111 lectures due to the size of the classroom. 1110 students can attend the other 1110 section on occasion as well.

Q: Can I take my test in a different lecture section?
A: Absolutely not.

Q: I have another final exam at the same time as our final exam. What do I do?
A: When we get closer to the end of the semester, we’ll have a form you’ll fill out to get a separate time. We will accommodate most all cases here with no issue.

Q: I have travel and will miss the final exam. What do I do?
A: Technically, we don’t have to provide any accommodations for travel. International flight reservations and things like that we will try to accommodate, but typical end of semester travel will not be accepted.