Readings
- Herbsleb & Grinter: Splitting the Organization
- Boehm: Spiral Model
- van Ommering: Koala (Week 7); see also the lecture slides I didn't use as html or as 4-up PDF. See especially slide 5; do you understand what this says about "updaward" and "downward" interfaces, and how component architectures differ from conventional class libraries?
Final Exam
Times
You have two options for the final exam:
- You can take it at the assigned time, 8am Thursday, in our regular classroom.
- You can take it at 6pm Monday, in Deschutes. (I'll commandeer conference rooms for the purpose.)
What is Covered
The exam is comprehensive. It may cover all of the papers we have read (there are only three) and anything presented or discussed in lecture.
Expect something very roughly like the midterm. I try to craft problems that require some thinking, and that are a lot easier to answer if you have not only read the material and come to lecture but also thought about the material already. I don't always succeed, but that's what I aim for.
Ground Rules
- The exam is open-book, open notes. Take any materials you want, in either paper or electronic form. If you think a copy of The Grapes of Wrath will help you, bring it. (Years ago, after hearing this rule, a student at Purdue actually brought a copy of The Grapes of Wrath to the exam. I don't think she used it, but she did fine anyway.)
- You may bring a laptop to the exam. However:
- Network access is not permitted during the exam.
- If you wish to type your exam answers, you must do so as a plain text file, name the file YOURNAMEHERE.txt and turn it in by placing it on a USB key that I will provide.
- Other students don't count as notes (i.e., you can't consult with them).
- I'll be present in the room during the regularly scheduled exam. During the early option (Monday evening), I may be in and out while doing other work. This could potentially be a disadvantage for the Monday night option, although I think it won't be. I'll be accessible enough if you have questions or need something.
- Lucky shamrocks, rabbits feet, magic crystals, etc., are permitted only if they are small and do not disturb other students. In my experience, the most effective good luck charm is a good sleep the night before and a rough draft before writing the final version of your answer. Fans of Hemingway tend to do better than fans of Joyce.[*]
News
Old news has its own page now.
Week 10
- Thursday: Presentations. Plan on 15-20 minutes. The content of the presentation is largely up to you, but think of it as a presentation you would make to management at the launch point of a project. Remind the audience why the project was worth doing. Describe the most important decisions you made (whether those are technical or non-technical decisions), what went well and not-so-well, and what lessons you learned that are applicable to future projects. (This is an important part of the project &lquo;post mortem&rquo; in many organizations — capturing lessons from each project to make the next projects better.) Most project teams also choose to include a live demo in the presentation, but for some kinds of project a set of static screen shots is more effective.
- Group member evaluation form is [here]
- Final exam: We are scheduled for Thursday morning. I want to schedule one alternative time earlier in the week, so people who don't have other late exams have the option of starting spring break a little earlier. Think about what times work for you. Monday evening?
Midterm
The midterm is now ready. It will be due Wednesday of next week (March 7), at 5pm. There are just two questions, but I think they're pretty difficult, particularly the second. I'll be happy if I get some really good answers to either one. [Here] it is.
Project due date
Project 2 due date is Friday, 9 March, 5pm
Week 8
- Expect to get the midterm on Tuesday and have one week to finish it.
Week 7
- Tuesday we will start with project presentations.
- The reading for this week is a paper by van Ommering (see above) about how the architectural design in a particular application domain can be systematized and supported by better domain-specific tools. Remember what we discussed about considering the time scale of software changes, and look at the choices van Ommering's group made in how different design decisions are bound in the code.
- The programming contest is this Saturday, and teams should sign up by Tuesday. This is a fun group activity, and I definitely encourage you to participate.
- Every think of studying abroad? The Office of International Programs is advertising opportunities to study science in Scandanavia, and one of the opportunities (Uppsala University in Sweden) offers computer science courses that look pretty similar to ours. The blurb says that Scandanavian programs are among UO's least expensive overseas programs, and financial aid can be adjusted to reflect program costs. The application deadline is March 1, so you need to jump on this if you're interested.
Week 6
- Tuesday is show-and-tell. We meet in the colloquium room in Deschutes.
Week 5
- Readings: The spiral model paper is finally posted to the web site. Please read it this week.
How and when to turn in your project
- Due date is Friday, 2 November, at 5pm.
I apologize for telling some people it was noon ... the class schedule on the web site definitely says 5pm. - Turn in by sending me an email message with the (full)
names of each person on your team, your team name, and a URL. When I
click the URL, I should reach your project web site ... and on
that web site I should find a link to download your whole
project as a single .tgz or .zip file. Please be sure this
archive is complete, including all source files,
documentation, and the web site itself. (OK, so the web site
in the archive probably can't include the archive itself ...
but basically one click should get me
everything I need to grade your project.)
Introduction
This is a project-oriented course on software engineering. You will work as teams to construct software systems, including not only programs but also end-user documentation, maintenance guides, etc. You will also be expected to think about principles and issues in software engineering, to read and respond to papers, and to participate in class discussions.
No university course can substitute for years of real-world experience, and that is not the objective of this course. Rather, the objective is to prepare you to learn from that experience. Thus our focus is first on broad principles and issues that pervade software engineering. Because these principles and issues are fundamental, they appear again and again even as popular methods and tools shift. Yesterday we had structured development, today we have object-oriented development, tomorrow we can expect something else ... but the fundamental challenges of teamwork, complexity, change and variation have been with us from the beginning and will be with us for the forseeable future.
Schedule
A week-by-week schedule is posted on the schedule page. It will be fleshed out as the term progresses, but for now it has project due dates.
Project 1 (4 weeks): The first project is assigned by the instructor, and teams are also assigned by the instructor. Note this is really only about 3.5 weeks since it takes half a week to get a team and get started.
Project 2 (5 weeks): The second project is selected by each student team, and the teams are also self-chosen. Projects are due at the end of week 9. Note that this really gives only 4 weeks if you spend a week getting a team and project proposal together.
Week 10 is reserved for in-class demonstrations and presentations.
Footnotes
* It's probably unfair of me to expect everyone to have an equal knowledge of what the difference between Hemingway and Joyce could have to do with exam answers, so here's the explanation. Hemingway is famous for short, simple, direct sentences and paragraphs. Joyce is famous for long, complex, roundabout sentences and paragraphs (and whole books). Simple, direct, clear expression is preferable for exam answers.