Penn Courses (Past and Present) Taken by Shirley Cohen


CIS 550: "Database and Information Systems"
Introduction to the theory and practice of database management systems. The Entity-Relationship approach as a modeling tool. The relational model, algebra and calculus. Commercial systems: SQL, Quel and Ingres. Database design and relational normalization. Physical data organization and indexing structures. Updates and integrity: transaction management, concurrency control and recovery techniques. Logic as a data model: Datalog and evaluation techniques. The network model and object oriented approaches.

CIS 650: "Advanced Topics in Databases"
Advanced topics in databases: distributed databases, integrity constraints, failure, concurrency control, relevant relational theory, semantics of data models, the interface between programming of languages and databases. Object-oriented databases. New topics are discussed each year.

CIS 505: "Software Systems"
This course introduces basic concepts and techniques in advanced software systems for first year graduate students in computer science. It provides the students with a background in the design, the implementation and the analysis of experimental systems. The course focuses on distributed systems - systems that distribute state and computation across networked elements. The first part of the course introduces the basics of network and kernel support for building distributed systems. The second part of the course covers the key concepts of interprocess communication and coordination, such as logical clocks and remote procedure call. The third part of the course covers case studies of distributed systems. Students are expected to design, program and analyze software systems.

CIS 511: "Theory of Computation"
Finite automata (deterministic and nondeterministic) regular graphs, regular expressions, regular grammars, (Nerode congruence), the ``pumping lemma'', closure properties. Context-free languages. Standard forms: removal of e-rules, chain rules, reduced grammars. Chomsky Normal Form. Context-free languages as fixed points (Ginsburg and Rose's Theorem). Greibach Normal Form (using Rosenkrantz matrix method). Ogden's Lemma and the``pumping lemma.'' Pushdown automata (PDA's). Equivalence of PDA's and context-free grammars. Brief sketch of top-down and bottom-up (nondeterministic) parsing. Deterministic PDA's. Closure properties. Partial recursive functions. Turing machines and RAM programs. Primitive recursion. Minimization. Equivalence of the models. Church/Turing's thesis. Acceptable Codings. A Universal RAM program. Undecidability of the halting problem. Recursively enumerable sets (RE sets).

CIS 520: "Machine Learning"
This course covers the foundations of statistical machine learning. The focus is on probabilistic and statistical methods for prediction and clustering in high dimensions. Other topics covered include graphical models, dimensionality reduction, neural networks, and reinforcement learning.

CIS 500: "Software Foundations"
This course introduces basic concepts and techniques in the foundational study of programming languages. The central theme is the view of individual programs and whole languages as mathematical objects about which precise claims may be made and proved. Particular topics include operational techniques for formal definition of language features, type systems and type safety properties, polymorphism and subtyping, foundations of object-oriented programming, and mechanisms supporting information hiding and programming in the large.

CIS 501: "Computer Architecture"
This course is an introductory graduate course on computer architecture with an emphasis on a quantitative approach to cost/performance design tradeoffs. The course covers the fundamentals of classical and modern uniprocessor design: performance and cost issues, instruction sets, pipelining, superscalar, out-of-order, and speculative execution mechanisms, caches, physical memory, virtual memory, and I/O. Other topics include: static scheduling, VLIW and EPIC, software speculation, long (SIMD) and short (multimedia) vector execution, multithreading, and an introduction to shared memory multiprocessors.




Back to Home Page of Shirley Cohen