CSE 321:
Case Studies in Component-Based Software


Description

Case studies using tree, tokenizing, parsing, and code generating components; context-free grammars; sorting components and sorting algorithms; design of software components.

Level and Credits

Prerequisites

Quarters Offered

General Information, Exclusions, etc.

Objectives

Sequence of Topics and Activities (Approximate)

Monday-Tuesday-Wednesday
(lecture/activity days)
Friday
(closed lab day)
Lab assignment due at midnight
Week of 1/2
Course introduction; Sorting_Machine, sorting algorithms, Sorting_Machine implementation
Sorting_Machine with quicksort  
Week of 1/9
Heapsort; Project intro
BugsWorld contest  
Week of 1/16
Mon. 1/16, no class
Convention/correspondence; Tree
Tree operations Lab 1 due Fri. 1/20: Sorting_Machine with heapsort
Week of 1/23
Statement; Program
Meet in DL 480 - no closed lab  
Week of 1/30
Context-free grammars; Recursive descent parsing
Program kernel and pretty print Lab 2 due Fri. 2/3: Statement kernel and pretty print
Week of 2/6
Midterm exam on Tue. 2/7
Recursive descent parsing cont.
Evaluating arithmetic expressions  
Week of 2/13
BL program execution; code generation; BL_Tokenizing_Machine
BL interpreter Lab 3 due Fri. 2/17: Parser for Program/Statement
Week of 2/20
BL_Tokenizing_Machine cont.; Resolve/C++ model of software
Word counter Lab 4 due Wed. 2/22: Code generator for Program
Week of 2/27
Resolve/C++ model of software cont.
Meet in DL 480 - no closed lab Lab 5 due Mon. 2/27: BL_Tokenizing_Machine
Week of 3/5
Mon. 3/5 - Meet in DL 280 for closed lab: Timing of sorting machines
Performance analysis
Meet in DL 480 - Final exam review Lab 6 due Fri. 3/9: New component family and tag cloud generator

Lab Assignments

  1. Heapsort implementation of Sorting_Machine
  2. Implementation of Statement and Pretty_Print
  3. Parser for Program/Statement
  4. Code generator for Program
  5. Implementation of BL_Tokenizing_Machine
  6. New component family and tag cloud generator

Grading Plan

Midterm Exam 20%
Final Exam 30%
Homework Assignments 10% (total of many)
Closed Lab Assignments 8% (8 @ 1% each)
Lab Assignments 30% (6 @ 5% each)
Class Activities/Participation 2%

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

Texts