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 team project. All examples, homework assignments, and the term project will be completed using Java and Java FX; however, no prior knowledge of Java is expected. Plenty of sample code will be provided. Finally, we will have several Software Engineers as speakers throughout the semester who will talk about their own experiences working on various development projects.

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 JavaFX. 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.

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 by its due date and time. 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.