Syllabus for Roster(s):
- 21F CS 1110-001 (ENGR)
- 21F CS 1110-001 (ENGR) Waitlist
- 21F CS 1110-002 (ENGR)
- 21F CS 1110-002 (ENGR) Waitlist
- 21F CS 1110-003 (ENGR)
- 21F CS 1110-003 (ENGR) Waitlist
- 21F CS 1110-004 (ENGR)
- 21F CS 1110-004 (ENGR) Waitlist
- 21F CS 1110-101 (ENGR)
- 21F CS 1110-101 (ENGR) Waitlist
- 21F CS 1110-102 (ENGR)
- 21F CS 1110-102 (ENGR) Waitlist
- 21F CS 1110-103 (ENGR)
- 21F CS 1110-103 (ENGR) Waitlist
- 21F CS 1110-104 (ENGR)
- 21F CS 1110-104 (ENGR) Waitlist
- 21F CS 1110-105 (ENGR)
- 21F CS 1110-105 (ENGR) Waitlist
- 21F CS 1110-106 (ENGR)
- 21F CS 1110-106 (ENGR) Waitlist
- 21F CS 1110-107 (ENGR)
- 21F CS 1110-107 (ENGR) Waitlist
- 21F CS 1110-108 (ENGR)
- 21F CS 1110-108 (ENGR) Waitlist
- 21F CS 1110-109 (ENGR)
- 21F CS 1110-109 (ENGR) Waitlist
- 21F CS 1111-001 (ENGR)
- 21F CS 1111-001 (ENGR) Waitlist
Syllabus
CS1110 & CS1111 - Intro to Programming - Fall 2021
CS1110 and CS1111 are the same in most ways except for meeting times, labs, and participation grades. The programming assignments, quizzes, exams, and projects will be identical. Both CS1110 and CS1111 will follow this syllabus. If there is any information that only pertains to one of those courses, we will explicitly name CS1110 or CS1111. When referring to both courses, we will often use the name CS111x.
This semester CS111x will be a fully in-person class. This course will use the following technologies:
- Collab: https://collab.its.virginia.edu/portal/site/f6cae140-df3a-4333-bc08-aeb6452ef633/tool/c2385f4a-f476-47c5-9899-e46254bbcb57
- Main course site
- Piazza: https://piazza.com/class/kseo47szv4l4vz
- Student questions
- Discord: https://discord.com/invite/HgtN6Q8bxD
- Online TA Office Hours
- Online Instructor Office Hours
- Zoom: https://virginia.zoom.us/j/91493238169?pwd=Y0poYk1wTkJXT0NJT3pkU2JEcWNYdz09
- If needed
Who to contact for different types of issues:
To discuss: | You should contact us via: |
Questions about course topics | In-class questions, Office Hours, Piazza |
Questions about code not working | Office Hours |
Questions about grading | Regrade requests through Gradescope |
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, l or private Piazza post to your instructor |
Instructor - Panagiotis Apostolellis
- Email: panaga@virginia.edu
- Please include "CS1111" in the subject line of all of your email correspondence
- Office Hour times:
- Tuesdays 2:00p.m. to 3:30 p.m. - online only for the time being
- Wednesdays 1:00p.m. to 2:30 p.m. - online only for the time being
- Online OHs: connect to my OH Discord server and join "CS111x Waiting Room"
- In-Person Office Hours may be offered later in the semester
Instructor - Raymond Pettit
- Email: raymond.pettit@virginia.edu
- Please include "CS1110" in the subject line of all of your email correspondence
- Office Hours Times: TBD
- Online Office Hours via Discord, Office Hours -> Prof OH Waiting Room
- In-person Office Hours may be offered later in the semester
Instructor - Aidan San
- Email: aws9xm@virginia.edu
- Please include "CS1110" in the subject line of all of your email correspondence
- Office Hours Times: TBD
- Online Office Hours via Discord, Office Hours -> Prof OH Waiting Room
- In-person Office Hours may be offered later in the semester
Teaching Assistants
We are fortunate to have many great teaching assistants for this course. TA’s will provide office hours (tutoring), run labs, help with grading, and do other course tasks.
To attend TA Office Hours:
- Place yourself in the queue at this link: [link pending].
- To attend office hours, you must go to the course Discord Server and join the office hours Waiting Room. It is important that you have joined the channel so that a TA has access to you.
- When you reach the front of the queue, a TA will move you from the waiting room channel to a private TA Room. It is important that you have joined the waiting room channel so that a TA can find you.
A TA OH schedule will be posted each week.
Please remember that our TA’s are students too. TAs work a limited number of hours each week. They are not expected to do work for this course outside of their scheduled work hours. Please do not email or direct message them. If you need to communicate with a TA, use TA Office Hours or speak to a TA during scheduled lab time. Please respect their personal time. Contacting our TAs when they are off the clock (including via email, or direct messages) can be penalized under the "professionalism penalty" clause of our grading policy.
Piazza Message Board
Use the course Piazza Board (link above) to post questions about assignments, and for discussion with other students and staff. You can also post private messages on Piazza that will only be seen by staff members. Make sure all private messages are visible to all instructors so that all of the course staff can see the message. When you post a question or an answer, you may post anonymously if you choose. For anonymous posts, the course staff will see the name of the poster, but fellow students will not.
Piazza Etiquette
- Reserve the "student answer" section for answers, not expanding on the question or saying "I have this problem too". Course staff prioritize answering questions that are currently marked as unanswered.
- Use the Followups section for additional comments, clarifications, etc.
- Mark a Followup thread "resolved" if the current state of that followup thread is anything other than an unanswered question.
- See the search feature first; we prefer not to answer the same question repeatedly.
- Never make a post visible to only one instructor or 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 may be penalized as such.
- Any posts which have significant portions of 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.
Primary Text
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.
Related readings will be listed to accompany topics throughout the semester. Feel free to read sections either before or after the topics are introduced. Many sections of this book are outside the scope of this course. While you are welcome to read the entire book, please limit the material used in your assignments to the listed readings and course material.
Optional Text
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.
Assessment
In common with most courses in CS, we use a point-based grading system.
Task | Weight | Comments |
Programming assignments | 35% | There will be 14 programming assignments due throughout the semester, weighted equally. The lowest one will be dropped. |
Labs/Participation | 10% | [CS1110] There will be 10 graded labs throughout the semester. Attendance and working with a partner are required to receive credit. The lowest lab grade will be dropped. [CS1111] There are no labs but instead participation during class will be used for this grade. |
Quizzes | 10% | There will be 12 weekly quizzes. The lowest 2 will be dropped. |
Project | 10% | A final project is assigned near the end of the semester. |
Exams | 35% | Exam1 - 10%, Exam2 - 10%, Exam3 (final exam) - 15% |
Professionalism Penalty | Any amount | Rude behavior toward instructor or classmates, unauthorized homework assistance, failure to cite sources, contacting TAs when they are not on the clock, etc., can be held against a student when final grades are calculated. |
Your final letter grade will be calculated as follows:
You get (letter grade) | if you score | GPA value |
A+ | TBD | 4.0 |
A | ≥ 93.0% | 4.0 |
A− | ≥ 90.0% | 3.7 |
B+ | ≥ 87.0% | 3.3 |
B | ≥ 83.0% | 3.0 |
B− | ≥ 80.0% | 2.7 |
C+ | ≥ 77.0% | 2.3 |
C | ≥ 73.0% | 2.0 |
C− | ≥ 70.0% | 1.7 |
D+ | ≥ 67.0% | 1.3 |
D | ≥ 63.0% | 1.0 |
D− | ≥ 60.0% | 0.7 |
F | < 60.0% | 0.0 |
For students taking this course as a Pass/Fail grade, a course grade of at least 65.0% is required to earn a grade of P.
Rounding: Grades will not be rounded in this course. The instructor may adjust grades slightly to account for potential grading error.
Collaborating on Programming Assignments
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 blindly searching for homework help online) is correlated with negative learning impact (a lot of misinformation is available online).
Authorized Collaboration Groups
For each programming assignment, you may choose to collaborate in a group of size 2 or 3. If you do so, the following rules apply. For a given assignment:
- The members of your group are the only students with whom you may collaborate.
- You are not working together to create a single program; you are collaborating with each other to help each of you learn how to solve the given problem.
- Group members do not share a common source file, nor do they share source code. Each member writes their own program and fully understands what he/she submits.
- Note in the source file who was in your collaboration group. Include this as a comment near the top of your submitted file.
The collaboration group may only discuss general solutions. You may not look at another's student code FOR ANY REASON. Furthermore, no student
present or future may look at your code FOR ANY REASON. This is regardless of whether or not the other students are in your collaboration group.
The only individuals allowed to look at your source code are TAs or Professors in this course.
A few examples of behavior that is not authorized and is subject to penalty:
- Student A is a member of a collaboration group but contributes very little to learning how to solve the problem. Student A asks to see the other students’ programs or asks the other students to troubleshoot theirs.
- Students A, B, and C are working together in a collaboration group. All 3 students contribute to the problem solving discussions, but only Student A ends up writing a working program. After student A writes the working program, they email it to Students B and C. Students B and C each change a few variable names and add a few comments, then turn it in.
Write your own code
You must write your own code. Not just type it (though you need to do that too), create it yourself, as your own original work. Do not google solutions to the assignments. Don't use Chegg, CourseHero, or other services that primarily exist to sell you answers. It is hard to un-see and can spoil your ability to compose your own solutions!
The programming assignments in this course are designed to be completed using material taught in this course. While there are many techniques that could be used to solve these problems, and you will undoubtedly see them if you search online, limit your solutions to the use of material that we have covered. If you have learned material outside the scope of this course and you wish to use it, please check with the instructor before you use it.
Understand what you submit
Working together can help you learn. But make sure you learned! We will ask you to explain aspects of a solution you turn in, and will 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.
Avoid plagiarism
You must cite any and every source you consult, other than those explicitly provided by the course itself (assigned reading sections from the text, office hour help, slides, lecture, etc.). 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 comment/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 """
Programming Assignments
- 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.
- Your lowest PA grade will be dropped.
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. Please look at any feedback you receive after submitting a PA. Student are encouraged to resubmit programs that do not pass all automated tests.
- 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.
Early and Late Submissions
Each programming assignment will have a stated deadline. Our late policy is designed to provide extra assistance for students who require it. Assignments may be submitted late, but will receive penalties. Additionally, for students who submit more than 48 hours before the deadline, there is a small bonus. The following listed point values are out of a total of 100 points for the assignment.:
- At least 48 hours early: +5 point bonus
- On time: no bonus or penalty
- Up to 24 hours late: -10 point penalty
- Between 24 hours and 48 hours late: -25 point penalty
- More than 48 hours late: -75 point penalty (but can be submitted at any time before the last day of class).
Only your last submission will be graded.
There will be a form to allow students to request extensions for unusual circumstances. However, even when you intend to request an extension, students should still submit an assignment as soon as they are able, regardless whether or not they have heard back about their extension requests yet. Extension requests should, whenever be possible, be submitted more than 48 hours before the assignment deadline.
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.
Attendance at Lecture
[CS1110] Attendance at CS1110 lectures is expected but attendance will not be taken. At least one of the CS1110 instructors will attempt to record a lecture session each class day for later viewing.
[CS1111] CS1111 has a graded component based on participation during class.
Labs
[CS1110] To earn credit for a lab, you must attend the live lab session and complete the work given by the lab leaders. Often this will involve working with an assigned partner. Labs will be graded more for making meaningful progress than for full completion. Labs are due by the end of the scheduled lab time. The lowest lab score is dropped so that every student can miss one lab without penalty.
[CS1111] There is no lab for CS1111 students. Your "lab grade" will be based on class participation.
Grading concerns and appeals
Make all regrade requests through the submission system, Gradescope. Requests are subject to the following policies:
- All regrade requests must be made within 7 calendar days of the grade being made available 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 anything else that we see misgraded in the assignment, which may result in either an increase or a decrease in your grade. We are not trying to scare off students whose 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.
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.
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
- Disrespectful language
- Promptness for all deadlines and class meetings
- Quality work
- Using other sources without properly citing them
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.
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.
Students with disabilities or learning needs
It is our goal to create a learning experience that is as accessible as possible. If you anticipate any issues related to the format, materials, or requirements of this course, please meet with me outside of class so we can explore potential options. Students with disabilities may also wish to work with the Student Disability Access Center to discuss a range of options to removing barriers in this course, including official accommodations. Please visit their website for information on this process and to apply for services online: sdac.studenthealth.virginia.edu. If you have already been approved for accommodations through SDAC, please send me your accommodation letter and meet with me so we can develop an implementation plan together.
Discrimination and power-based violence
The University of Virginia is dedicated to providing a safe and equitable learning environment for all students. To that end, it is vital that you know two values that we and the University hold as critically important:
- Power-based personal violence will not be tolerated.
- Everyone has a responsibility to do their part to maintain a safe community on Grounds.
If you or someone you know has been affected by power-based personal violence, more information can be found on the UVA Sexual Violence website that describes reporting options and resources available - www.virginia.edu/sexualviolence. As your instructors, and as people, know that we care about you and your well-being and stand ready to provide support and resources as we can. As faculty members, we are considered responsible employees, which means that we are required by University policy and federal law to report what you tell us to the University's Title IX Coordinator. The Title IX Coordinator's job is to ensure that the reporting student receives the resources and support that they need, while also reviewing the information presented to determine whether further action is necessary to ensure survivor safety and the safety of the University community. If you wish to report something that you have seen, you can do so at the Just Report It portal (http://justreportit.virginia.edu/). The worst possible situation would be for you or your friend to remain silent when there are so many here willing and able to help.
Religious accommodations
It is the University's long-standing policy and practice to reasonably accommodate students so that they do not experience an adverse academic consequence when sincerely held religious beliefs or observances conflict with academic requirements. Students who wish to request academic accommodation for a religious observance should submit their request in writing directly to me as far in advance as possible. Students who have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the University’s Office for Equal Opportunity and Civil Rights (EOCR) at UVAEOCR@virginia.edu or 434-924-3200.
Honor
We trust every student in this course to fully comply with all of the provisions of the University’s Honor Code. By enrolling in this course, you have agreed to abide by and uphold the Honor System of the University of Virginia, as well as the following policies specific to this course.
- All graded assignments will be considered pledged.
- All assignments are individual unless specifically noted otherwise.
- What you turn in must be your own work.
- For any violations, at the discretion of the course staff, you may receive a grade penalty for a single assignment, group of assignments, or for the entire course. Students found guilty of violations may receive an "F" in the course. This punishment is separate from any punishment by the Honor Committee.
Please let me know if you have any questions regarding the course Honor policy. If you believe you may have committed an Honor Offense, you may wish to file a Conscientious Retraction by calling the Honor Offices at (434) 924-7602. For your retraction to be considered valid, it must, among other things, be filed with the Honor Committee before you are aware that the act in question has come under suspicion by anyone. More information can be found at http://honor.virginia.edu. Your Honor representatives can be found at: http://honor.virginia.edu/representatives.
Recording of classroom activities
We will be recording every live lecture in order to accommodate students who can not attend. Because lecture includes fellow students, you and they may be personally identifiable on the recordings. These recordings may only be used for the purpose of individual or group study with other students enrolled in this class during this semester. You may not distribute them in whole or in part through any other platform or to any persons outside of this class, nor may you make your own recordings of this class unless written permission has been obtained from the Instructor and all participants in the class have been informed that recording will occur. If you want additional details on this, please see Provost Policy 008 which is expected to be updated for the Fall 2020 semester. If you notice that we have failed to activate the recording feature, please remind us!
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 prior notification. Any major changes will be posted as announcements to the Collab site. Final authority on any decision in this course rests with the course staff, not with this document.