Department of Computer Engineering
and Science
Crawford Hall
Phone 368-2800; Fax 368-2801
Lee White
COMPUTER ENGINEERING
COMPUTER SCIENCE
COMPUTING AND INFORMATION SCIENCES
The availability of inexpensive computing systems has radically altered our way of life and work in many substantive ways. Microcomputers are now part of consumer appliances from microwave ovens, thermostats, and video cassette recorders to automobiles. Through compact disks, electronic music, synthesizers, and movie special effects, computing has even enriched our lives through the arts. Word processors and engineering workstations have increased productivity and provide new opportunities for computational techniques in science, engineering, and social disciplines.
Thus, the study of computer science and engineering provides a student with the opportunity to influence the vitality and direction of many different fields. The Department of Computer Engineering and Science of the Case School of Engineering offers a fully accredited Bachelor of Science in Engineering degree in computer engineering (the nation's first program in this field), a Bachelor of Science in Computer Science degree and a Bachelor of Arts degree in computer science. At the graduate level there are four programs: the Master of Science and the Doctor of Philosophy degrees in computer engineering, and the M.S. and Ph.D. degrees in computing and information sciences.
Lee J. White, Ph.D. (University of Michigan)
Andrew R. Jennings Professor and Chairman
Software engineering; software testing and verification
Randall D. Beer, Ph.D. (Case Western Reserve University)
Assistant Professor
Computational biology; computer simulation of neural control; neural nets and artificial intelligence
George W. Ernst, Ph.D. (Carnegie Institute of Technology)
Associate Professor
Artificial intelligence; program verification
Meral Ozsoyoglu, Ph.D. (University of Alberta, Canada)
Professor
Database systems; knowledge-based systems; data structures
Gultekin Ozsoyoglu, Ph.D. (University of Alberta, Canada)
Professor
Security; file organization; data structures
Andy Podgurski, Ph.D. (University of Massachusetts at Amherst)
Assistant Professor
Semantic analysis of programs; software engineering; software testing and reliability analysis
Christos A. Papachristou, Ph.D. (Johns Hopkins University)
Professor
Computer architecture; VLSI system design; expert systems for CAD; fault tolerant computing; micro-computers
Rochit Rajsuman, Ph.D. (Colorado State University)
Assistant Professor
VLSI systems; design automation; fault tolerant computing; design for testability
Leon S. Sterling, Ph.D. (Australian National University)
Associate Professor
Logic programming; artificial intelligence; knowledge-based systems
Kumar Vadaparty, Ph.D. (Rutgers University)
Assistant Professor
Database systems; object-oriented databases; logic programming
Marcus R. Buchner, Ph.D. (Michigan State University)
Associate Professor of Systems Engineering
Computer simulation; distributed computer control; signal processing
Yoh-Han Pao, Ph.D. (Pennsylvania State University)
Dively Professor of Electrical Engineering
Applied artificial intelligence; pattern recognition; knowledge-based systems
Arvind K. Bansal, Ph.D. (Case Western Reserve University)
Adjunct Assistant Professor
Artificial intelligence, logic programming, parallel processing and computation
Paul J. Drongowski, Ph.D. (University of Utah)
Adjunct Associate Professor
Very-large scale integrated systems, computer architecture, graphics, software engineering, computer-aided design
Both the computer science and computer engineering programs give students a background in computing fundamentals (data structures, logic design, system programming, operating systems, and computer architecture) and a set of essential skills to start them on their way to life-long learning and employment in the field. Computer engineering provides a solid engineering basis and perspective to the fundamentals through courses in systems engineering (computer control and signal processing) and electrical engineering (digital communications, microprocessors, and solid state electronics.) The computer science program explores the formal, mathematical basis of computing and provides more depth while giving students the opportunity to explore the breadth of computing through elective courses. Thus, the difference between computer engineering and computer science is not merely hardware versus software.
The Bachelor of Arts degrees in computer science are liberal arts programs emphasizing basic competence in computing while allowing the student the opportunity to explore the application of computer technology to the social sciences, psychology, philosophy, and other disciplines.
The following two courses are required for a Minor in Computer Engineering:
- EEAP 282 Assembly Language Programming
- ECMP 333 Introduction to Data Structures
A three-course sequence is also required. The Hardware Sequence is:
- ECMP 280 Logic Design of Digital Systems
- ECMP 316 Computer Design
- ECMP 338 Introduction to Operating Systems
or
- ECMP 398 Design Methodology
The Software Sequence is:
- ECMP 337 Systems Programming
- ECMP 338 Introduction to Operating Systems
- ECMP 398 Design Methodology
In addition to these two standard sequences, the student may design his/her own with the approval of the minor adviser.
A student cannot have a major and a minor, or two minors, in both Computer Engineering and Computer Science because of the large overlap in these subjects.
For degrees based on the Case Core, the following three courses are required for a Minor in Computer Science:
- ECMP 333 Introduction to Data Structures
- ECMP 338 introduction to Operating Systems
- CMPS 340 Algorithms and Data Structures
A student must take an additional six credit hours of ECMP or CMPS courses with the exclusion of CMPS 131. MATH 304 (Discrete Mathematics) can be used in place of three of these credit hours because it is a prerequisite for CMPS 340.
For degrees based on the Western Reserve Core, the following four courses are required for a Minor in Computer Science:
- CMPS 131 Elementary Computer Programming
- ECMP 251 Numerical Methods I
- ECMP 333 Introduction to Data Structures
- MATH 125 Mathematics I
- One additional CMPS or ECMP course is also required for this minor.
Bachelor of Arts Degree
FRESHMAN
FALL SEMESTER
CMPS 131, Elementary Computer Programming (3)
MATH 125, Mathematics I (4)
Natural sciences (3)
Social science (3)
Open elective (3)
PHED 101, Physical Education Activities (0)
SPRING SEMESTER
ENGL 150, Expository Writing (3)
MATH 126, Mathematics II (4)
Natural sciences (3)
Social science (3)
Open elective (3)
PHED 102, Physical Education Activities (0)
SOPHOMORE
FALL SEMESTER
MATH 225, Mathematical Models (3)
MATH 304, Discrete Mathematics (3)
ECMP 251, Numerical Method I (3)
EEAP 282, Introduction to Microprocessors (4)
Natural philosophy (3)
SPRING SEMESTER
MATH 201, Linear Algebra (3)
Open elective (3)
ECMP 333, Introduction to Data Structures (4)
Natural philosophy (3)
JUNIOR
FALL SEMESTER
ECMP 337, Systems programming (4)
CMPS 340, Algorithms and Data Structures (3)
ECMP 280, Logic Design of Digital Systems (4)
History and culture (3)(a)
SPRING SEMESTER
ECMP338, Introduction to Operating Systems (4)
CMPS 343, Theoretical Computer Science (3)
STAT 380, Introduction to Probability (3)
CMPS 341, Introduction to Database Systems (3)
History and culture (3)(a)
SENIOR
FALL SEMESTER
CMPS 394, Senior Project I (3)(d)
Literature and arts (3)(a)
Approved elective (3)(c)
Approved elective (3)(c)
Open elective (3)
SPRING SEMESTER
CMPS395, Senior Project II (3)(d)
Literature and arts (3)(a)
Approved elective (3)(c)
Open electives (5)
Hours required for graduation: 120.
a May be taken in Junior or Senior year.
b All requirements must be satisfied per Lambda Core Program
c Approved electives are any course in science or engineering as approved by the student's advisor.
d A two-semester Senior project must be completed under the supervision of a faculty adviser.
Bachelor of Arts Degree
FRESHMAN
FALL SEMESTER
CMPS 131, Elementary Computer Programming (3)
Math 125, Mathematics I (4)
Core science course (3)
Core sequence course (3)
Core sequence course (3)
PHED 101, Physical Education Activities (0)
SPRING SEMESTER
ENGL 150, Expository Writing (3)
MATH 126, Mathematics II (4)
Core science course (3)
Core sequence course (3)
Core sequence course (3)
PHED 102, Physical Education Activities (0)
SOPHOMORE
FALL SEMESTER
EEAP 282, Introduction to Microprocessors (4)
ECMP 251, Numerical Methods I (3)
Core sequence course (3)
Minor sequence course (3)
Open elective (3)
SPRING SEMESTER
ECMP333, Introduction to Data Structures (4)
Core sequence course (3)
Minor sequence course (3)
Open electives (6)
JUNIOR
FALL SEMESTER
ECMP 337, Systems Programming (4)
MATH 304, Discrete Mathematics (3)
Minor sequence course (3)
ECMP 280, Logic Design of Digital Systems (4)
SPRING SEMESTER
ECMP338, Introduction to Operating Systems (4)
CMPS 341, Introduction to Database Systems (3)
Minor sequence course (3)
Open elective (3)
SENIOR
FALL SEMESTER
CMPS 340, Algorithms and Data Structures (3)
Technical elective (3)(a)
Open electives (9)
SPRING SEMESTER
Technical elective (3)(a)
Minor sequence course (3)
Open electives (8)
Hours required for graduation: 120.
a Must be a CMPS, ECMP, MATH or STAT course.
FRESHMAN
FALL SEMESTER
Open elective or humanities/social science (3-0-3)(a),(b)
CHEM 105, Principles of Chemistry I (3-0-3) or
CHEM 107, Properties and Structure of Matter I (3-0-3)
CMPS 131, Elementary Computer Programming (2-2-3)
MATH 121, Calculus for Science and Engineering I (4-0-4)
ENGL 150, Expository Writing (3-0-3)
PHED 101, Physical Education Activities (0-3-0)
Total (15-5-16)
SPRING SEMESTER
Humanities or social science/open (3-0-3)(a),(b)
CHEM 106, Principles of Chemistry II (3-0-3) or
CHEM 108, Properties and Structure of Matter II (3-0-3)
CHEM 113, Principles of Chemistry Laboratory (1-3-2)
MATH 122, Calculus for Science and Engineering II (4-0-4)
PHYS 120, General Physics I (4-0-4)(a)
PHED 102, Physical Education Activities (0-3-0)
Total (15-6-16)
SOPHOMORE
FALL SEMESTER
MATH 304, Discrete Mathematics (3-0-3)
MATH 223, Calculus for Science and Engineering III (3-0-3)
PHYS 219, General Physics II (4-0-4)
ECMP 251, Numerical Methods I (2-2-3)
EEAP 282, Introduction to Microprocessors (3-2-4)
Total (15-4-17)
SPRING SEMESTER
Humanities/Social Science (3-0-3)
MATH 224, Elementary Differential Equations (3-0-3)
PHYS 220, General Physics III (3-0-3)
ECMP 333, Introduction to Data Structures (3-2-4)
Math elective (3-0-3)(c)
Total (15-2-16)
JUNIOR
FALL SEMESTER
Humanities/social science (3-0-3)
ECMP 337, Systems Programming (3-2-4)
CMPS 340, Algorithms and Data Structures (3-0-3)
ECMP 280, Logic Design of Digital Systems (3-2-4)
Technical elective (3-0-3)(d)
Total (15-4-17)
SPRING SEMESTER
Humanities/social science (3-0-3)
Humanities/social science (3-0-3)
Technical elective (3-0-3)(d)
ECMP 338, Introduction to Operating Systems (3-2-4)
CMPS 343, Theoretical Computer Science (3-0-3)
Total (15-2-16)
SENIOR
FALL SEMESTER
Humanities/social science (3-0-3)
Technical elective (3-0-3)(d)
Technical elective (3-0-3)(d)
Open elective (3-0-3)
Open elective (3-0-3)
Total (15-0-15)
SPRING SEMESTER
Humanities/social science (3-0-3)
Technical elective (3-0-3)(d)
Technical elective (3-0-3)(d)
Open elective (3-0-3)
Open elective (2-0-2)
Total (14-0-14)
Hours required for graduation: 127
a Selected students may be invited to take PHYS 125, 126, Physics and Frontiers I and II, in place of an open elective and PHYS 120.
b One of these must be humanities/social science and the other is an open elective.
c Either MATH 201, Introduction to Linear Algebra, or STAT 380, Introduction to Probability.
d Three technical electives must be CMPS of ECMP courses. The other three technical electives must form a concentration in either computing of some other technical area.
Bachelor of Science in Engineering Degree
FRESHMAN
FALL SEMESTER
Open elective or humanities/social science (3-0-3)(a),(b)
CHEM 105, Principles of Chemistry I (3-0-3) or
CHEM 107, Properties and Structure of Matter I (3-0-3)
CMPS 131, Elementary Computer Programming (2-2-3)
MATH 121, Calculus for Science and Engineering I (4-0-4)
ENGL 150, Expository Writing (3-0-3)
PHED 101, Physical Education Activities (0-3-0)
Total (15-5-16)
SPRING SEMESTER
Humanities or social science/open (3-0-3)(a),(b)
CHEM 106, Principles of Chemistry II (3-0-3) or
CHEM 108, Properties and Structure of Matter II (3-0-3)
CHEM 113, Principles of Chemistry Laboratory (1-3-2)
MATH 122, Calculus for Science and Engineering II (4-0-4)
PHYS 120, General Physics I (4-0-4)(a)
PHED 102, Physical Education Activities (0-3-0)
Total (15-6-16)
SOPHOMORE
FALL SEMESTER
Humanities/Social Science Sequence I (3-0-3)
MATH 223, Calculus for Science and Engineering III (3-0-3)
PHYS 219, General Physics II (4-0-4)
ECMP 251, Numerical Methods I (2-2-3)(c)
EEAP 282, Introduction to Microprocessors (3-2-4)
Total (15-4-17)
SPRING SEMESTER
Humanities/Social Science Sequence II (3-0-3)
MATH 224, Elementary Differential Equations (3-0-3)
PHYS 220, General Physics III (3-0-3)
EEAP 240, Electronic Circuits I (3-2-4)(c)
ECMP 333, Introduction to Data Structures (3-2-4)
Total (15-4-17)
JUNIOR
FALL SEMESTER
Humanities/Social Science Sequence III (3-0-3)
ESYS 212, Signals and Systems Analysis (3-0-3)
ECMP 337, Systems Programming (3-2-4)
ECMP 280, Logic Design of Digital Systems (3-2-4)
MATH 304, Discrete Mathematics (3-0-3)
Total (15-4-17)
SPRING SEMESTER
Humanities/Social Science Sequence IV (3-0-3)
Engineering Core Elective (3-0-3)(c)
ECMP 316, Computer Design (3-0-3)
ECMP 317, Computer Design Laboratory (0-4-2)
ECMP 338, Introduction to Operating Systems (3-2-4)
ENGL 398, Professional Communications (2-0-2)
Total (14-6-17)
SENIOR
FALL SEMESTER
Humanities or social science course (3-0-3)
Systems elective (3-0-3)
ECMP 398, Design Methodology (2-2-3)
Approved technical elective (3-0-3)
Engineering core elective (3-0-3)(c)
Total (14-2-15)
SPRING SEMESTER
Humanities/social science elective (3-0-3)
Mathematics elective (3-0-3)
ECMP 399, Computer Engineering Design Project (0-6-3)
Open elective (3-0-3)
Open elective (3-0-3)
Open elective (2-0-2)
Total (14-6-17)
Hours required for graduation: 132 plus graphics proficiency.
a Selected students may be invited to take PHYS 125, 126, Physics and Frontiers I and II, in place of an open elective and PHYS 120.
b One of these courses must be a humanities/social science course.
c Engineering Core
Choose one course from two of the following five groups of courses:
- EMSE 101, Introduction to Materials Science; EMAC 270, Introduction to Polymer Science; EMSE 314, Electrical, Optical, and Magnetic Properties of Materials; or EBME 306, Introduction to Biomedical Materials
- ECHE 360, Transport Phenomena; EMAE 151, Fluid Mechanics; or EEAP 309, Electromagnetic Fields and Energy Conversion I
- EMAE 150, Thermodynamics 1; or EMAC 171, Physical Chemistry for Engineers I
- ECIV 110, Mechanics, or EMAE 181, Dynamics
- EIND 352, Engineering Economics; EIND 250, Production Systems Engineering; or OPRE 345, Decision Theory
Systems Engineering Electives
- ESYS 313, Signals & Systems Analysis II
- ESYS 304, Control Engineering
- ESYS 315, Decision Analysis and Stochastic Models
- ESYS 322, Simulation Laboratory
- ESYS 346, Engineering Optimization
Mathematics Elective
- STAT 333, Uncertainty in Engineering and Science
- STAT 380, Introduction to Probability
- STAT 385, Statistical Methods
- STAT 485, Probability and Statistics in Engineering and Science
Approved Technical Elective
Course to be selected with the guidance of the departmental adviser.
The programs in computer engineering and computing and information sciences are similar in that they each require a strong background in both computer hardware and software, as well as a substantial amount of "hands-on," experience. The programs differ in that engineering is based mainly in physical sciences, while computer science is more strongly based in mathematical sciences as applied to more abstract notions such as properties of programming languages, analysis of algorithms, complexity considerations, and proof of correctness. The department believes that the success of its graduates at all levels is largely due to the emphasis on project and problem-oriented course material coupled with the broad-based curricular requirements.
Doctoral dissertations must be original contributions to the existing body of knowledge in computer engineering and science.
Applied Artificial Intelligence
This research applies techniques of artificial intelligence and pattern recognition to real-world problems. Some of the application areas are power system security, analysis of faults in the NATO communication network, program verification, and robotics. The study of particular applications such as these increases understanding of knowledge-based systems and other kinds of expert systems.
Design Methodologies and Design Automation
This research area is concerned with the development of behavioral and structural level design methodologies and tools for the creation of VLSI-based systems and for multiple-processor architectures. Central to this work is the continued development of a third-generation design automation system for VLSI.
Database Systems
This research area focuses on performance issues in relational databases, database query processing and distributed database query processing, file allocation in distributed databases, database design, object-oriented databases, statistical database security problems, and relational interfaces for non-relational databases.
Distributed Computing
This research area includes the design and synthesis of minicomputer networks; the design of distributed intelligence data acquisition and control systems; the design and synthesis of microprocessor-based instrumentation and control modules for line-sharing environments; and the study of operating systems issues arising from distributed intelligence including interprocess communications, database management, recovery and graceful degradation, throughput and response time, and security.
Software Design, Testing and Reliability
There is research in a number of phases of software development. Research in software design have provided new methodologies for the specifications and design of software; one approach has successfully utilized the technique of logic programming to develop software by software enhancement. Other research is in the area of assessing or improving the quality of software. One approach is that of software testing to identify and correct defects in the software. Another approach is to use statistical sampling techniques to assess software reliability. Another area of research is that of software reuse, which can considerably improve software productivity.
Program Verification
The goal of this research is to prove that programs meet their specifications. Techniques have been developed which allow the formal specification and verification of concurrent programs in ADA and Modula-2. The development of specification techniques and proof rules for the data abstraction mechanism in ADA has been of particular interest. This research has produced a system for interactively verifying ADA.
Departmental research facilities are based upon an ethernet local area network, which supports a UNIX operating system. This local network allows electronic mail connection to national and international researchers via INTERNET. The department has about forty SUN workstations, including a number of color graphics display workstations. There are two general purpose file servers to provide file capabilities for these graduate student and research workstations, with a capacity of over 2.5 Gigabytes.
An NSF equipment grant has provided additional specialized equipment for the data-base and logic programming groups. This consists of six SUN workstations, together with a file server facility with 840 Megabyte capacity. This facility is used for database and logic programming research projects.
Department members also have access to the facilities of the Center for Automation and Intelligent Systems Research (CAISR). These facilities include a number of workstations, and access to robots and other control devices.
In addition, there is an undergraduate laboratory which consists of four SUN workstations, a MacIntosh computer, and a 300 Megabyte file-server.
The departmental administrative support is provided with four MacIntosh SE computers, connected to an Appletalk network with a laser printer. This network is in turn connected to the ethernet network, so that files and papers can be sent back and forth between these two networks.
Undergraduate computer engineering and science instruction is largely provided by the Smith Laboratory. This facility consists of a number of Hewlett-Packard Vectra P-C microcomputers, Macintosh II microcomputers, and Vaxstations running both VMS and UNIX.
A departmental library contains technical reports from many other universities in the U.S. and Canada. There are also additional proceedings and textbooks, together with departmental M.Sc. theses and Ph.D. dissertations.
ECMP 251. Numerical Methods I (3).
Introduction to basic concepts and algorithms used in the numerical solution of common problems including solving non-linear equations, solving systems of linear equations, interpolation, fitting curves to data, integration and solving ordinary differential equations. Computational error and the efficiency of various numerical methods are discussed in some detail. Most homework requires the implementation of numerical methods on a computer. Prerequisites: MATH 122 and CMPS 131.
ECMP 280. Logic Design of Digital Systems (4).
Introduction to logic circuits; switching algebra and functions; combinational gates and circuits; logic synthesis and sequential circuits design; finite state machines; semiconductor LSI/VLSI logic design; technology mapping; design for testability. Prerequisite: CMPS 131; Corequisite: ECMP 282.
ECMP 282. Introduction to Microprocessors (4).
(Also listed as EEAP 282.) Programming a particular microprocessor in its assembly language. Instruction set; addressing modes; indexing; subroutines and parameter passing; stack operations. Representation of numbers and characters; Macro code and conditional assembly; interrupt handling; I/O programming and exception processing. Laboratory. Prerequisite: CMPS 131.
ECMP 316. Computer Design (3).
Design of computer hardware and its relationship to implementation technology. Modelling of computer systems at architectural, organization, and logic levels; processor and memory designs; basic MOS digital circuit design, simulation and layout; engineering tradeoffs in speed, space, packaging, and power; diagnostic programs; testing, design for testability. Prerequisites: ECMP 280 or consent of instructor.
ECMP 317. Computer Design Lab (2).
Sequence of laboratory projects provide practical experience in computer-aided design techniques for computer and digital system design. Hardware systems modelled and simulated at register transfer and switching transistor level. Students fully document laboratory assignments in conjunction with ENGL 398, Professional Communications. Prerequisite: ECMP 280 and 282. Corequisites: ECMP 316 and ENGL 398.
ECMP 333. Introduction to Data Structures (4).
The programming language PASCAL; pointers, files, variant records, and recursion. Representation and manipulation of data: one-way and circular linked lists, doubly linked lists; the available space list. Different representations of stacks and queues. Representation of binary trees, trees and graphs. Garbage collection; searching and sorting. Laboratory. Prerequisite: CMPS 131.
ECMP 337. Systems Programming (4).
Lexical analyzers; symbol tables and their searching; assemblers, one-pass and two-pass, conditional assembly, and macros; linkers and loaders; interpreters; p-codes, threaded-codes; introduction to compilation, grammar, parsing, and code generation; preprocessors; text editors, line-oriented and screen oriented; boot-strap loaders, ROM monitors, interrupts, and device drivers. Laboratory. Prerequisite: ECMP 282 and 333.
ECMP 338. Introduction to Operating Systems (4).
CPU scheduling, memory management, concurrent processes, semaphores, monitors, deadlocks, secondary storage management, file systems, protection, UNIX operating system. Prerequisite: ECMP 282 and 337.
ECMP 352. Numerical Methods II (3).
Numerical solution of differential equations. Linear programming. Curve and surface fitting. Numerical solution of elliptic and parabolic boundary value problems. Introduction to optimization techniques. Laboratory. Prerequisite: ECMP 251.
ECMP 396. Special Topics in Computer Engineering (credit as arranged).
ECMP 397. Special Topics in Computer Engineering (credit as arranged).
ECMP 398. Design Methodology (3).
Issues in development of software /hardware. Use and development of computer-manipulatable notations, based on discrete mathematics, in specification, design and construction of systems. Integrated design environments; test-beds, high-level debuggers, simulators, rapid prototyping facilities, verification tools, and version control tools. Prerequisite: ECMP 337.
ECMP 399. Computer Engineering Design Project (3).
Capstone course for computer engineering seniors. Material from previous and concurrent courses used to solve hardware and/or software design problems. Formal presentations of the projects scheduled during last week of classes. Prerequisite: ECMP 398.
ECMP 420. Computer Systems Architecture (3).
Interaction between computer systems hardware and operating systems; I/O systems; virtual machines; distributed intelligence. Examples taken from existing computer systems. Prerequisite: ECMP 316 and 338.
ECMP 423. Principles of Operating Systems (3).
Various types of operating systems. Concurrent processes, mutual exclusion, process cooperation, deadlocks. Storage management, mapping and binding of addresses, virtual memory systems, job and process scheduling. Queuing models for performance evaluation. Examples from several operating systems. Prerequisite: ECMP 338.
ECMP 424. Advanced Computer Systems Architecture (3).
Organization and operation of multiprocessors, array and associative processors, and pipelined vector computers. Outstanding examples in each category analyzed; programming and operating system issues. Methods for description, modelling evaluation, and synthesis of computing systems. Term papers and presentations. Prerequisites: ECMP 420 and 423, or consent of instructor.
ECMP 431. Software Engineering (3).
Design of software systems working from specifications; top down decomposition using stepwise refinements, structured programming techniques. Levels of abstractions in flow of control and data structures. Use of object-oriented paradigms in design and programming. Use of software testing, reliability and metrics for assessing software quality. Homework involves working in teams on large software projects. Prerequisite: ECMP 337.
ECMP 432. Compiler Construction (3).
Top-down and bottom-up recognizers for context-free grammars; LR(k) parsers, error recovery, semantic analysis, storage allocation for block structured languages, optimization, code generation. Homework involves writing a compiler for a block structured language. Prerequisite: ECMP 337.
ECMP 470. Seminar in Computer Engineering (3).
Topics vary.
ECMP 471. Seminar in Computer Engineering (3).
Topics vary.
ECMP 472. Seminar in Computer Engineering (3).
Topics vary.
ECMP 484. Adaptive Pattern Recognition and Neural Networks (3).
(Also listed as EEAP 484).
This course introduces and relates the basic concepts of pattern recognition and neural networks. A current and coherent view of pattern recognition: adaptive pattern recognition implemented in neural networks which are elemental processors connected like their biological models. Focus is on the generic issues of algorithms with insights provided by current research; dealing with structure in patterns; dynamics of neural networks: degrees of belief; concept of neural controllers; integration of symbolic processing with neural network processing. Prerequisite: Consent of instructor or graduate standing.
ECMP 485. VLSI Systems (3).
Basic MOSFET models, inverters, steering logic, the silicon gate nMOS process, design rules, basic design structures (e.g., nand and nor gates, PLA, ROM, RAM), design methodology and tools (Spice, N.mPc, Caesar, mkpla), VLSI technology and system architecture. Requires project and student presentations. Laboratory. Prerequisite: ECMP 316.
ECMP 486. Design Automation of Digital Systems (3).
Research topics in VLSI systems such as non-von Neumann computer architecture, hardware description languages, computer-aided design tools, design validation and testing. Requires term project and class presentation. Laboratory. Prerequisite: ECMP 485.
ECMP 491. Intelligent Systems I (3).
(Also listed as EEAP 491.) Artificial intelligence and programming techniques used in design and implementation of intelligent systems. Problem solving and game playing by computer; different representation of problems and games and their associated solution methods. Knowledge representation: logic, semantic networks frames. Introduction to Resolution Theorem Proving. Programming in LISP. Prerequisite: CMPS 131.
ECMP 531. Advanced Topics in Compiler Construction (3).
Compiler generators, attribute grammar, flow analysis, global optimization. Declarative languages for code generation. Prerequisite: ECMP 432.
ECMP 570. Seminar in Computer Engineering (3).
Topics vary.
ECMP 571. Seminar in Computer Engineering (3).
Topics vary.
ECMP 572. Seminar in Computer Engineering (3).
Topics vary.
ECMP 591. Intelligent Systems II (3).
(Also listed as EEAP 591.) This course addresses advanced topics in Artificial Intelligence including game playing, planning, understanding, natural language processing and learning. There is also emphasis on the role of memory in planning and in task performance. The role of neural-net computing (or connectionist models) is also examined. Prerequisite: ECMP 491.
ECMP 601. Independent Study in Computer Engineering (credit as arranged).
ECMP 602. Advanced Project Laboratory (credit as arranged 1-6 hrs.).
ECMP 651. M.S. Thesis (credit as arranged).
ECMP 701. Ph.D. Dissertation (credit as arranged).
CMPS 130. Introduction to Computer Science (1).
Techniques and concepts in computing; introduction to data and control structures of high-level programming languages; application to problem-solving. Laboratory. Note: Credit for CMPS 131 can be obtained in addition to this course.
CMPS 131. Elementary Computer Programming (3).
Techniques and concepts of computing. Basic data and control structures available in high-level programming languages. Experience in using these tools to solve problems. Laboratory. Prerequisite: Three years of high school mathematics.
CMPS 329. Design of Object-Oriented Systems (3).
(Also listed as MIDS 329.).
This course provides an opportunity to gain an understanding of the concepts and technology of object-oriented systems and learn system design techniques that take full advantage of this technology. Students also develop competence in programming in C++ and using object-oriented databases. Prerequisite: Ability to program in C and consent of the instructor.
CMPS 340. Algorithms and Data Structures (3).
Efficient sorting algorithms, external sorting methods, internal and external searching, efficient string processing algorithms, geometric and graph algorithms. Prerequisites: ECMP 333 and MATH 304.
CMPS 341. Introduction to Database Systems (3).
File organization techniques; indexed files; hashed files: B-tree files; differential files; secondary indexing; multiattribute retrieval, database architectures; network, hierarchical and relational databases, relational calculus and algebra; commercial database languages; SQL; QUEL; QBE. Prerequisite: ECMP 333.
CMPS 343. Introduction to Theoretical Computer Science (3).
(Also listed as MATH 343) Mathematical logic, different classes of automata and their correspondence to different classes of formal languages, recursive functions, computability, assertions and program verification, denotational semantics. Prerequisites: MATH 304 and CMPS 340.
CMPS 391. Introduction to Artificial Intelligence (3).
Expressing knowledge using rules, reasoning with rule-based systems, forward chaining, backward chaining, limitations of rule-based systems, Prolog and expert system shells, case studies in expert systems. Prerequisite: CMPS 131.
CMPS 394. Senior Project I (3).
Material from previous and concurrent courses used in the design and implementation of a computer system. Formal presentation of project is required. Prerequisite: Consent of instructor.
CMPS395. Senior Project II (3).
Continuation of CMPS 394. Prerequisite: CMPS 394.
CMPS 396. Special Topics in Computer Science (credit as arranged).
CMPS 397. Special Topics in Computer Science (credit as arranged).
CMPS 403. Programming Language Concepts (3).
A systematic exposition of fundamental concepts and general principle of modern programming languages. Syntax, semantics, names and locations, block structure, binding, abstract data types. Prerequisite: ECMP 333.
CMPS 405. Data Structures and File Management (3).
Fundamental concepts: sequential allocation, linked allocation, lists, trees, graphs, internal sorting, external sorting, sequential-, binary-, interpolation-search, hashing, files. Single-key retrieval; sequential files, indexed files, multiple-level index structures, B-trees, hashed files. Multiple attribute retrieval; inverted files, multilists, multiple-key hashing. Introduction to data bases and data models. Prerequisites: MATH 304 and ECMP 333 or consent of instructor.
CMPS 411. Introduction to Logic Programming (3).
Basic constructs of logic programs - terms, facts, rules, queries. Logic programs for manipulating recursive data structures. Unification and the logic programming computation model. How Prolog realizes the abstract computational model. Arithmetic, structure inspection, meta-logical and extralogical techniques in Prolog. Advanced programming techniques: non-determinism, difference structures, meta-interpreters. Applications. Prerequisite: ECMP 333.
CMPS 425. Computer Communication Networks (3).
Concepts of data communication-transmission media, modulation schemes, how far, how fast. The OSI reference model and communication protocols - link, interprocess, and service level protocols; network architectures. Case studies including ARPANET, ETHERNET, and DECNET. Prerequisite: ECMP 338.
CMPS 428. Advanced Topics in Operating Systems (3).
Various design problems in the implementation of operating systems. Both mathematical theory and practical algorithms. Resource management, deadlock detection and avoidance, concurrent process communication and synchronization, process scheduling, input/output queue scheduling, and multiprogrammed memory management. Prerequisites: ECMP 423 and STAT 380.
CMPS 433. Database Systems (3).
Basic issues in file processing and database management systems. Physical data organization. Relational, hierarchical, and network data models. Query languages and query processing. Database integrity and security. Concurrent operations on the database. Case studies of important database management systems. Prerequisites: MATH 304 and ECMP 333.
CMPS 440. Automata and Formal Languages (3).
(Also listed as MATH 410). Finite automata, Turing and Post machines, and pushdown automata. The languages generated, accepted, and decided by these machines. Closure properties. Decidability and undecidability. Regular expressions. Right linear, unrestricted, and context-free grammers. Prerequisite: MATH 304 or consent of instructor.
CMPS 441. Program Verification (3).
Formal specification for programs. Complete axiomization of a real programming language like PASCAL. Mechanical generation of verification conditions for programs with formal specifications. The semantics of programming language. The processing of abstract data types in Modula together with their formal specification and verification. Computer-aided techniques for verification. Prerequisites: ECMP 333 and MATH 304.
CMPS 443. Introduction to Logic and Computability (3).
Mathematical logic from the computer science point of view; grammar and language; propositional calculus; predicate calculus; Turing machines; unsolvable problems. Applications of undecidability results are used to establish Godel's incompleteness theorem. Prerequisite: MATH 304.
CMPS 454. Analysis of Algorithms (3).
Presents and analyzes a number of efficient algorithms. Problems selected from such problem domains as sorting, searching, set manipulation, graph algorithms, matrix operations, polynomial manipulation, and fast Fourier transforms. Teaches, through specific examples and general techniques, how to design efficient algorithms, as well as how to analyze the efficiency of particular algorithms. Discusses certain important problems for which no efficient algorithms are known (NP-complete problems) to illustrate the intrinsic difficulty which can sometimes preclude efficient algorithmic solutions. Prerequisites: MATH 304 and either CMPS 340 or CMPS 405.
CMPS 466. Computer Graphics (3).
Theory and practice of computer graphics: object and environment representation including coordinate transformations, image extraction including perspective, hidden surface, and shading algorithms. Covers a wide range of graphic display devices and systems, with emphasis on interactive shaded graphics. Laboratory. Prerequisite: ECMP 337.
CMPS 470. Seminar in Computer Science (3).
Topics vary.
CMPS 471. Seminar in Computer Science (3).
Topics vary.
CMPS 472. Seminar in Computer Science (3).
Topics vary.
CMPS 478. Computational Neuroscience (3).
(Also listed as BIOL 378/478; EBME 478; NEUR 478.) Computational properties of nervous systems. Modeling and simulation of neurobiological systems. Cable theory. Passive and active compartmental modeling. Numerical integration methods. Simulation tools. Models of neuronal development, plasticity, and learning. Models of small neural circuits. Neuronal dynamics. Models of brain systems. Relationship to simplified neural networks. Prerequisite: consent of instructor.
CMPS 479. Seminar in Computational Neuroscience (3).
(Also listed as BIOL 479, EBME 479, and NEUR 479.) Research topics in computational neuroscience. Topics vary from year to year. Course consists of group discussions of classic and recent papers in the field and a computer project. Prerequisite: CMPS 478 or consent of instructor.
CMPS 541. Mathematical Linguistics (3).
Basic theory of finite state and context-free languages. Efficient general parsing schemes. Parsing techniques for LL(k) and LR(k) grammars. Transformational grammars and attribute grammars. Prerequisite: MATH 304.
CMPS 570. Seminar in Computer Science (3).
Topics vary.
CMPS 571. Seminar in Database Theory (3).
Dependency theory. Functional, multivalued, template, and join dependencies. Normal forms. Theory of nonfirst normal form relations. Database logic. Extended relational algebra/calculus. Query optimization. Expert database systems. CAD/CAM databases. Theoretical issues in recovery and distributed databases. Prerequisite: CMPS 433 or consent of instructor.
CMPS 572. Seminar in Computer Science (3).
Topics vary.
CMPS 574. Advanced Seminar in Computer Systems Design (3).
A group study project concentrating on the design of a specific advanced computer system. System varies from year to year. Responsibility for specific subtopic is assigned to each student. Prerequisite: ECMP 420 or 423.
CMPS 601. Independent Study in Computer Science (credit as arranged).
CMPS 602. Advanced Projects Laboratory (credit as arranged 1-6 hrs.).
CMPS 651. M.S. Thesis (credit as arranged).
CMPS 701. Ph.D. Dissertation (credit as arranged).
CWRU Provost's Office --
About this server
-- Copyright 1996 CWRU
-- Unauthorized use prohibited
|