Case Western Reserve University
General Bulletin
   96-98
a
Past Issues
CWRU Home Page    

Department of Computer Science and Engineering



Computer Engineering

Computer Science

Computing and Information Sciences

507 Olin Building (7071)

phone 368-2800; fax 368-2801

Robert V. Edwards
e-mail: rve2@po.cwru.edu

The availability of inexpensive computing systems has radically altered our way of life and work in many substantive ways. Microprocessors 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. Microcomputers 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.

FACULTY

Randall D. Beer, Ph.D. (Case Western Reserve University)

Associate Professor
Computational biology; computer simulation of neural control; neural nets and artificial intelligence

Joan Carletta, Ph.D. (Case Western Reserve University)

Assistant Professor
Computer architecture; VLSI system design and test; CAD design automation

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
Database systems; security; file organization; data structures

Andy Podgurski, Ph.D. (University of Massachusetts at Amherst)

Associate 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

Danial Saab, Ph.D. (University of Illinois at Champaign-Urbana)

Associate Professor
Computer architecture; VLSI system design and test; CAD design automation

Lee J. White, Ph.D. (University of Michigan)

Andrew R. Jennings Professor
Software engineering; software testing and verification

SECONDARY FACULTY

Marcus R. Buchner, Ph.D. (Michigan State University)

Associate Professor of Systems Engineering
Computer simulation; distributed computer control; signal processing

ADJUNCT FACULTY

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

Marc Kirschenbaum, Ph.D. (Ohio State University)

Adjunct Associate Professor
Logic programming, software engineering

UNDERGRADUATE PROGRAMS

Majors

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.

Minor in Computer Engineering

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

The Software Sequence is:

ECMP 337 Systems Programming

ECMP 338 Introduction to Operating Systems

In addition to these two standard sequences, the student may design his/her own with the approval of the minor advisor.

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.

Minor in Computer Science (for B.S.)

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 four 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.

Minor in Computer Science (for B.A.)

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.

GRADUATE PROGRAMS

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.

RESEARCH

Applied Artificial Intelligence

The active ongoing research in Artificial Intelligence is both basic and applied. The basic research develops large classes of problems, while the applied research produces high quality solutions to particular problems, e.g., an expert system for a particular industrial application. Much of the AI research is coordinated by the Center for Automation and Intelligent Systems Research (CAISR), an interdisciplinary research center at CWRU, which fosters links with related research efforts at the University, such as computer vision and robotics.

Autonomous Agents, Biological Simulation and Robotics

The objective of this research area is to develop robots in a creative way, utilizing theories of autonomous agents and biological simulation, together with innovative use of neural nets for robot control. This research effort is highly interdisciplinary, using faculty and students from Computer Engineering and Science, Biology, Neuroscience and Mechanical Engineering.

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.

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.

FACILITIES

Departmental Computing Resources

Departmental research facilities are based upon a UNIX Operating System utilizing the University CWRUnet. This broadbaud fiber optic network allows the transmission of data, images and video, and other multimedia information. It also allows electronic mail and image connection to national and international researchers via INTERNET and WORLD WIDE WEB. The Department has about forty UNIX workstations, including SUN and Silicon Graphics workstations capable of high-resolution graphics display. There is also a lab of about ten Pentium 133 computers which run a Microsoft NT operating system. There are a number of general purpose file servers to provide file capabilities for these undergraduate and graduate student/research workstations, with a capacity of over 30 Gigabytes.

Several NSF equipment grants have provided additional specialized equipment for the database and multimedia laboratory. This equipment allows research into access of multimedia systems and database systems.

Support by the Silicon Research Corporation and various local industries has made available a number of UNIX workstations and CAD software for VLSI design. This laboratory is currently in use to design testing techniques for digital design.

The Autonomous Robotics Laboratory has been established to conduct research into robotics, autonomous agents and biological simulation. Due to funding from ONR and other sources, there are a number of robots, control systems and workstations.

University Computing Resources

Computer systems all over campus are interconnected by CWRUnet, so that remote logins are possible, even from the student dormitories. Computer facilities for undergraduate instruction is largely provided by the Smith Laboratory, run and supported by the Case School of Engineering. The facility consists of about 70 modern PC's, a number of Macintosh Power PC's and ten SUN Sparc-5 UNIX workstations.

Departmental Library

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.

Computer Engineering (ECMP)

UNDERGRADUATE COURSES

ECMP 251, Numerical Methods, 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.

Prerequisite: CMPS 131 and MATH 122

ECMP 280, Logic Design of Digital Systems, 4

Introduction to logic circuits; switching algebra and functions; combinational gates and circuits; logic synthesis and sequential circuit design; finite state machines; digital electronics; technology mapping; design for testability.

Prerequisite: CMPS 131

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 the implementation technology. Modeling of computer systems at architectural, organization, and logic levels; processor and memory design; basic MOS digital circuit design, simulation and layout; engineering tradeoffs in speed, space, packaging, and power; diagnostic programs; testing, design for testability.

Prerequisite: ECMP 280

ECMP 317, Computer Design Laboratory, 2

Sequence of laboratory projects provide practical experience in computer-aided design techniques for computer and digital system design. Hardware system modeled and simulated at register transfer and switching transistor level. Students fully document laboratory assignments in conjunction with ENGL 398, professional communications.

Prerequisite: ECMP 280

ECMP 333, Introduction to Data Structures, 4

The programming language C++; 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. Hashing; 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 micros; linkers and loaders; interpreters, pcodes, threaded codes; introduction to compilation, grammar, parsing, and code generation; preprocessors; text editors, line-oriented and screen-oriented; bootstrap loaders, ROM monitors, interrupts, and device drivers. Laboratory.

Prerequisite: ECMP 282 and ECMP 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, fork, exec, wait, UNIX System V IPCs, sockets, remote procedure calls, threads. Must be proficient in "C" programming language.

Prerequisite: ECMP 333 and ECMP 337

ECMP 396, Special Topics, 1-36

ECMP 397, Special Topics in Computer Engineering, 1-36

ECMP 398, Design Methodology, 3

Issues in development of software/hardware. Use and development of computer-manipulable 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 revision 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

GRADUATE COURSES

ECMP 420, Computer System Architecture, 3

Interaction between computer systems hardware and software. Pipeline Techniques - Instruction Pipelines - Arithmetic pipelines. Instruction level paralelism. Cache mechanism. I/O structures. Examples taken from existing computer systems.

Prerequisite: ECMP 338

ECMP 423, Principles of Operating Systems, 3

Various types of operating systems. Concurrent processes, mutual exclusion, process communication, cooperation, deadlocks. Distributed OS algorithms, UNIX, NFS, NIS. Examples from several operating systems.

Prerequisite: ECMP 338

ECMP 424, Advanced Computer Systems Architect, 3

Organization and operation of multiprocessors, array and associative processors, and pipelined vector computers. Data flow machines - networks - data parallel machines. Outstanding examples in each category analyzed. Methods for description, modeling evaluation, and synthesis of computing systems. Term papers and presentations.

Prerequisite: ECMP 420

ECMP 431, Software Engineering, 3

Design of software systems working from specifications; top-down decomposition using stepwise refinement; object-oriented methods; prototyping. Software metrics and testing; software quality and reliability; maintenance; human factors. 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: Computer Engineering, 3

Topics vary.

ECMP 471, Seminar: Computer Engineering, 3

Topics vary.

ECMP 472, Seminar: Computer Engineering, 3

Topics vary.

ECMP 484, Computational Intelligence I: Basic Principles, 3

Fundamentals of computational methodologies for use in adaptive parallel distributed information processing. Included are neuralnet computing, evolutionary programming, genetic algorithms, fuzzyset theory, and "artificial life." These computational paradigms complement and supplement traditional practices of pattern recognition and artificial intelligence. Functionalities covered include self-organization, learning a model or supervised learning, optimization, and memorization. Cross-listed with EEAP 484.

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 presentation. Laboratory.

Prerequisite: ECMP 316

ECMP 486, Research in VLSI 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 488, Embedded Systems Design, 3

Objective: to introduce and expose the student to methodologies for systematic design of embedded system. The topics include, but are not limited to, system specification, architecture modeling, component partitioning, estimation metrics, hardware software codesign, diagnostics. Note: this course will be one of the electives for the practice-oriented master of engineering program.

ECMP 491, Intelligent Systems I, 3

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. Programming in LISP and Prolog.

Prerequisite: CMPS 131

ECMP 570, Seminar: Computer Engineering, 3

Topics vary.

ECMP 571, Seminar: Computer Engineering, 3

Topics vary.

ECMP 572, Seminar: Computer Engineering, 3

Topics vary.

ECMP 591, Intelligent Systems II, 3

Implementation and use of basic artificial intelligence concepts and techniques in fairly complex and useful artificial intelligence systems. Procedure abstraction, data abstraction, control metaphors, propagation of constraints and use of rules. Some generic expert systems. Natural language understanding. Deductive and inductive inference techniques.

Prerequisite: ECMP 491

ECMP 601, Independent Study, 1-36

ECMP 602, Advanced Project Laboratory, 1-36

ECMP 651, Thesis M.S., 1-36

ECMP 701, Dissertation Ph.D., 1-36

Computer Science (CMPS)

UNDERGRADUATE COURSES

CMPS 098, Introduction to Computer Programming Concepts, 1

Techniques and concepts of computing appropriate for science and engineering students. Basic data and control structures available in high level programming languages. Experience in using these tools to solve problems. Laboratory.

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 appropriate for science and engineering students. Basic data and control structures available in high-level programming languages. Experience in using these tools to solve problems. Laboratory.

CMPS 329, Design of Object-oriented Systems, 3

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. Ability to program in C or consent of instructor required.

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.

Prerequisite: 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; multi attribute retrieval, database architectures; network- hierarchical and relational data-bases, relational calculus and algebra; commercial database languages; SQL; quel; qbe.

Prerequisite: CMPS 131

CMPS 343, 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, and computability, assertions and program verification, denotational semantics.

Prerequisite: MATH 304 and CMPS 340

CMPS 391, Introduction to Artificial Intelligence, 3

Overview of artificial intelligence. Knowledge representation, search, game-playing, rule-based systems, AI programming languages, learning, neural networks, evolutionary algorithms, natural language understanding, vision, planning, robotics.

Prerequisite: CMPS 131

CMPS 396, Special Topics in Computer Science, 1-36

CMPS 397, Special Topics in Computer Science, 1-36

GRADUATE COURSES

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 file, indexed files, multiple level index structures, btrees, hashed files. Multiple attribute retrieval; inverted files, multi lists, multiple-key hashing, hd trees. Introduction to data bases. Data models.

Prerequisite: MATH 304 and ECMP 333

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 realized the abstract computational model. Arithmetic, structure inspection, metalogical and extralogical techniques in Prolog. Advanced programming techniques: nondeterminism, difference structures, DCGS, 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 430, Object-oriented Software Development, 3

Graduate level introduction to object oriented techniques for the development of large software systems. Topics include: object oriented analysis, design, and programming; encapsulation and information hiding; inheritance; polymorphism and dynamic binding; generics; object oriented languages, including c++, modula3, and smalltalk, compiler/interpreter implementation; advanced programming techniques; object-oriented user interfaces; class library design; concurrent and realtime programming reuse; testing and maintenance of object oriented programming, databases, research issues

Prerequisite: ECMP 333

CMPS 433, Data Base Systems, 3

Basic issues in file processing and database management systems. Physical data organization. Relational Databases. Database Design. Relational Query Languages, SQL. Query languages. Query Optimization. Database integrity and security. Object Oriented Databases. Object Oriented Query Languages, OQL.

Prerequisite: MATH 304 and ECMP 333

CMPS 434, Advances in Databases, 3

More advanced topics in Databases will be covered in this course. Query Optimization in Object Oriented Databases, Temporal Databases, Issues in Multimedia dDatabases, Databases and Web, Graphical Query interfaces. Basic knowledge in databases is required.

Prerequisite: CMPS 433 or the consent of the instructor

CMPS 440, Automata and Formal Languages, 3

Cross-listed with MATH 410.

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 problems for which no efficient algorithms are known.

Prerequisite: ECMP 333 and MATH 304

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; and interaction. 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 478, Computational Neuroscience, 3

(Also listed as BIOL 378/478; EMBE 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.

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.

CMPS 570, Seminar in Artificial Intelligence, 3

Topics vary.

Prerequisite: ECMP 491 and ECMP 492 and CMPS 411

CMPS 571, Seminar in Database Systems, 3

Recent research in Databases is covered. Topics vary.

Prerequisite: CMPS 433

CMPS 572, Advanced Seminar in Computer Graphics, 1-3

Topics vary.

Prerequisite: CMPS 411 and CMPS 431 and CMPS 466

CMPS 575, Seminar in Computer Science, 3

CMPS 600, Special Topics in Computer Science, 1-36

CMPS 601, Independent Study, 1-36

(Credit as arranged.)

CMPS 602, Advanced Projects Laboratory, 1-36

CMPS 651, Thesis M.S., 1-36

CMPS 701, Dissertation Ph.D., 1-36





ENGINEERING CORE ELECTIVE COURSES

Choose one course from two of the following five groups of courses:

  1. EMSE 201, 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
  2. ECHE 360, Transport Phenomena; EMAE 151, Fluid Mechanics; or EEAP 309, Electromagnetic Fields and Energy Conversion I
  3. EMAE 150, Thermodynamics 1; or EMAC 171, Physical Chemistry for Engineers I
  4. ECIV 110, Mechanics, or EMAE 181, Dynamics
  5. EIND 352, Engineering Economics; EIND 250, Production Systems Engineering; or OPRE 345, Decision Theory

Systems Control & Industrial Engineering Electives

ESYS 313, Signals & Systems Analysis II
ESYS 304, Control Engineering
ESYS 352, Engineering, Economics & Decision Making
ESYS 322, Simulation Laboratory
ESYS 346, Engineering Optimization

Statistics Elective

STAT 312, Basic Statistic for Engineering & Science
STAT 313, Statistics for Experimenters
STAT 333, Uncertainty in Engineering & Science
MATH 380, Introduction to Probability
STAT 412, Statistics for Design & Analysis in Engineering & Science

Approved Technical Elective

Course to be selected with the guidance of the departmental advisor.





BACHELOR OF ARTS DEGREE
MAJOR IN COMPUTER SCIENCE (ARTS AND SCIENCES GENERAL EDUCATION REQUIREMENTS - GER)

Fall Semester

Spring Semester


FRESHMAN

CMPS 131, Elementary Computer Programming (3) ENGL 150, Expository Writing (3)
Math 125, Mathematics I (4) MATH 126, Mathematics II (4)
GER course (3) GER course (3)
GER course (3) GER course (3)
Open elective (3) Open elective (3)
PHED 101, Physical Education Activities (0) PHED 102, Physical Education Activities (0)

SOPHOMORE

EEAP 282, Introduction to Microprocessors (4) ECMP333, Introduction to Data Structures (4)
ECMP 251, Numerical Methods I (3) MATH 304, Discrete Mathematics (3)
GER course (3) GER course (3)
Open elective (3) Open elective (3)
Open elective (3) Open elective (3)

JUNIOR

ECMP 337, Systems Programming (4) ECMP338, Introduction to Operating Systems (4)
ECMP 280, Logic Design of Digital Systems (4) CMPS 341, Introduction to Database Systems (3)
GER course (3) GER course (3)
Open elective (3) Open elective (3)

SENIOR

CMPS 340, Algorithms and Data Structures (3) Technical elective (3) a
Technical elective (3) Open elective (3)
GER course (3) a Open elective (2)
Open elective (3) Open elective (3)
Open elective (3) Open elective (3)

Hours required for graduation: 120.


a Must be a CMPS, ECMP, MATH or STAT course.





BACHELOR OF SCIENCE IN COMPUTER SCIENCE DEGREE

Fall Semester

Class/Lab/Credit Hours

Spring Semester

Class/Lab/Credit Hours

FRESHMAN

Open elective or humanities / social science (3-0-3) b Humanities or social science / open (3-0-3) b
CHEM 107, Properties and Structure of Matter I (3-0-3) CHEM 108, Properties and Structure of Matter II (3-0-3)
CMPS 131, Elementary Computer Programming (2-2-3) CHEM 113, Principles of Chemistry Laboratory (1-3-2)
MATH 121, Calculus for Science and Engineering I (4-0-4) MATH 122, Calculus for Science and Engineering II (4-0-4)
ENGL 150, Expository Writing (3-0-3) PHYS 121, General Physics I, Mechanics (4-0-4)
PHED 101, Physical Education Activities (0-3-0) PHED 102, Physical Education Activities (0-3-0)
Total (15-5-16) Total (15-6-16)

SOPHOMORE

MATH 304, Discrete Mathematics (3-0-3) Humanities/Social Science (3-0-3)
MATH 223, Calculus for Science and Engineering III (3-0-3) MATH 224, Elementary Differential Equations (3-0-3)
PHYS 122, General Physics II, Electricity & Magnetism (4-0-4) PHYS 221, General Physics III, Modern (3-0-3)
ECMP 251, Numerical Methods I (2-2-3) ECMP 333, Introduction to Data Structures (3-2-4)
EEAP 282, Introduction to Microprocessors (3-2-4) Math elective (3-0-3) c
Total (15-4-17) Total (15-2-16)

JUNIOR

Humanities/social science (3-0-3) Humanities/social science (3-0-3)
ECMP 337, Systems Programming (3-2-4) Humanities/social science (3-0-3)
CMPS 340, Algorithms and Data Structures (3-0-3) Technical elective (3-0-3) d
ECMP 280, Logic Design of Digital Systems (3-2-4) ECMP 338, Introduction to Operating Systems (3-2-4)
Technical elective (3-0-3) d CMPS 343, Theoretical Computer Science (3-0-3)
Total (15-4-17) Total (15-2-16)

SENIOR

Humanities/social science (3-0-3) Humanities/social science (3-0-3)
Technical elective (3-0-3) d Technical elective (3-0-3) d
Technical elective (3-0-3) d Technical elective (3-0-3) d
Open elective (3-0-3) Open elective (3-0-3)
Open elective (3-0-3) Open elective (2-0-2)
Total (15-0-15) Total (14-0-14)

Hours required for graduation: 127


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 MATH 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
MAJOR IN COMPUTER ENGINEERING

Fall Semester

Class/Lab/Credit Hours

Spring Semester

Class/Lab/Credit Hours

FRESHMAN

Open elective or humanities / social science (3-0-3) b Humanities or social science / open (3-0-3) b
CHEM 107, Properties and Structure of Matter I (3-0-3) CHEM 108, Properties and Structure of Matter II (3-0-3)
CMPS 131, Elementary Computer Programming (2-2-3) CHEM 113, Principles of Chemistry Laboratory (1-3-2)
MATH 121, Calculus for Science and Engineering I (4-0-4) MATH 122, Calculus for Science and Engineering II (4-0-4)
ENGL 150, Expository Writing (3-0-3) PHYS 121, General Physics I, Mechanics (4-0-4)
PHED 101, Physical Education Activities (0-3-0) PHED 102, Physical Education Activities (0-3-0)
Total (15-5-16) Total (15-6-16)

SOPHOMORE

Humanities/Social Science Sequence I (3-0-3) Humanities/Social Science Sequence II (3-0-3)
MATH 223, Calculus for Science and Engineering III (3-0-3) MATH 224, Elementary Differential Equations (3-0-3)
PHYS 122 General Physics II, Electricity & Magnetism (4-0-4) PHYS 221, General Physics III, Modern (3-0-3)
ECMP 251, Numerical Methods I (2-2-3) c EEAP 240, Electronic Circuits (3-2-4) c
EEAP 282, Introduction to Microprocessors (3-2-4) ECMP 333, Introduction to Data Structures (3-2-4)
Total (15-4-17) Total (15-4-17)

JUNIOR

Humanities/Social Science Sequence III (3-0-3) Humanities/Social Science Sequence IV (3-0-3)
ESCI 212, Signals and Systems Analysis (3-0-3) Engineering Core Elective (3-0-3) c
ECMP 337, Systems Programming (3-2-4) ECMP 316, Computer Design (3-0-3)
ECMP 280, Logic Design of Digital Systems (3-2-4) ECMP 317, Computer Design Laboratory (0-4-2)
MATH 304, Discrete Mathematics (3-0-3) ECMP 338, Introduction to Operating Systems (3-2-4)
ENGL 398, Professional Communications (2-0-2)
Total (15-4-17) Total (14-6-17)

SENIOR

Humanities or social science course (3-0-3) Humanities/social science elective (3-0-3)
Systems elective (3-0-3) Statistics elective (3-0-3)
ECMP 398, Design Methodology (2-2-3) ECMP 399, Computer Engineering Design Project (0-6-3)
Approved technical elective (3-0-3) Open elective (3-0-3)
Engineering core elective (3-0-3) c Open elective (3-0-3)
Open elective (2-0-2)
Total (14-2-15) Total (14-6-17)

Hours required for graduation: 132 plus graphics proficiency.


b One of these courses must be a humanities/social science course.
c Engineering Core




CWRU Provost's Office -- About this server -- Copyright 1996 CWRU -- Unauthorized use prohibited

General Bulletin  1996-1998
Copyright Case Western Reserve University 1998 - All Rights Reserved -