Syllabus | CS 2113 Software Engineering - Fall 2024

Syllabus

Meeting Times and Staff

Instructor

Meeting Time and Course Staff

Office hours

Grading

Course Details

Course Description

In this course, students will learn how to write object-oriented code using Java. Concepts will focus on object-oriented thinking, software composition, inheritance and polymorphism, unit testing, and design patterns. Programming techniques, assignments and lab exercises will focus on Java, specifically, the language and its core libraries. The course will be conducted lab-style with a mix of lecture, lab assignments and projects.

Learning Outcomes

By the end of this course, students will be able to:

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:

Grading

Grading Breakdown

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.

Exams

There will be two non-cumulative exams this semester that students will take in lecture, on paper.

There will also be one live coding exam that students will take on computers during one lecture/lab session.

Self-Guided worksheets

Each lecture will be accompanied by a self-guided worksheet. This worksheet is to complement in-class content and to assist you in reviewing the material. Worksheets are graded for completion, but they must be your own work. Worksheet completion is expected by Thursday the same week; you will be graded only on the problems we covered together during class.

Labs, programming projects, and quizzes

There are six programming assignments which will form the material that you will be tested on with six quizzes this semester. Quizzes will be on paper, in lecture, and although they are not worth any points, they do serve as a cap on the matched programming assignment. For example, if you score a 100% on Lab 3, but your matching quiz score is 45%, your Lab 3 grade will also be reduced to 45%. The spirit of this assessment is to make sure students write their own solutions (without using an LLM, for example), and understand the concepts these programming assignments are meant to exercise.

Participation/Attendance

Participation is earned by completing and submitting the worksheets during lectures and/or labs.

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.

Submission/Late Work Policy

We do not accept late work in this course. However, programming assignments will not be graded until you have taken the respective quiz, so you may turn them in late up until the start of lecture, unless otherwise noted. We will not offer Ed nor office hours support on any assignment which is past due; you will need to complete these on your own.

We will not accept late worksheets.

If you miss a quiz in lab or an exam, you may elect to take an oral makeup with the professor the Monday the following week before lecture. Other makeup times will not be supported. The makeup quiz/exam will be harder than the quiz/exam the rest of the class would take as you would have had more time to study. If you miss the exam on the last day of class, you will receive an Incomplete grade in the course and must take the makeup during the first two weeks of the following semester (otherwise you will receive an F in the 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.

We also have an anonymous feedback form available for students in this class.

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% (as a loss of the participation points this semester) for additional acts of unprofessionalism.
Unprofessionalism covers activities (or lack thereof) on the group project this semester (see below).

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:

You may:

You may NOT:

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.

Please note that in the context of this class, all projects and labs are considering programming/coding assignments. Many actions fall under the "You may NOT" list above

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.

Some videos will be shared on password protected links. You should not share the passwords beyond this class or download and share those videos with others. This is a violation of the privacy of your fellow students and could lead to disciplinary actions on the Student Code of Conduct.

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

It is our intent to present materials and activities that are 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. 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.