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.

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 6/16
Course introduction; Tree; Sorting_Machine; Sorting algorithms, Sorting_Machine implementation
Tree operations  
Week of 6/23
Heapsort; Project intro
BugsWorld contest  
Week of 6/30
Convention/correspondence; Statement
No class Lab 1 due Tue. 7/1: Sorting_Machine with heapsort
Week of 7/7
Program; Context-free grammars
Program kernel and pretty print Lab 2 due Fri. 7/11: Statement kernel and pretty print
Week of 7/14
Context-free grammars; Recursive descent parsing
Evaluating arithmetic expressions  
Week of 7/21
Midterm exam on Mon. 7/21
BL program execution; code generation
BL interpreter  
Week of 7/28
Code generation; BL_Tokenizing_Machine
Word Counter Lab 3 due Mon. 7/28: Parser for Program/Statement
Lab 4 due Fri. 8/1: Code generator for Program
Week of 8/4
Resolve/C++ Model of Software
TBD Lab 5 due Fri. 8/8: BL_Tokenizing_Machine
Week of 8/11
Component Family design; Abstract and Concrete Kernel; Performance
Timing experiment  
Week of 8/18
Review
Final exam review Lab 6 due Mon. 8/18: 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