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 1/4
Course introduction; Sorting_Machine, sorting algorithms, Sorting_Machine implementation
Sorting_Machine with quicksort  
Week of 1/11
Heapsort; Project intro
BugsWorld contest  
Week of 1/18
Mon. 1/18, no class
Convention/correspondence; Tree
Tree operations  
Week of 1/25
Statement; Program
Meet in DL 480 - no closed lab Lab 1 due Mon. 1/25: Sorting_Machine with heapsort
Week of 2/1
Context-free grammars; Recursive descent parsing
Program kernel and pretty print Lab 2 due Fri. 2/5: Statement kernel and pretty print
Week of 2/8
Midterm exam on Tue. 2/9
Recursive descent parsing cont.
Evaluating arithmetic expressions  
Week of 2/15
BL program execution; code generation; BL_Tokenizing_Machine
BL interpreter Lab 3 due Fri. 2/19: Parser for Program/Statement
Week of 2/22
BL_Tokenizing_Machine cont.; Resolve/C++ model of software
Word counter Lab 4 due Tue. 2/23: Code generator for Program
Week of 3/1
Resolve/C++ model of software cont.
Meet in DL 480 - no closed lab Lab 5 due Mon. 3/1: BL_Tokenizing_Machine
Week of 3/8
Mon. 3/8 - 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/12: 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