Course and instructor information

Welcome to the Software Engineering Course

Instructor Photo

Jane Cleland-Huang


Course Description

Software development involves much more than programming. This course will introduce techniques that are needed to develop high quality, maintainable software systems. The first six weeks will be a crash course in Software Engineering topics with an emphasis on software design and testing. Other topics will include requirements and agile development processes. In the second part of the course you will practice these topics through applied learning in a group project. All examples and homework assignments will be completed using Java and Java FX; however, no prior knowledge of Java is expected. Plenty of sample code will be provided.

Learning Goals

Students taking this class should gain software engineering skills in the following areas:

Further, students will participate in a team project to develop a non-trivial application in Java. From this they will develop a portfolio.

Optional Reading Materials

All necessary materials will be provided in the lecture notes, code samples, and through weekly readings. However, some course materials have been taken from the following books, which students may choose to purchase:

Software Development Environment

Java, Java FX Environment

In this course we will be working with Java. No prior experience with Java is expected or needed as we will learn as we go through the other material. Furthermore, I will provide you with plenty of sample code for everything we learn. I will be using Eclipse Neon IDE; however, you may choose to use NetBeans or Intelli J instead. If you have time over the break, you may wish to install your chosen IDE with Java FX prior to the start of the semester and run a simple Hello World application to make sure the setup is correct. This will save you time during the first busy week of the semester. As we are also going to use Java FX, you could install both at the same time.
Please read all of your options first. In some cases you may find it easier to install the IDE (e.g. Eclipse) already bundleD with Java FX. Additional links will be added as needed during the course.

Course Syllabus

This course is divided into two parts. The first part of the course is lecture based and is designed to equip students with specific Software Engineering skills related to design, development, and testing. Lectures will focus on Principles of Object Oriented (OO) Design, Modeling and Documenting OO design, testing, code quality analysis, and requirements. Materials can be found at the following links:

Grades and Grading Policy

Points Breakdown

Grading Rubric:

A: 95 - 100 A-: 90 - 94.99
B+: 87 89.99 B: 83 86.99 B-: 80 82.99
C+: 77 79.99 C: 73 76.99 C-: 70 72.99
D: 65-69.99 F: 0-64.99

Late Policy

Late homework penalties will be strictly enforced. There will be a 20% penalty for any homework not turned in exactly by 5.00pm on its due date. Any homework turned in more than 24 hours late will receive a zero. Sample solutions will be posted approximately 24 hours after homework is due. You need to plan ahead to complete your homework if you will be out of town. Under exceptional circumstances, i.e. extreme sickness etc, you will need to discuss with the instructor and a make-up assignment may be arranged. This needs to be done prior to the homework deadline if humanly feasible.

Honor Code

This class follows the binding Code of Honor at Notre Dame. The graded work you do in the first phase of the class must be your own. For Software Engineering projects, you will work as a member of a team and the work that is performed must represent the effort of team members only. In the case that you re-use open-source code in your project, you must provide full attribution to the source. Further, in the spirit of the Honor Code, all team members are expected to make full contributions to the project and to correctly describe the contributions they have made.

Class Recordings

During the first half of the Semester, and for all project presentations in the second half of the semester, this class will be recorded. You may find recordings on Sakai under "Echo360" or "Penopto". The purpose of the recordings is to enable people who miss class for legitimate reasons (such as an interview or sickness) to catch up on materials; however, if course attendance drops, the recordings will be discontinued. Please be aware that your voice may be recorded during class; however, recordings are for purposes of students in this course only.