Link to approximate location of current lecture

 

YOU'RE HERE! Welcome to the Syllabus and Home Page for. . .


Object Oriented Software Engineering
COMPUTER ENGINEERING CPR E 486
FALL 2004, Tu & Th 12:40-2:00, in Lagomarcino Hall E164 (not E0164)
Catalog listing; Course schedule listing

Approvals (as of 8/23/00):
    (1) COMPE elective for the CPRE bachelor's degree.
    (2) Graduate credit for non-computer engineering students.

Course description: Software engineering emphasizing object oriented analysis and design. An iterative life cycle, the Unified Process, is followed in the textbook and in the course. A term project is developed throughout the semester and follows the topics covered in class and in the textbook.

Textbooks and references:
1.      Required: Applying UML and Patterns, second edition. By Craig Larman, copyright 2002, Prentice-Hall. (Note to instructor.)
2.   Full UML description is available at http://www.omg.org/technology/documents/formal/uml.htm.
3.      Required: A book that can answer your questions on the Java programming language. Here are some links to Java info:

Coordinator and instructor: Daniel Berleant

  1. Email: berleant@iastate.edu
  2. Office phone: (515) 294-3959 (on campus, 4-3959)
  3. Mail: Electrical and Computer Engineering, Coover Hall 2215, Iowa State University, Ames, IA 50011
  4. Office location: Coover Hall Rm. 3215
  5. Office hours: Tuesday and Thursday 4-5 and by appointment

  1. Teaching assistant: Lifeng Zhang
  2. Email address: zlfpeak@iastate.edu
  3. Office location: ALC (Learning Center, 1st floor of Coover), village A, cubicle 4
  4. Office hours: Monday 2:30-3:45, Tuesday 4:30-5:30, and Wednesday 1:00-3:45

Course Objectives:

  1. Ability to develop software in Java
  2. Familiarity with the Unified Process software development model.
  3. Iterative development of a project, emphasizing object-oriented analysis and design aspects.
  4. Team experience in object oriented analysis and design.
Prerequisites: CprE 308 and Com S 309.  

Topics Covered (and approximate lecture time):

Part 1 of course: Introduction to Java
8/24/04
, Tu, session 1: Java introduction; Java and C – some similarities; Output to the screen; I/O with files and URLs; Advanced reading
HOMEWORK
#1: "Hello World" due next time
HOMEWORK
#2: the problem of accountability in team projects
8/26/04
, Th, session 2: Strings; alternate strings notes; Example strings program; Inheritance.
To prepare, read the inheritance lecture notes; to review, do this exercise on inheritance, solution (estimated study time: 1 hour or less)
8/31/04
, Tu, session 3: Arrays ; Study notes on arrays
; An illustrative program;
Interfaces; Example
HOMEWORK
 #3: Objects, classes and inheritance, and interfaces and partial solution (offline)
9/2/04, Th, session 4: Demonstration on throwing exceptions; some exception handling review notes;
Event handling and GUI introduction (non-applet version)
9/7/04
, Tu, session 5: GUI constructs and example program (AWT-based);
GUI constructs and example program (swing-based); lecture notes on GUI constructs
HOMEWORK
#4: GUI component demo

Part 2 of course: The Unified Process
9/9/04
, Th, session 6: An overview of OO analysis and design
9/14/04
, Tu, session 7: Java test
9/16/04
, Th, session 8: Team building exercise 
9/21/04
, Tu, session 9: An overview of the Unified Process
HOMEWORK #5:  Due NEXT TIME
9/23/04
, Th, session 10: Case study, inception, and requirements
HOMEWORK 
#6: DUE NEXT TIME and some instructor notes
9/28/04, Tu, session 11: Use Case Modeling 1
HOMEWORK #7: Due Tuesday Oct 5, 2004. Give hard copy (1 per team) of a fully dressed use case model for the "use case diagram" section of the UML editor system. (Use this homework from 2003 to get some outline ideas, also use the textbook and its example e.g. on pp. 50-54.)
9/30/04, Th, session 12: Use Case Modeling 2
10/5/04, Tu, session 13: Use Case Modeling 3
HOMEWORK #8: See session 13 (Use Case Modeling 3), last slide
10/7/04
, Th, session 14: Other Requirements
10/12/04
, Tu, session 15: Inception, elaboration, and the transition 
HOMEWORK #9
: using what you know from other classes about planning, make a plan for your own use (not to hand in) and then implement a user interface for the Use Case Diagram Assistant System. Screen shot(s) and printed source code due next Tuesday 10/19/04. Your interface should contain event handler stubs.
10/14/04, Th, session 16: Domain models - introduction; (archive of an old HOMEWORK)
10/19/04, Tu, session 17: More on domain models
10/21/04
, Th, session 18: Contracts; Design intro
HOMEWORK #10: due by class time on Thursday 10/28/04.
10/26/04
, Tu, session 19: GRASP
10/28/04, Th, session 20: Design Patterns; the cohesion and coupling patterns
HOMEWORK #11: due by class time on Thursday 11/4/04
11/2/04
, Tu, session 21: Use-Case Realizations
11/4/04
, Th, session 22: Realizing init and UI; visibility
HOMEWORK #12: small assignment due next time
11/9/04
, Tu, session 23: Design Class Diagrams; old HOMEWORK
11/11/04
, Th, session 24: More GRASP Patterns 
HOMEWORK #13: 2nd implementation
11/16/04,
Tu, session 25: Some GoF design patterns; Strategy pattern in more detail
11/18/04,
Th, session 26: GoF Composite Pattern 
THANKSGIVING BREAK
11/30/04
, session 27:  Logical architecture; GoF Facade Pattern
HOMEWORK #14: (Small, but due in two days; this will give a week left to study patterns
12/2/04, session 28: Architectural analysis     
12/7/04
, session 29: Review of some key points

- Future sessions and assignments, below, will all be modernized and improved by class time-

12/9/04, session 30: Design patterns test; study sessions 19, 20, 24, 25, & 26

supplementary lecture material:  More on domain sub/superclasses and the domain model; More on associations; statecharts; More architecture; review;  Observer Pattern; domain sub/superclasses
Old HOMEWORK a; HOMEWORK b; HOMEWORK c; HOMEWORK d
 

Homeworks:
·       Homework assignments will be given early in the semester and, as needed, later to enhance learning. The emphasis will be on incremental development of a project.

Project:
·        A project will be done throughout the semester in teams of 3-4. 
·        Each team will work on its own version of a course registration system.

Exams and quizzes:

·     Exams and quizzes will be occasional but studying for tests will not be a major focus of the course.

Assignments, Exams, Grading…:
·  Latest available grades; here are last year's details (to be updated for this year by lecture time) for HW n; for HW n+1; for HW n+2; for HW n+4; for HW n+6; for HW n+7; and for HW n+8
·  Minimum grade on any quiz or assignment will be 50%
·  Grades on team assignments may be adjusted to reflect individual contributions
·  Semester project. This will be the focus of work throughout the semester. As parts are done, grades will be assigned to those parts.
·  The individual team assignments will be graded in accordance with the following process

a.   Grades will be assigned based on the overall quality of the product. To do this, all assignments in a given category and a team size of 3 will be ordered from highest to lowest. The highest project will be assigned a grade based on instructor or TA  judgement, and the lowest will be assigned a grade similarly. Projects that are between the highest and lowest will get grades based on interpolating between the grades of the highest and lowest.

b.   For teams of size 4, the same process will occur, except that the standards will be higher to reflect the larger team.

c.   Grades will be adjusted for each member of a team based on an average of effort and contribution as assessed by others on the team. Assessments above the average for a team will lead to an individual grade higher than the project grade, and assessments below the average for at team will lead to an individual grade lower than the project grade. 

·  Letter grades in the course will be assigned as follows:
A                  (95-100%), plus enough additional students to make up at least 25% of the class
A- or higher  (90-95%)
B+ or higher  (86.67-90%)
B   or higher  (83.33-86.67%)
B-  or higher  (80-83.33%)
C+ or higher  (76.67-80%)
C   or higher  (73.33-76.67%)
C-  or higher  (70-73.33%)
D+ or higher  (66.67-70%
D   or higher  (63.33-66.67%)
D-  or higher  (60-63.33%)
F    or higher  (50-60%)
If your grade is ambiguous (e.g. exactly 90%) you will get the higher one.  
·  Lateness policy: 10% reduction in the grade on any assignment handed in up to 1 week late. 30% reduction in grade on any assignment handed in more than 1 week late.
 

Special Accomodations:

Any student who may need an accommodation based on the impact of a disability should contact me privately. It would be good to also contact the Disability Resources Office at 515-294-6624 in room 1076, Student Services Building or email the office at awoniyib@iastate.edu <mailto:awoniyib@iastate.edu> to help coordinate reasonable accommodations for this and other courses.