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 3/26
Course introduction; Sorting_Machine, sorting algorithms, Sorting_Machine implementation
Sorting_Machine with quicksort  
Week of 4/2
Heapsort; Project intro
BugsWorld contest  
Week of 4/9
Convention/correspondence; Tree; Statement
Tree operations Lab 1 due Fri. 4/13: Sorting_Machine with heapsort
Week of 4/16
Statement; Program
Program kernel and pretty print  
Week of 4/23
Context-free grammars; recursive descent parsing
Evaluating arithmetic expressions Lab 2 due Wed. 4/25: Statement kernel and pretty print
Week of 4/30
Midterm exam on Mon. 4/30
BL program execution; code generation
BL interpreter  
Week of 5/7
Code generation cont.; BL_Tokenizing_Machine
Word counter Lab 3 due Mon. 5/7: Parser for Program/Statement
Week of 5/14
Resolve/C++ model of software
Meet in DL 480 - no closed lab Lab 4 due Mon. 5/14: Code generator for Program
Week of 5/21
Resolve/C++ model of software cont.
Timing of sorting machines Lab 5 due Mon. 5/21: BL_Tokenizing_Machine
Week of 5/28
Mon. 5/30, no class
Performance analysis
Meet in DL 480 - Final exam review Lab 6 due Fri. 6/1: 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