AU Core Banner

  • Instructor: Alex Godwin
  • Office: DMTI 112C
  • Office Hours: Schedule a time to meet with me through Acuity: link
  • Course Canvas: link
  • First Day of Class: Tue., Aug. 31

Coronavirus Policies

VACCINES For fall 2021, AU will require vaccines for all students who reside on campus or come to campus for any reason. This will enable us to expand activities and interactions that enrich the educational, research, and social experiences that are fundamental to AU. Students will be able to request exceptions for medical or religious reasons following existing protocols. We are also working to support international students who may require access to vaccines when they arrive in the United States. Please see Vaccine Requirement FAQs.

MASKS The District of Columbia has reinstated mask requirements indoors for all persons over age two, regardless of vaccination status, effective Saturday, July 31. In accordance with the Mayor’s Order (Order 2021-097), anyone present in AU buildings or campus facilities must wear masks while indoors. The only exceptions are when eating or alone in an office or residence hall room. See for more information.

  • Students who do not attend class in an appropriate face covering will be asked to put one on.
  • Students who do not agree to wear a mask will be asked to leave the room and will be marked absent for the day.

For more information about general policies regarding American University’s response to COVID-19, please refer to the full memo at

Academic Integrity

Even though we encourage collaboration with a partner, sharing code between groups is strictly forbidden - this is a form of plagiarism. As is showing your work to other students, even just for a second. There is rarely one single correct way to write code that solves a problem. While we want you to feel free to discuss your approach with a partner, you should know that there are often many solutions for a given problem and it’s typically obvious when one student shares code with another. If you directly copy and paste code from the Internet (or even the text), cite your source in your comments (but also ensure that you understand what the code is doing - not all code on the web is good!). Assignments will be checked using plagiarism detection software and by hand to ensure the originality of the work.

Do not share your code with anyone other than a partner. Do not let someone look at your screen. You may get behind, or your friend may ask for help, but the consequences for plagiarism are far worse than an incomplete submission - for the submission, you will still likely get some points. If I suspect that you have purposely shared code with another student or presented someone else’s work as your own, the matter will be referred to the Academic Integrity Code Administrator for adjudication. If you are found responsible for an academic integrity violation, sanctions can include a failing grade for the course, suspension for one or more academic terms, dismissal from the university, or other measures as deemed appropriate by the Dean.

All students are expected to adhere to the American University Honor Code.

Class Participation

It is expected that students will come to class, be prepared by doing the readings, and will pay attention and participate in discussions. Participation is scored by completion of assigned readings and in-class activities.

Any questions regarding general rules and regulations should first be directed to the American University Catalog. If you still have questions, please seek out the TA or Instructor during the posted office hours.


You are required to attend all lectures. If you need to miss class for any reason, you are allowed two excused absences - no questions asked. Prolonged absences must be discussed with the instructor and are not guaranteed to be excused.

Use of Computers and Cell Phones in Class

Educational research shows that taking notes by hand on paper will lead to better retention of material than taking notes by typing. Also, in the past classrooms have had issues with students not only not paying attention but also disrupting others during class - by playing games, by accidentally clicking on a video with the sound on, etc.

If you have a laptop, you should bring it to class. Do not use it for in-class assignments unless you are directly advised to do so by the instructor. Throughout the semester we will frequently pause lecture to work together to solve programming challenges in groups.

Please do not use your cell phone in class.

Software Tools

In this course you will utilize an Integrated Development Environment (IDE) to write code. While many IDEs exist, examples and in-class support videos will utilize IntelliJ IDEA by JetBrains. It is freely available to students through an academic license and supports all the software development features that we will use in this course. Students who have used PyCharm, also by JetBrains, will find this IDE quite familiar.

All assignments will be delivered to students and submitted back to the instructor through Github. If you do not already have an account, you should sign up for one prior to the beginning of class. Early lectures will discuss the possible methods of submitting assignments to help you determine what is most comfortable for you, but the recommended method is to use the built-in Github integration available within IntelliJ IDEA.

Audio/Camera Policy

We strongly encourage you to turn on your camera during meetings and remote office hours. Faculty and students reported virtual classes are much better when we can see your faces because there is more visual communication, more engagement, sense of community and less multitasking. However, we understand that sometimes you can’t turn on your camera due to connectivity issues or privacy concerns. If you can’t connect with a camera, please upload a photo of yourself onto Zoom. If you have connectivity issues, please contact


Homework will be graded on a rubric of tasks that are expected to work correctly (e.g., returning the correct output for a given input). For each task, you will receive either a check plus, check, or check minus. Most tasks will receive a check. A check plus means “you impressed me”, and is typically achieved by checking for faulty input, elegant design, good comments, and/or a surprising approach. A check minus means the assignment is incomplete, incorrect, or sloppy in some way. Pluses and minuses are combined to give your grade for the assignment. A project receiving all check pluses will receive 100% of credit, while a project receiving all checks will receive a 90%. A project receiving minuses for all tasks will receive about 75% of credit, and a project that receives an X for all tasks will receive about 50% of credit or less. Tasks may be weighted differently to account for differences in difficulty or time. These are general guidelines to let you know what to expect. Grading on specific assignments may differ.

Project submissions that fail to compile will not be accepted under any circumstances.

All assignments will be submitted through the class Github system, which will be introduced in early lectures. Students are allowed to work in pairs (no groups larger than two people) but you must specify who you worked with and it must be clear that both students contributed (you will identify who did what in your submission). Students working together must equally contribute to the projects. Project submissions will be reviewed to ensure balanced contribution for paired submissions - grades will be scaled in situations where it becomes clear that one student did all the work

Late Submission

Assignments are due at the beginning of class on the specified date unless stated otherwise. Assignments turned in after this time will be penalized with a letter grade (10%) for each 24 hour period after the initial deadline. Submissions received 72 hours after the deadline will not be accepted. Submissions that do not compile will not be accepted. Some projects are larger than the others, and many are quite larger than homework assigned in the previous course. Students are therefore given multiple weeks to complete them. Waiting until the last minute is a recipe for disaster - if you are stuck, come to office hours for the instructor or TA ASAP to get unstuck!

Throughout the semester you have two “grace” days that can be used to mitigate the penalty of a late assignment submission. These are applied automatically at the end of the semester.


Exams cover the material from the lectures, projects, and reading. While not necessarily cumulative, each exam will require understanding many of the concepts covered in the preceding exams. Exams consist of multiple choice, short answer, and long answer questions. Each exam, except the final, is weighted equally.

The final exam is cumulative: half of the final exam will be material covered for prior exams, half will be material that is new since the previous exam.


  • Attendance and Participation: 10%
  • HW Projects: 30%
  • Midterm Exams (2x 15 ea.): 30%
  • Final Exam (cumulative: half old, half new): 30%

Letter Grades

  • A [93, 100]
  • A- [90, 93)
  • B+ [87, 90)
  • B [83, 87)
  • B- [80, 83)
  • C+ [77, 80)
  • C [73, 77)
  • C- [70, 73)
  • D+ [67, 70)
  • D [63, 67)
  • D- [60, 63)
  • F [0, 60)

Students with Disabilities

If you wish to receive accommodations for a disability, please notify me with a letter from the Academic Support and Access Center. As accommodations are not retroactive, timely notification at the beginning of the semester, if possible, is strongly recommended. To register with a disability or for questions about disability accommodations, contact the Academic Support and Access Center at 202-885-3360 or, or drop by the ASAC in MGC 243.

Academic Support

All students may take advantage of the Academic Support and Access Center (ASAC) for individual academic skills counseling, workshops, Tutoring, peer tutor referrals, and Supplemental Instruction. The ASAC is located in Mary Graydon Center 243. Additional academic support resources available at AU include the Bender Library, the Writing Center ( located in the Library), the Math Lab (located in Don Meyers Technology and Innovation Building), and the Center for Language Exploration, Acquisition, & Research (CLEAR) in Anderson Hall. A more complete list of campus-wide resources is available in the ASAC.


The Quantitative Academic Support program provides drop-in and one-on-one tutoring for CSC 121, 148, and 208. Tutors help students learn course concepts, develop study strategies, complete assignments, and study for exams. Tutors may not be able to help with all problems; students must consult with the course instructor for additional assistance.

Drop-in assistance is available in DMTI 207 (hours TBD). One-on-one appointments can be scheduled at (choose Quant Support). Tutoring begins the third week of classes and ends the last day of classes. Email with questions.


Course design by Alex Godwin at American University. Assignments and ideas on this syllabus build from the work of many other instructors in computing, including John Stasko at the Georgia Institute of Technology, Evan Peck at Bucknell, Keith Schwarz at Stanford, and Dave Reed at Creighton University.

If you have gotten this far in reading the syllabus, then Snoop and I applaud you.