Course and instructor information
Welcome to the Software Engineering Course
Jane Cleland-Huang
Professor
- Instructor: Jane Cleland-Huang
- Email: JaneClelandHuang@nd.edu
- Office: Fitzpatrick Hall, Room 354
- Phone: phone here
- Website: http://sarec.nd.edu
- Office Hours (Professor): Monday and Wednesday in the classroom following class (for as long as needed). Wednesday 10.30am-12.30pm. Any time that my door is open or send me an email to set up a time that works for you.
- Office Hours (TA: Alexander Le Clair): Times tbd, Cushing 212
- Class Schedule: download here
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:
- Ability to design an elegant and maintainable Object-Oriented solution for a medium sized problem using basic Principles of Object-Oriented Design and proven Design Patterns.
- Ability to transform an Object-Oriented Design into high quality, executable code.
- Skills to design, implement, and execute test cases at the Unit and Integration level.
- Exposure to common process models including SCRUM, Waterfall, and the Unified Process, and hands-on experience with elements of the agile process including Jira and Github.
- Exposure to a variety of Software Engineering practices such as requirements analysis and specification, code analysis, code debugging, testing, traceability, and version control.
- Basic competency in Java and JavaFX language and environments.
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:
- Head First Design Patterns: A Brain-Friendly Guide Freeman, O'Reilly Media, 2004. ISBN: 978-0596007126.
This is an easy-reading book which does a great job describing the purpose of different design patterns with examples.
- Java FX: Introducing JavaFX 8 Programming (Oracle Press) 1st Edition, by Herbert Schildt
- Object-Oriented Design and Patterns, 2nd edition, Horstmann, John Wiley & Sons, 2005. ISBN: 978-0-471-74487-0 Provides a crash course in java and an introduction to design patterns. (Note: The book uses Swing instead of JavaFX, so the GUI parts are not relevant)
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.
- Install Java SDK from the Oracle site here . Make sure to select the correct version corresponding to your OS. I am using
Eclipse IDE for Java Developers. If you need a different version for your project you can reinstall later.
- Install an IDE with Java FX For this course I'm going to use my favorite IDE (Eclipse); however, you may use NetBeans or IntelliJ if you prefer. Examples will be provided in Eclipse.
Here are some installation instructions:
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:
- Download a pdf describing the course schedule
- Course materials will be posted prior to each lecture on Sakai.
- Homework assignments will also be downloadable from Sakai
Grades and Grading Policy
Points Breakdown
Weeks 1-6: Software Engineering with Java
- Questionnaire (5 points)
- Java Program #1 + SE Questions (5 points)
- Java Program #2 + SE Questions (5 points)
- Java Program #3 + SE Questions (10 points)
- Individual Mini Chips Challenge Project (15 points)
- Requirements Modeling and Analysis (10 points)
Weeks 7-15: Team Project (Total 50 points distributed as follows:)
- Project UML Requirements, design, and project launch (15points)
- Deliverable # 1: Functionality + Unit Tests (10 points)
- Deliverable # 2: Functionality + Unit Tests (10 points)
- Group Presentation (5 points)
- Group Project Report (html or pdf) (10 points)
Note: Under normal circumstances, all members of the team will receive the same grade for the project; however in extenuating circumstances, the instructor retains the right to award individual team members additional points or fewer points than other team members.
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.