Lectures: Tuesday and Thursday 4:00 - 5:20 PM in WNGR 153
Instructor: Michael Hilton
Email: hiltonm [at] eecs.oregonstate.edu
Office hours: Tuesday 10-11, Friday 1-2 Location: Kelley 2087
TA: Nicolas Nelson
Email: nelsonni [at] oregonstate.edu
Office hours: Monday Wednesday 2-3 Location: Kelley Atrium
TA: Shane McKee
Email: mckeesh [at] onid.oregonstate.edu
Office hours: Thursday 11:30-12:30, Friday 2-3 Location: Kelley Atrium
| Date | Topic | Lecture Slides | Readings due | Assignments |
|---|---|---|---|---|
| Tue, Jan 5 | Introduction | Introduction | Syllabus Software Engineering Talk by Mary Shaw |
Assignment 0 Assigned TL;DR post Github username to Piazza, Signup for a group on Canvas (maybe), Run project and make Pull Request. |
| Thurs, Jan 7 | Collaboration and TDD | Collaboration And TDD | Github Flow Introduction Introduction to TDD |
|
| Tues, Jan 12 | TDD and User Stories | TDD and User Stories |
User Stories INVEST FizzBuzz example |
Assignment 1 Assigned |
| Thurs, Jan 14 | User Stories and Architectural Patterns | User Stories and Architectural Patterns |
Architectural patterns |
|
| Tues, Jan 19 | More Architectural Patterns | More Architectural Patterns | ||
| Thurs, Jan 21 | More Architectural Patterns | Project Management and Risk |
Risk Management |
|
| Tues, Jan 26 | Review Assignment 1 | Assignment 2 Assigned | ||
| Thurs, Jan 28 | Paper Prototypes | Paper Protypes |
Paper Prototypes Paper Prototyping Myths |
|
| Tue, Feb 2 | UML Diagrams | UML Diagrams |
UML Diagrams (NOTE: We only covered a subset of these in class) |
|
| Thurs, Feb 4 | UML Class Diagrams | UML Class Diagrams |
UML Class Diagrams UML Class Diagram Examples |
|
| Tues, Feb 9 | Review Assignment 2 | Assignment 3 Assigned | ||
| Thurs, Feb 11 | Design Patterns | Design Patterns |
Design Patterns Reference Java Design Patterns |
|
| Tuesday, Feb 16 | AntiPatterns | AntiPatterns |
AntiPatterns Code Smells and Refactorings |
|
| Thursday, Feb 18 | Code Review and Pair Programming | CodeReview | Tuesday, Feb 23 | Assignment 4 and Resume Suggestions |
| Thursday, Feb 25 | Guest speaker, Sarah Cooly | |||
| Tuesday, March 1 | Team Working Session | |||
| Thursday, March 3 | Open Source and #MobProgramming | Open Source and #MobPrograming | Open Source Initiative Mob Programming |
Class Participation: There will be opportunities for class participation throughout the term
Writing Assignment: As this is a Writing Intensive Class, there will be a 2000 word essay which we will revise multiple times, as per University Policy
Final: There will be a comprehensive final
Group Project: The main focus of this course will be the Group project. There will be 4 milestones each which will be two weeks long.
Class Participation: 10%
Writing Assignment: 20%
Final: 20%
Group Project: 50%
Each team will be allowed 3 late days for their group project. These days can be used individually or in a single block. All writing assignments will be due in class. The group projects will be mostly submitted online, although some design documents will be delivered in hard copy form.
Accommodations are collaborative efforts between students, faculty and Disability Access Services (DAS). Students with accommodations approved through DAS are responsible for contacting the faculty member in charge of the course prior to or during the first week of the term to discuss accommodations. Students who believe they are eligible for accommodations but who have not yet obtained approval through DAS should contact DAS immediately at (541) 737-4098. Students with documented disabilities who may need accommodations, who have any emergency medical information the instructor should be aware of, or who need special arrangements in the event of evacuation, should make an appointment with the instructor as early as possible, and no later than the first week of the term.
Reuse and building upon ideas or code are major parts of modern software development. As a professional programmer you will never write anything from scratch. This class is structured such that all solutions are public. You are encouraged to learn from the work of your peers. I won't hunt down people who are simply copying-and-pasting solutions, because without challenging themselves, they are simply wasting their time and money taking this class. Please respect the terms of use and/or license of any code you find, and if you reimplement or duplicate an algorithm or code from elsewhere, credit the original source with an inline comment.
At the completion of this course, students will be able to...