CS112: Introduction to Computer Programming (Fall 2020)
All Sections
1 Course Basics
Instructors
Professor
|
Email
|
Office
|
Section
|
Socrates Dimitriadis |
sdimitr |
ENGR 4508 |
001 |
Shahnaz Kamberi |
kamberis |
ENGR 2706 |
002 |
Michael Neary |
mpneary |
ENGR 4417 |
003/005 |
Course Outcomes
- An ability to use procedural programming language concepts
including expressions, decision statements, simple data types,
Boolean logic, input/output, loop constructs, and procedures.
- An ability to combine programming techniques to solve problems
of varying degrees of difficulty.
- An ability to refine computer programs through testing and
debugging to ensure proper operation.
- An ability to read, understand, and evaluate a program specification in order to independently implement the desired behavior.
- An ability to understand issues and ethics related to obtaining and using code from unknown, unreliable, or unethical sources, as a precursor to best professional practices.
Mason Core IT Learning Outcomes
- Students will understand the principles of information storage, exchange, security, and privacy and be aware of related ethical issues.
- Students will become critical consumers of digital information; they will be capable of selecting and evaluating appropriate, relevant, and trustworthy sources of information.
- Students can use appropriate information and computing technologies to organize and analyze information and use it to guide decision-making.
- Students will be able to choose and apply appropriate algorithmic methods to solve a problem.
Prerequisite
C or better in MATH 104, 105, or 113 (or sufficient score on the
math placement test).
1.1 Textbook
Required - zyBooks online textbook
- Sign in or create an account at learn.zybooks.com
- Enter zyBook code: GMUCS112Fall2020
- Subscribe using any credit card. Discounted price for GMU students is $52.20 (instead of $58). Be aware that the price at GMU Bookstore is higher.
- Students that retake the course contact support@zybooks.com to have the book added to your library for free
- Students may begin subscribing to the textbook on
Aug 10, 2020 and the cutoff to subscribe is Nov 23, 2020. Subscriptions
will last until Dec 19, 2020.
Quite optional - The Practice of Computing Using Python,
second edition. William Punch and Richard Enbody. This is for students
who want extra reading resources. You might be able to view a copy
for free at Fenwick Library.
1.2 In-class Participation
We will use online tools (e.g. Blackboard, Piazza) to interactively
answer questions in class and get credit for the day.
- Course schedule, announcements, lecture slides, assignments,
discussion, GTA/UTA contacts and office hours, will be on Piazza
- All correspondence will go through Piazza. You can send
private messages to the instructors (visible to all professors,
GTAs, and UTAs) as well as post public questions visible to all
students, collaborate on responses, and tag everything by topic.
- Unless you have a confidential matter to discuss directly with
an individual professor/TA, please do not email us directly --
use a private piazza post Project help
questions sent via email are of extremely low priority, as
they were sent to the wrong place and will most likely be
responded to with "please post on Piazza".
- The discussion board on Piazza is required reading for all
programming assignments. You MUST read the discussion board daily for
clarifications and potential updates.
- All programming assignments will be submitted (per
published deadlines) via Blackboard.
- All grades will be posted to Blackboard.
2 Grading
Category |
Sub-Category |
Percent |
Notes |
In-Class |
Participation |
5% |
Make sure to attend the synchronous online meetings every week |
In-Lab |
Assignments (13 Total) |
10% |
drop 2 lowest, average others evenly |
Homework |
e-book reading (12 Total) |
5% |
drop 2 lowest-completion assignments (not chapters)
|
Programming Assignments (13 Total) |
40% |
drop one lowest |
Tests |
Midterms (2 Total) |
20% |
midterm replacement (see section on 2.4 on Exams) |
Final Exam |
20% |
must pass final to pass class (see section on 2.4 on Exams) |
Assessment
- A+ (>= 98.0%) A (>= 92.0%) A– (>= 90.0%)
- B+ (>= 88.0%) B (>= 82.0%) B– (>= 80.0%)
- C+ (>= 78.0%) C (>= 72.0%) C– (>= 70.0%)
- D (>= 60.0%)
- F (< 60.0%)
- There will be no make-up or extra-credit assignments at the
end of the semester; your grade should be a measure of your
semester-long progress.
2.1 Individual Programming Assignments
Programming assignments are a significant portion of your grade.
You should not expect to be able to finish them in one sitting. Each
one will take multiple sessions of coding, with questions asked
along the way. This is the practice you need to learn, master, and
internalize various concepts of the course. Don't be surprised if
you're spending 5-20 hours on each one. Each assignment will have a different
number of points based on the level of difficulty.
-
Blackboard Submission
- All assignments are to be submitted to Blackboard. You can
submit your work an unlimited number of times to BlackBoard,
and by default only the last version will be graded.
- Turning in the wrong files will likely result in a zero. You
can and should download your submitted attempts to verify that
you turned in a working copy.
- Blackboard being unavailable is not an excuse for turning in
a late assignment; in the rare situation that the website is
somehow unavailable or giving the student an error, the
student MUST email their submission to their GTA before the
deadline, otherwise it will be considered late.
- Catastrophic computer failure will not be cause for an
extension. Use a backup service such as DropBox (or any cloud
service), emailing yourself, storing to a USB drive, whatever
it takes. Every semester multiple students' computers die, are
stolen, or otherwise 'lose' their files. Don't be the student who
forgot to (frequently) back up your work!
-
Deadlines and Emergency-Days
- Each assignment has a posted deadline.
- The latest you can turn in work is 24 hours after the
posted deadline, no exceptions.
- Each student gets four Emergency-Days, which
are automatically used by late submissions.
- If you don't have any emergency-days left and submit late, your
maximum score lowers by 20% (not quite the same as a 20%
penalty). So, in this case: recorded_grade = min(raw_score, 80)
- Either you use emergency-days or pay the late-penalty, you still must turn in work
within 24 hours of the original deadline! This means you can't use more than one emergency-days or pay multiple late penalties on a single assignment.
- Turning in 1 minute late and turning in 23 hours and 59 minutes
late are treated the same (and therefore there are no
"half emergency-days" and no "partial late penalties").
- Unused emergency-days will be worth a small bounty at the
semester's end (0.25% of the semester grade). This is a reward (1% if you don't spend any of them)
for working and planning ahead during the semester.
-
Broken Code == Bad Scores
- After the first two programming assignments, any code turned in that does
not run (immediately crashes due to errors), specifically on
Python 3.7, will receive at most 50%. No exceptions. At this
point, if the grader is able to quickly fix your code, you
might get some points back. If the grader cannot immediately
spot and fix the issue, you'll be fortunate to get any points
at all.
- Turning in code that runs is a big deal!
-
Honor Code: Special Notes for Programming Assignments
- Programming assignments are considered individual efforts,
therefore no sharing of code and/or discussion of problem
solutions are allowed with anyone except the TAs or the
professor. Student submissions will be manually and automatically
assessed for cheating. You may not
look at or otherwise view any other individual's code,
pseudocode, or algorithms.
- You may not use any Internet resources to create code or
algorithms, besides the textbooks, the slides, and Piazza,
unless otherwise specified. However, you are free to look up
the syntax errors your encounter online, to gain an
understanding of what the syntax error means. The assignments
we're doing this semester can be directly solved using
techniques discussed in class, and no outside material is
needed unless otherwise noted.
- It is your responsibility to lock your computers with
a password, to not post your code to websites like Pastebin
that are publicly accessible, to guard your USB drives and
computers, to not upload your files to someone else's
computer, etc. You will be liable for any access gained to
your code.
- See Honor code section below for
more details.
2.2 Labs
- All lab assignment grades will be averaged together. Lab
assignments will be weekly quizzes or lab tasks
- Lab tasks require attendance at your designated lab time to get the credit.
- Any missed lab assignment is simply missed, regardless of the
reason why (travel, illness, work, traffic, receiving a major
award, getting married, saving the universe, etc.). Two
lowest lab grades will be dropped to cover the very rare cases
of understandable missed labs.
- If you choose to miss some early on, and later on have to miss
for some understandable reason, that is too bad. Try to save the
drops so you can actually throw out a bad grade, and not just
hide a lazy zero. Pretending you don't have them is your best
approach.
2.3 e-book Readings
- Zyante readings are graded based on the completion percentage
of activities before the designated deadline of each
chapter.
- See the schedule page on Piazza for reading assignment due
date.
- Make sure you're logged
in to get credit for reading completion.
- Optional subsections are not considered for Zyante grading.
2.4 Exams
- Exams are closed book/notes unless specified otherwise by
instructor.
- The final exam is cumulative. If you perform better on the
final exam than your midterm exams, we will replace the midterm grade(s)
with the final grade.
- If you know in advance that you are unable to take an exam by the deadline posted for
a valid and unavoidable reason (such as a scheduled surgery,
etc.), you must notify the professor at least one week before the
scheduled exam date to make arrangements for a make-up.
- If you miss an exam deadline due to a university-accepted excused
absence (such as an illness or car accident the day and time of
the exam), you must notify your professor within 24 hours of
your absence to make arrangements for a makeup.
Failure to follow either of these policies will result in a
zero.
- Per departmental policy, you must pass a significant exam
threshold to receive a passing grade in this class, regardless
of your performance on other assignments. Failing the final exam
(<60.0%), will result in a failing grade (F) for the entire
course unless you have achieved an average exam score >=65%.
This average score is calculated as a weighted average of
your exam scores (((10*Labs) + (20*Midterms) + (20*Final))/50).
Note that midterm grades will not be "replaced" with the final
grade for this calculation. In short, in 99/100 cases,
you must pass the final exam to pass the course.
2.5 Contested Grades
If you feel points have been incorrectly deducted, contact the
grader. For all homework assignments, and lab work, that is your GTA.
For exams, that is your professor. Contesting of
grades on any/all submissions must be requested within one week
of receiving the grade (on BlackBoard). No grade changes will
be considered subsequent to that deadline.
3 Office Hours and Discussion Board
There is substantial support available to you outside of lecture time
in the form of office hours and and the online discussion board (Piazza).
If you are having difficulty on a programming assignment or lab, we encourage you to
reach out as early as possible. That said, to ensure fairness
and facilitate learning, we have some basic rules for seaking help
outlined below.
Please note that the is a discussion forum for you, the students,
to discuss the course and the course material. There will be UTAs
assigned to check on this forum regularly and try to moderate the
discussion, but this is NOT a replacement for office hours, lecture
with your professor, or labs.
3.1 Rules for Office Hours
- For students seeking help with programming assignments during
office hours, students must identify the line number, through
debug print statements, where they believe an error to be before
seeing the TA or instructor. This implies that you must have at
least one test case that fails, to bring to office hours before
the TAs or instructor can help you.
- For more general programming assignment questions, students
must bring their own pseudocode to office hours before the TA or
professor can help you.
- Under no circumstances will the professor or GTA reveal more
than three lines of code at a time during office hours. Students
must make significant, individual effort on all programming assignments before
coming to see a GTA/professor. Waiting until the last minute, in
the expectations that the entire programming assignment will be explained in
one office hours session, is not feasible.
- Office hours are often crowded - do not rely on them for last
minute help, as we cannot guarantee that we will be able to
spend significant time with every student.
- If you have any questions about what you are/aren't permitted
to do on a programming assignment or lab, and you and the TA cannot find a the answer
written somewhere, you should ask your professor. "So-and-so said"
will not be an accepted as a reason for grade re-evaluations
(unless "so-and-so" is your professor).
3.1 Rules for the Discussion Board
- Students are encouraged to use the discussion board, Piazza,
to ask and answer questions about assignments, labs, course material,
etc.
- No sharing answers or code solutions to assignments on the
discussion board. See Honor code
section below for more details.
- Students can post questions and code privately, although the
instructor reserves the right to make any post public, so that
other students can see the responses.
- For students wishing to post their code privately to Piazza,
the same rules apply as when coming to office hours; if you have
code written, you must produce at least one failing test case
where you have identified what line number is giving you
problems.
- UTAs will be assigned to moderate the student discussion, help review
student answers, answer private questions, and address questions which
have not received a student answer. Therefore, responses to questions can
be expected within 24 hours, though often times much sooner.
- Statements made on the discussion boards, even by TAs and
especially by other students, should NOT be considered the
definitive word on the subject unless it is verified by your
professor (in the assignment description, in class, posted on
Piazza, etc.). The UTAs can flag professors if/when clarifications
are needed.
- If you have any questions about what you are/aren't permitted
to do on a programming assignment or exam, and you/others cannot find a the answer
written somewhere, you should ask your professor. "So-and-so said"
will not be an accepted as a reason for grade re-evaluations
(unless "so-and-so" is your professor).
4 Honor Code
- The honor code at George Mason is an important part of our
academic culture. A degree from this institution should be a
direct measure of your own progress and abilities, and as such
at all times we must ensure that all work that should be your
own is your own.
- All students are expected to abide by the GMU Honor
Code. This policy is rigorously enforced.
- The computer science department has an CS Honor Code
Policies to understand better what constitutes cheating in
the CS setting. It clarifies some scenarios that are unique
to our sorts of assignments. Note that the CS department doesn't
have any "extra" policy for the honor code on top of the
university's, this document merely helps you to understand
how the honor code applies to programming and CS but it doesn't
actually restrict it at all.
- We take the honor code quite seriously. Any attempts at
copying or sharing code, algorithms, or other violations of the
honor code simply will not be tolerated. Cheating will be
prosecuted and result in a notification of the Honor Committee
as outlined in the GMU Honor Code. Sharing,
collaboration, or looking at any code or algorithm related to
programming assignments that is not your own is considered
cheating. This includes using code found on the
internet.
- As seductively simple as it may seem to just copy and paste
work from a friend, or even to just work on the assignment on your
own machines next to each other, remember that it is just as
easy to compare your work automatically and electronically,
and discover the similarities in text and structure. We use
automated software to flag suspicious cases, and then
review them to find the cases that must be submitted to the
Office of Academic Integrity.
- The penalty for cheating will always be far worse than a
zero grade, to ensure it's not worth taking the chance. Confirmed
cases of cheating almost always translate into course failure.
- Please read
Understanding the Honor Code - Dr. Snyder's thoughts about
the purpose of the honor code in a computer science course.
- There are definitely opportunities to study, work, and learn
together throughout this course - Zybook questions, lab exercises,
and more. Mostly you will need to work independently for any sort
of "test" and for homeowork assignments.
5 University Policies
- There is a limit of two graded attempts for this course. A W does not count as a graded attempt. Please see the University Catalog and consult with your academic advisor if you have any questions.
- Gender Identity and Pronoun Use: If you wish, please share your name and gender pronouns with us and how best to address you in class and via email. You can update your chosen name and pronouns here: change name and pronouns on Mason records.
- Disability Services at George Mason University is committed to providing equitable access to learning opportunities for all students by upholding the laws that ensure equal treatment of people with disabilities. If you are seeking accommodations for this class, please first visit http://ds.gmu.edu/ for detailed information about the Disability Services registration process. Then please discuss your approved accommodations with me. Disability Services is located in Student Union Building I (SUB I), Suite 2500. Email:ods@gmu.edu | Phone: (703) 993-2474.
- George Mason University, an intentionally inclusive community, promotes and maintains an equitable and just work and learning environment. We welcome and value individuals and their differences including race, economic status, gender expression and identity, sex, sexual orientation, ethnicity, national origin, first language, religion, age, and disability. As a member of the George Mason University community, the Computer Science department plays an integral role in building an educational environment that is committed to anti-racism and inclusive excellence. For more information on how to continuously cultivate the practice of anti-racism, see this guide from the National Museum of African American History and Culture on how to be anti-racist: https://nmaahc.si.edu/learn/talking-about-race/topics/being-antiracist.
- Title IX: As a faculty member and designated “Responsible Employee,” I am required to report all disclosures of sexual assault, interpersonal violence, and stalking to Mason’s Title IX Coordinator per university policy 1412. If you wish to speak with someone confidentially, please contact the Student Support and Advocacy Center (703-380-1434) or Counseling and Psychological Services (703-993-2380). You may also seek assistance from Mason’s Title IX Coordinator (703-993-8730; titleix@gmu.edu).
- Student Support Resources on Campus: https://stearnscenter.gmu.edu/knowledge-center/knowing-mason-students/student-support-resources-on-campus/.
- Incomplete Grades: https://chssundergrad.gmu.edu/other-forms/incompletes.
- Campus Closure due to Weather: If the campus closes or class is canceled due to weather or other concern, students should check Blackboard for updates on how to continue learning and information about any changes to events or assignments. (FYI: if campus is closed due to weather on a scheduled lecture day, we will still meet as scheduled, since we are not traveling to attend lecture).
- Safe Return to Campus Statement: All students taking courses with a face-to-face component are required to take Safe Return to Campus Training prior to visiting campus. Training is available in Blackboard (https://mymason.gmu.edu). Students are required to follow the university’s public health and safety precautions and procedures outlined on the university Safe Return to Campus webpage (www2.gmu.edu/safe-return-plan). Similarly, all students in face to face and hybrid courses must also complete the Mason COVID Health Check daily, seven days a week. The COVID Health Check system uses a color code system and students will receive either a Green, Yellow, or Red email response. Only students who receive a “green” notification are permitted to attend courses with a face-to-face component. If you suspect that you are sick or have been directed to self-isolate, please quarantine or get testing. Faculty are allowed to ask you to show them that you have received a Green email and are thereby permitted to be in class.