Lehigh University
COLLEGE HOME | LEHIGH HOME | SEARCH




   

CSE 109 Systems Programming (4) 

Instructor:  Edwin Kay

Current Catalog Description 
Advanced programming and data structures, including dynamic structures, memory allocation, data organization, symbol tables, hash tables, B-trees, data files. Object-oriented design and implementation of simple assemblers, loaders, interpreters, compilers and translators. Practical methods for implementing medium-scale programs. Prerequisite: CSE 17

Textbook
Savitch, Walter, Absolute C++, 3rd Edition, 2008, Addison Wesley

References 

Course Goals
1. Fluency in writing code in C++.
2. Ability to use of C++ templates.
3. Ability to create subclasses.
4. Ability to use classes to represent abstract data types.
5. Ability to effectively use classes to construct medium-scale software.
6. Ability to process text.

Prerequisites by Topic
1. Top-down design
2. Primitive data types.
3. Repetition and selection.
4. Recursion.
5. Pointer structures
6. Classes.

Major Topics Covered in the Course 
1. Strings and dynamic arrays.
2. Pointers and binary trees.
3. Creating subclasses, virtual functions.
4. Template classes.
5. Elementary parsing.
6. Elementary code generation

Laboratory projects (specify number of weeks on each)
There are eight programming projects, one week per project.

Estimate CSAB Category Content

                                                                      CORE     ADVANCED 
Data Structures                                                   1.0    
Computer Organization and Architecture             0.5 
Algorithms Software Design                                1.0    
Concepts of Programming Languages                  0.5  
 

Oral and Written Communications
Every student is required to submit at least  _0_  written reports (not including exams, tests, quizzes, or commented programs) of typically  __0__ pages and to make  __0___  oral presentations of typically  ___0__  minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.

Social and Ethical Issues
One class is devoted to the issue of what constitutes unfair collaboration on assigned work. Those who do not adhere to the guidelines for doing ones own work are penalized with a lower grade.

Theoretical Content
Concepts of object oriented programming: 15 classes.
Data Structures:   10 classes.
Recursive descent parsing 2 classes

Problem Analysis
Each of the eight programming projects confronts the student with one large problem and a number of smaller problems. The larger problem consists of reducing the problem given in the assignment to one that can be programmed. The smaller problems consist of the determining the algorithms for coding the various C++ functions.

Solution Design
For the last four programming assignments, the students constrict a compiler for a small language. The compiler generates code for a small virtual machine. The overall design of the software is given to the students in the form of the four programming assignments. For each assignment the students must design their own C++ classes for the corresponding abstract data types. They must also design the algorithms for implementing their programs.

 

     
image


©2009 P.C. Rossin College of Engineering & Applied Science
Computer Science & Engineering, Packard Laboratory, Lehigh University, Bethlehem PA 18015