Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
This course is an introduction to the structure and design of compilers. Topics include lexical analysis; syntax analysis; symbol table construction; semantic analysis; syntax-directed translation; and if time permits dataflow analysis, liveness analysis; and register allocation. The emphasis in this course is on the integration of the various parts of a compiler. Each student writes a complete compiler for a small, but substantial, language.
Continuation of CS 561. Topics include UML modeling of relational databases; indexing, both static and dynamic; B-trees and B+-trees; query optimization; concurrency control; and recovery control.
Theory of object-oriented design, classes, interfaces, inheritance hierarchy, and correctness; abstract data types, encapsulation, formal specification with preconditions, postconditions and invariants, and proofs of correctness; object-oriented software, objects and classes, genericity, inheritance, polymorphism, and overloading; single and multiple inheritance, programming by contract, subclassing as subcontract, specification, and verification; programming language examples include C+ +, Java, Smalltalk, and Eiffel.
School: Schaefer School of Engineering & Science
Department: Computer Science
Office Hours:M 4:00-5:15
Th 5:00-6:15
Research & Education
Education
BS in Science and Humanities (math and linguistics)
MSEE in Computer and Information Science U. of PA 1972
PhD in Computer and Information Science U. of PA 1974
Research
- Integrating systems engineering and software engineering
- Critical factors for adoption of successfully developed software
- Development if a Discrete Mathematics concept inventory (NSF sponsored)
- Diversification of the CS undergraduate population