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 6/16
Course introduction; sample C++ programs with I/O; client view of component type; client view of component operations

No Closed Lab
 
Week of 6/23
Text component; global operations

Resolve/C++
 Lab 1: Home page
Week of 6/30
Super Text; EMACS and Unix day

1st Text operation

Lab 2: 2nd Text operation
Week of 7/7
Id_Name_Table component; iteration; Remove_First_Word spec day

Implementing an Id_Name_Table operation

Lab 3: Remaining Super Text operations
Week of 7/14
Testing; debugging; Encryption day

Testing

Lab 4: Remove_First_Word
Week of 7/21
Midterm exam; recursion

Debugging

Week of 7/28
Natural Number component; fast powering, Extends relation

Implementing a Natural_Number operation

Lab 5: File encryption/decryption
Week of 8/4
Interval halving; templates

Implementing a Natural_Number extension

Lab 6: Recursive implementations of Text operation
Week of 8/11
Mathematical functions; performance analysis; Performance day

Using templates

Lab 7: Natural_Number calculator part 1
Week of 8/18
Review for final exam

No Closed Lab

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.