Syllabus

Scope, Objectives, Prerequisites

This is an introductory programming course in the Python programming language. This course assumes zero prior programming experience.

Course Learning Outcomes

  1. Demonstrate familiarity with key concepts in a procedural programming language such as: variables, control structures, functions, input and output.
  2. Demonstrate the ability to use programming to solve problems appropriate to a beginning class in programming.
  3. Acquire familiarity with how programming can be applied to solve problems.

Required Textbooks

Allen Downey’s Think Python, Second Edition, available for free under CC license from the author. (Please take care to use the second edition, not the first, not the third).

Wes McKinney’s Python for Data Analysis, Third Edition, online version is free from the author, also available at GWU library.

Instructor

Teaching Assistants:

  • Amal Alqahtani
  • Marlee Alvino
  • Petra Chuenarrom
  • Isabella Dayrit
  • Alexander Frolov
  • Tharun Saravanan
  • Lauren Schmidt
  • Tabitha Shaw
  • Lexi Sun
  • Olivia Whittle

Contact info:

  • Our main method of communication is an Ed discussion board.
  • Post questions to Ed:
    • Never publicly post source code for any homework problem to Ed.
    • Ed allows private posts, where you can share homework code and error messages with course staff only.
  • In the event of issues impacting your ability to commit time to the course, email your professor.
  • Refrain from using generative AI tools/large language models to craft your notes to course staff.
  • Raise grading concerns directly with your professor via email or office hours.
    • You should never need to email any TA.

Course Website: This course is principally organized on this website, including the syllabus, lecture materials, exercises, and assignments.

Grading and Submission Server: You will submit work (and receive grades) on our submission server. You must use the submission server to submit your homework.

Schedule & Office Hours

Schedule

Office Hours

Examinations & Assessments

There will be weekly in-person quizzes in lab and two in-person midterm exams. There will be an optional final exam during the exam period. By enrolling in this course, you acknowledge the schedule and agree to be present for these assessments.

Exhaustively, your understanding of the material will be evaluated via:

  • 12 Homework Assignments
  • 12 Quizzes (given in lab)
  • 2 Midterm Examinations
  • Final Examination (optional)

There may be extra credit opportunities in addition to what is listed here.

Grading

Grading in this course reflects that the only way to learn programming is by doing, and recognizes that this process includes many mistakes and errors. If you do the work and learn the material, you will earn a good grade at the end of the semester.

If Unit 1 is a higher grade than Unit 2:

  • Unit 1: 50%
  • Unit 2: 50%

If Unit 2 is a higher grade than Unit 1:

  • Unit 2: 75%
  • Unit 1: 25%

For Each Unit:

A Homework Average and an In-Person Average (quizzes and the unit exam) will be computed separately. Whichever of these averages is lower will be worth 65% of the unit grade; whichever is higher will be worth 35% of the unit grade.

Final Exam:

The final exam is optional and will have a maximum score of 70. The final exam grade will replace any exams and quizzes that it is higher than.

Grading Scale

Grading Scale

The following grading scale will be applied at the end of the semester to calculate letter grades:

Numerical Average Letter Grade
90-100 A
85-89 A-
80-84 B+
75-79 B
70-74 B-
65-69 C+
60-64 C
55-59 C-
45-54 D
0-44 F

Grades are rounded to the nearest integer, e.g., 0.4 rounds to 0 and 0.5 rounds to 1.

Multiple Submissions

This course uses a grading and submission server for homework. After you submit homework, the server will grade the correctness of your code and return a grade, typically within a few minutes.

Each assignment will permit you to resubmit your homework multiple times for full credit– which means you can see how you did, and then make changes and resubmit.

After you are out of full-credit attempts, you may make one more attempt for 50% credit. However: if you bring your code to a TA to review before submitting this attempt, you will get full credit for it.

Conduct

Credit (up to 10% of your final grade) can be lost for actions that disrespect other students and course staff, such as being disruptive in class or lab, lack of polite behavior toward course staff, asking for solutions during office hours, or requesting grading accommodations other than those outlined in this syllabus.

The environment of this class will be respectful of age, race, ethnicity, country of origin, language, religion, spiritual practice, sexual orientation, gender identity or expression, introversion/extroversion personality dimensions, and socioeconomic and mental/physical status. The instructional team is committed to supporting all members of the class in fostering a respectful, charitable, and professional academic environment.

You must also do your part to make this course inclusive.

Late and Missed Work

Late work is not accepted, with the following exceptions:

  1. Each student will have ten “grace days” to use on homework assignments. These grace days intentionally accommodate both time management difficulties and brief illnesses. We recommend saving a few grace days for brief unexpected disruptions in your schedule. No more than two grace days may be used on any one homework assignment.

  2. Extensions will be granted should there arise circumstances beyond your control that substantially impede your ability to complete coursework. Notify your professor as soon as feasible in these cases. Examples of such circumstances include (but are not limited to) long-term illness and loss of housing. To ensure fairness toward all students, I will request documentation of such circumstances.

Drop Policy:

For each Unit:

  • The lowest quiz grade will be replaced by the subsequent quiz (or the exam, for the last quiz of each unit)
  • The lowest homework grade will be replaced by the subsequent homework grade (the last homework of each unit cannot be dropped)

Attendance

I do not take attendance.

However, quizzes and exams are in person, and failure to be present for a quiz or exam will result in failure (grade of 0) of that assessment. Quizzes failed due to absence are eligible for the drop policy; the drop policy exists to accommodate brief illnesses and disruptions in schedule.

For long-term disruptions in schedule such as serious illness or loss of housing, I will make accommodations after being provided with documentation through the Office of Student Support or from your Dean. For illnesses impacting either midterm exam, I will also require such documentation. Missed exams will be made up via a coding interview.

Absence to represent GWU in an official capacity (such as at an athletic event) is always excused, however such excused absence will require confirmation from a faculty sponsor or athletic official, and must be arranged in advance.

Time Commitment

There is one 75-minute class meeting per week and one 75-minute lab per week. Students are expected to spend at least 5 hours per week independently learning outside of class meetings for this course.

Introductory programming comes more easily to some students than to others. It is possible that you will need to commit substantially more- or substantially less- than 5 hours per week. If you find yourself routinely burdened with more than 15 hours per week of work for this course, please contact the course staff to discuss your study habits. Let your professor know of circumstances that may impact your academic commitments if and when such circumstances arise, or before the semester begins, as is appropriate.

Collaboration Policy

You are free to work with others to discuss course concepts and work through practice problems, however you must write your own solutions to homework assignments from scratch, by yourself. You must also acknowledge any related discussions you had with others in comments for each problem submission. The following collaboration is always prohibited for homework assignments:

  • Looking at someone else’s code
  • Showing another student your code
  • Discussing code in line-by-line detail with another person
  • Posting your code to any public place where another student could see it
  • Looking at solutions to these problems or similar problems found online or printed out
  • Copying code from any website

This does not apply to discussions with course staff: if you find that you are stuck on a problem: talk to a TA or your professor in lab or office hours.

We are able to detect when you copy code, even if you make modifications. If discussing course concepts with another student, limit yourself to high-level discussion of homework problem structure; do not discuss the Python code. Even better, work through a similar practice problem together, rather than a homework problem.

If you feel like a discussion with any person (including the professor and TAs) helped you answer a homework problem, include their name(s) in your comments at the start of that problem. If you use a Python reference other than what we provide, cite the reference in your comments at the start of the problem. In the event your collaboration exceeds what is permitted, the penalty will be substantially reduced (or waived) if such a thing is an honest mistake as evidenced by these comments.

This policy is not a game and we expect that you will not attempt to circumvent it.

Grading: Your homework is automatically graded by software, but it is also subject to periodic review by human beings. When you turn in your homework to the submission server, you will get a grade for the correctness of the code immediately: we want you to have quick feedback. That quick feedback is only on the code’s correctness. Human review takes more time.

At any point during the semester, you may be asked to explain the function of homework code you have submitted; if you are unable to do so, you will lose credit for that homework assignment. If I discover at any point during or after the semester that you have violated the collaboration policy, you will be formally referred to the Office of Student Rights and Responsibilities for Academic Dishonesty. If write all of your code yourself, you have nothing to worry about.

Stress: If you feel like you are under pressure to violate this policy due to stress, deadlines, or some other situation, please reach out to your professor. We are committed to making this a course that anyone can pass with honest effort.

Motivation: This is a course where you will learn only by doing, which is why we want you to work through the homework problems on your own. The exams will be very similar to the homework, and you cannot do well in the class without doing well on the exams.

Generative Artificial Intelligence / Large Language Models

Copying any code for homework assignments from an AI assistant or Large Language Model such as (but not limited to) ChatGPT, Copilot, or Claude will be treated the same as copying it from another person or from any other online resource. It is not permitted on any homework assignment, and it is considered cheating.

University Policies

Academic Integrity Code

Academic integrity is an essential part of the educational process, and all members of the GW community take these matters very seriously. As the instructor of record for this course, my role is to provide clear expectations and uphold them in all assessments. Violations of academic integrity occur when students fail to cite research sources properly, engage in unauthorized collaboration, falsify data, and otherwise violate the Code of Academic Integrity. If you have any questions about whether or not particular academic practices or resources are permitted, you should ask me for clarification. If you are reported for an academic integrity violation, you should contact the Office of Conflict Education & Student Accountability (CESA) to learn more about your rights and options in the process. Consequences can range from failure of assignment to expulsion from the university and may include a transcript notation. For more information, please refer to the CESA website, email cesa@gwu.edu, or call 202-994-6757.

Any assignment failed for reasons of Academic Dishonesty will be graded as negative 100% and cannot be dropped.

University Policy on Observance of Religious Holidays

Students must notify faculty during the first week of the semester in which they are enrolled in the course, or as early as possible, but no later than three weeks prior to the absence, of their intention to be absent from class on their day(s) of religious observance. If the holiday falls within the first three weeks of class, the student must inform faculty in the first week of the semester. For details and policy, see “Religious Holidays” at Provost Policies, Procedures, and Guidelines.

Use of Electronic Course Materials and Class Recordings

Students are encouraged to use electronic course materials, including recorded class sessions, for private personal use in connection with their academic program of study. Electronic course materials and recorded class sessions should not be shared or used for non-course related purposes unless express permission has been granted by the instructor. Students who impermissibly share any electronic course materials are subject to discipline under the Student Code of Conduct. Please contact the instructor if you have questions regarding what constitutes permissible or impermissible use of electronic course materials and/or recorded class sessions. Please contact Disability Support Services at https://disabilitysupport.gwu.edu if you have questions or need assistance in accessing electronic course materials.

Academic Support

Writing Center

GW’s Writing Center cultivates confident writers in the University community by facilitating collaborative, critical, and inclusive conversations at all stages of the writing process. Working alongside peer mentors, writers develop strategies to write independently in academic and public settings. Appointments can be booked online at https://gwu.mywconline.

Academic Commons

Academic Commons provides tutoring and other academic support resources to students in many courses. Students can schedule virtual one-on-one appointments or attend virtual drop-in sessions. Students may schedule an appointment, review the tutoring schedule, access other academic support resources, or obtain assistance at https://academiccommons.gwu.edu.

Support for Students Outside the Classroom

Disability Support Services (DSS)

Telephone: 202-994-8250

Any student who may need an accommodation based on the potential impact of a disability should contact Disability Support Services to establish eligibility and to coordinate reasonable accommodations.

Counseling and Psychological Services

Telephone: 202-994-5300

GW’s Colonial Health Center offers counseling and psychological services, supporting mental health and personal development by collaborating directly with students to overcome challenges and difficulties that may interfere with academic, emotional, and personal success.

Safety and Security

  • Monitor GW Alerts and Campus Advisories to Stay Informed before and during an emergency event or situation
  • In an emergency: call 911 or GWPD/EMeRG 202-994-6111
  • For situation-specific actions: refer to GW’s Emergency Response Handbook and Emergency Operations Plan
  • In the event of an armed intruder: Run. Hide. Fight.