Syllabus | CS 2113 Software Engineering - Spring 2022


Meeting Times and Staff


Meeting Time

Course Staff

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, 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. The course will also cover an elementary introduction to the C programming language.

Learning Outcomes

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

Course Outline

Textbook and Resources

There are NO REQUIRED textbooks for this course. Instead we have a list of recommended resources for you to reference in addition to the course notes provided for you. These include:

All books listed here are available for free via Safari Tech Books via the GWU library. Just create an account with your GWU email. You can also find a ton more books and resources there.


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. You will be submitting one lab assignment, on average, per week, and three projects due throughout the semester. You should also be completing your self-check worksheets assigned for each lecture.

Having completed the pre-reqs, you are expected to submit well-written code:


Grading Breakdown

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 not graded for accuracy; instead, you attest that you have completed the worksheet. Worksheet completion is expected by the Friday following Monday lecture.


Labs are short-to-medium size programming assignments that are designed to reinforce lecture and prepare you for projects. Labs 1-7 are each worth 4% of your grade for a total of 28%. Note that Lab 0, orientation and familiarization lab, is worth 2% of your grade.


There are three projects for this class. Each worth 10% of your grade, for a total of 30%. There are a substantial amount of work.


There are two non-comprehensive exams in this class that cover the C programming unit and the Java programming unit. Each exam is worth 15% of your grade, for a total 30%.


Participation is worth 2% of your grade. You earn participation credit by attending lecture (1%) and lab (1%). There are 23 opportunities to participate (11 lectures and 12 labs).

Your participation grade is calculated as follows:

Essentially, you must attend at least 50% of the meetings to earn full participation. If you attend more, than you can earn bonus, up to 2% on your final grade.

Submission/Late Work Policy

All assignments, except for Worksheets, will have two deadlines: the early deadline and the final deadline. Students submitting by the early deadline will earn a 10 point bonus on that assignment. Submission by the final deadline is graded as regular with no deductions or additions.

Assignments will not be accepted after the final deadline.

The final deadline is always 4 days following the early deadline. For example, if an assignment is due on Friday 11:59pm, that is the early deadline. The final deadline is Tuesday 11:59pm.

Worksheets are always due on Sunday and do not have an early and final deadline.

One Time, Deadline Amnesty

Every student is allowed a two day, no-questions asked extension beyond the final deadline to be used ONE TIME throughout the semester. To request an amnesty, email the instructor.

Amnesty cannot be used for Project 3

If you have a compelling reason to need further amnesties, you should discuss this with your instructor. The reason must be compelling.

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.

Course Policies

Illness policy

If you are ill and it will cause you to miss class, lab, or an assignment, you should let your course instructor know in advance, if possible. It is your responsibility to catch up with any missed material. For extended absences due to illness, you should provide a doctors note. If you are to miss an exam or project deadline due to illness, you should also provide a doctors note and a plan to make up those assignments.

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:

The Academic Integrity Code will apply to this course. Please read through the code carefully. 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.

All 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 reasonable accommodations.

Please note, that as programming assignments have deadlines many days after assignment, accommodations can only be provided to course exams.


If any issue arises that may limit your ability to participate in class, for example, personal illness, family emergency, etc., please be sure to discuss these matters with your instructor as soon as possible and accommodations will be made available to you as appropriate.

Feelings of being overwhelmed are unfortunately quite common in the university environment and something we have all dealt with. You are not alone, and there are a number of resources available to provide support in those moments. Learning to ask for help is an import part of the university experience, and if you or anyone you know experiences any academic stress, difficult life events, or feelings of anxiety or depression, we strongly encourage you to seek support. GW offers counseling services, and also consider reaching out to a friend, family or faculty member you trust for help.

If you or someone you know is feeling suicidal or in danger of self-harm, call someone immediately, day or night:


Much of the material for this course comes from previous iterations taught by Roxana Leontie, Prof. Wood, Prof. Simha and by Rhys Price Jones. Material was also adopted with permission from USNA courses ic221 and ic211, taught by Adam Aviv, Nate Chambers, Gavin Taylor, Chris Brown, and many others. Thank you.