Syllabus
Meeting Times and Staff
Instructor
- Instructor: Dr. Kinga Dobolyi
- Email: kinga@gwu.edu
- Prerequisites: CS 1112 or equivalent (See undergraduate curriculum).
Meeting Time and Course Staff
- Lecture: MPA 305
- Mon 10AM - 12:30PM with Dr. Kinga (professor)
- Lab
- Wed 11:10AM - 12:25PM (SEH 4040, section 31) with TBA
- Wed 11:10AM - 12:25PM (TOMP 405, section 30) with TBA
Office hours
- TBA
Grading
- TBA
Course Details
Course Description
In this course, students will learn how to write and debug object-oriented code using Java. Concepts will focus on object-oriented thinking, software composition, inheritance and polymorphism, unit testing, and design patterns.
Learning Outcomes
By the end of this course, students will be able to:
- Practice advanced software development that involve multiple classes, encapsulation, inheritance, and polymorphism.
- Understand programming language features such as interfaces, abstract classes, generics, and their underlying representation in memory.
- Experience GUI design and implementation
- Practice basic networking and IO programming
- Develop an understanding of software engineering principles
- Develop an understanding of unit testing and debugging
- Demonstrate skill in problem solving by going from unit tests to implementation.
Textbook and Resources
There are NO REQUIRED textbooks for this course. You do not need to use outside materials to complete the assignments, except when specifically instructed to do so.
Workload
Expected time commitment
The GW standard is that one credit hour corresponds to a minimum of 50 minutes of instruction plus 100 minutes of independent learning (e.g., homework and exam prep) per week. This is a 3 credit course, thus you should expect to spend 2.5-3 hours in class and 50 minutes in lab, plus four to five hours of independent learning per week, which may include completing programming assignments.
The amount of time you spend per week may be more or less, depending on the topic and the current assignments, but you should set aside time to complete your work for this class, both during lecture and out.
Programming Expectations
The course will be extremely programming-intensive. You should be prepared to spend most of your out-of-class and in-class time writing and designing software.
Having completed the pre-reqs, you are expected to submit well-written code:
- Write legible, well-documented code.
- Be able to describe and answer questions about your code when prompted.
- Commit your changes incrementally to git, whether in the same day/coding session, or across days. Your git commit history must show evidence that you worked on your code meaningfully over time (as opposed to just checking in large blocks of code). We recommend students commit after they pass a new test case.
Grading
Grading Breakdown
- 3%: Worksheets
- 10%: Labs (equal weight)
- 67%: Quizzes (equal weight)
- 20%: Live coding exam
We reserve the right to request access to the programming assignments for this class on your github repo (via github’s collaborator mechanism). Failure to comply with such a request will automatically result in a zero on your programming assignment.
Final course grades are calculated as follows:
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%)
It is your responsibility to submit your code early and often to the submitserver and ensure it passes all the test cases there. Note that, under load, the submitserver may take longer than a few seconds to return your score if many other students are also using it simultaneously. We will not accept any code that has not been submitted to the submitserver before the deadline. When using the submitserver, your grade will be the score you see on the submitserver. Make sure you leave yourself ample time before assignment submission to get help with any issues that you may run into when submitting your code.
Re-grade requests and grades on Blackboard
It is your responsibility to make sure that grades have been correctly entered in Blackboard in a timely manner. Please make sure that Blackboard reflects your correct scores within two weeks of an assignment due date; we will not adjust scores after this deadline. Please be aware that Blackboard does not weight overall course grades correctly. You can calculate your grade in the course at any time by referring to the raw scores on Blackboard, and using the weights above to calculate your grade in the class. No assignments will be accepted for re-grade requests after final grades have been recorded in Blackboard.
Regrade requests will only be considered for either 1) a grade being incorrectly recorded into Blackboard or 2) a grading rubric was not followed correctly. Please do not request to meet to “discuss” grades before emailing the instructional staff why your situation falls into one of these two situations first.
We also do not entertain any requests to arbitrarily “bump up” grades – see the professionalism policy below. If you wish to discuss your final overall grade in the course, you may do this via email, or in-person. If you choose to do it in person, please email me to schedule a meeting. Final grade questions will not be answered in regular office hours.
Labs
You will usually have one or two labs each week. These are due Fridays at 11:59pm on the submitserver. However, you may submit them up until class time on Mondays without penalty, but there will be no office hours nor Ed support for these assignments after the Friday due date.
Quizzes and Exams
We will have quizzes most weeks of the semester. If you miss a quiz, you may make this quiz up on the last lecture of the semester: these quizzes will be harder as you had more time to study. No additional makeups-on-makeups will be supported. If you need to make up more than one missed quiz, you will need a note from Dean Zara. You will not be allowed to make up any quizzes that you have already taken.
There will also be one live coding exam that students will take on school-provided computers during one lecture/lab session.
Worksheets
This class is taught as a flipped classroom; you are expected to do the weekly readings before coming to class. During lecture, we will complete worksheets together that are due on Mondays at 11:59pm.
Submission/Late Work Policy
All assignments are due in EST.
We do not accept late work in this course.
Class Communication
We will use two primary forms of communication in this class: email announcements and Ed. You are responsible for remaining up to date on any information sent by email or posted to Ed. This may include clarifications to assignments, updates on grading rubrics, and changes in office hours.
For all general course information, questions, and clarifications, you should preference to using Ed. An instructor, TA, or even your fellow classmate can then answer a question. You can even post your questions anonymously. If you have personal, individual issues you’d like addressed, you should send those by email to the course instructor. However, all course related topics should be directed to Ed.
Please allow instructional staff 24 business hours (M-F from 8am-4pm) to respond to email and Ed messages. A message sent on a Friday afternoon may only be answered on a Monday. We can often reply much more quickly, but please do not wait until the last minute to ask your questions and/or start assignments.
Professionalism
Students are expected to treat each other, the TAs, and the instructor professionally both in-person and in online communications and work. If unprofessional behavior is observed, a student will first receive a warning. Afterwards, their final grade in the course may be reduced up to 5% for additional acts of unprofessionalism.
Knowingly asking the professor to violate or go against policies set in this syllabus will count as unprofessional behavior.
Students who exhibit unprofessional behavior, including but not limited to honor code violations, will not receive letters of recommendation from the professor for TA applications, graduate school, scholarships, etc.
Course Policies
Academic Integrity policy
It is very important in this course (and in life), that your work be your own. These guidelines will help you achieve that.
You must:
- Solve all homework, quizzes, projects, and labs on your own, unless you are receiving the help of the instructional staff.
You may:
- Discuss any of the English requirements of the assignment specifications with other students; you may ask for clarification, in English, of the assignment requirements. However, you are NOT allowed to discuss high level solutions to these assignments (see below).
You may NOT:
- Copy code to or from other students or people outside of the class.
- Discuss general approaches to solving the homework problems with other students.
- Have another student look at a specific snippet of your code (e.g., 2+ lines) to help you debug a programming error.
- Have someone else write code for you.
- Copy code from the internet.
- Use any LLM (such as ChatGPT) to generate any of your code, or generate a skeleton of your code that you then modify. You may also not use an LLM for any other reason in this course.
Penalties for violating the code or the policies described here include failing this course, and are elaborated in the GW Academic Integrity Code. Note that the minimum punishment is failure of the assignment. Additional actions could include failure of the class, suspension, or expulsion.
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 if you have questions or need assistance in accessing electronic course materials.
University policy on observance of religious holidays
In accordance with University policy, students should notify faculty during the first week of the semester of their intention to be absent from class on their day(s) of religious observance. For details and policy, see Religious Holidays on the Provost web page.
Disability Support Services (DSS)
Any student who may need an accommodation based on the potential impact of a disability should contact Disability Support Services (or call 202-994-8250) to establish eligibility and to coordinate accommodations.
Safety and Security
• Monitor GW Alerts and Campus Advisories to Stay Informed before and during an emergency event or situation
• In an emergency: call GWPD/EMeRG 202-994-6111 or 911
• 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.
Diversity and Inclusion
All people have the right to be addressed and referred to in accordance with their personal identity. In this class, we will have the chance to indicate the name that we prefer to be called and, if we choose, to identify pronouns with which we would like to be addressed. I will do my best to address and refer to all students accordingly and support classmates in doing so as well.
For more resources, see the CS Dept JEDI homepage.
Acknowledgments
The material for this course comes from previous iterations taught by Prof. Aviv. Thank you.