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