CSE 221 :
Software Development Using Components


Description

Component-based software from client programmer's perspective; intellectual foundations of software engineering; mathematical modeling; specification of object-oriented components; layering; testing and debugging layered operations.

Level and Credits

Prerequisites

Quarters Offered

General Information, Exclusions, etc.

Objectives



Texts

Sequence of Topics and Activities (Approximate)


Lecture/Activity Closed Lab Lab Assignment Due
Week of 9/21
Course introduction; sample C++ programs with I/O

No Closed Lab
 
Week of 9/28
Client view of component type; client view of component operations; Text component

Resolve/C++
 Lab 1: Home page
Week of 10/5
Global operations; Super Text

1st Text operation

Lab 2: 2nd Text operation
Week of 10/12
Emacs & Unix; Id_Name_Table component; Remove_First_Word spec day

Supervised work on lab 3

Lab 3: Remaining Super Text operations
Week of 10/19
Iteration; encryption

Implementing an Id_Name_Table operation

Lab 4: Remove_First_Word
Week of 10/26
Testing; midterm exam; debugging

Testing

Week of 11/2
Recursion; Natural Number component

Debugging

Lab 5: File encryption/decryption
Week of 11/9
Fast powering, Extends relation

Implementing a Natural_Number operation

Lab 6: Recursive implementations of Text operation
Week of 11/16
Interval halving, templates

Implementing a Natural_Number extension

Lab 7: Natural_Number calculator part 1
Week of 11/23
Mathematical functions

Using templates

Week of 11/30
Performance analysis; review for final exam

Supervised work on lab 8

Lab 8: Natural_Number calculator part 2   and Nice_Display part 2

Lab Assignments

  1. Home page
  2. Text operation
  3. More Text operations
  4. Remove_First_Word
  5. File encryption/decryption
  6. Recursive implementations of Text operation
  7. Natural_Number calculator part 1
  8. Natural_Number calculator part 2 and Nice_Display part 2

Grading Plan

Midterm Exam 18%
Final Exam 30%
Homework Assignments 5% (total of many)
Closed Lab Assignments 8% (8@ 1% each)
Lab Assignments 23% (1@ 2%, 7@ 3% each)
In-Class Activities 16%

Important Note: A passing grade on the final exam is required in order to receive a passing grade for the course.