Undergraduate Catalog 1999 - 2000

Computer Science and Engineering (CSE)

Interim Head of Department: Professor Reda Ammar
Department Office: Room 460, United Technologies Engineering Building

For major requirements, see the School of Engineering section of this Catalog.

(Computer Science & Engineering courses were formerly offered under the CS department abbreviation using the same course numbers.)

101C. Computers in Modern Society

Second semester. Three credits. Two class periods and two 1-hour program design periods. Not open for credit to students who have passed CSE 110C or CSE 130C. Students who anticipate extensive study or use of computers in their future work should take CSE 110C and 111, or CSE 130 rather than this course. Ungar

Introduction to computer applications in the humanities, social sciences, business, and other fields. Influence of the computer on modern society and technology. Elements of computer usage in the solution of numeric and non-numeric problems including introduction to programming methods.

110C. Introduction to Numerical Computation

Either semester. Three credits. Two 1-hour class periods and two 1-hour program design periods. Required preparation: MATH 110Q or MATH 113Q or MATH 115Q, which may be taken concurrently. Not open for credit to students who have passed CSE 130C. Either CSE 130C or CSE 110C, 111 is required of students planning on taking advanced CSE courses. Demurjian, Ungar

Introduction to computer organization and the computing process. Design of algorithms for computer solutions of problems, structured programming, and data organization. Analysis of computational errors and their minimization. Methods of solving numerical problems. Logic, design, verification and documentation of programs using current programming languages.

111. Introduction to Non-Numerical Computation

Either semester. Two credits. Two 1-hour class periods and one 1-hour program design period. Prerequisite: CSE 110C or consent of instructor. Not open for credit to students who have passed CSE 130C. Either CSE 130C or CSE 110C-111 is required of students planning on taking advanced CSE courses. Ungar

Design of algorithms for the processing of non-numerical information. Linked lists, trees and other advanced data structures. Practice in the design and
realization of complex information processing programs.

130C. Fundamentals of Computation

First semester. Four credits. Two 1-hour class periods and two 1-hour program design periods. Prerequisite: MATH 110Q or MATH 113Q or MATH 115Q, which may be taken concurrently. This is a very demanding course and is recommended for students who have had previous programming experience and have a high level of motivation for using computers in future work. Not open for credit to students who have passed CSE 110C or CSE 111. Either CSE 130C or CSE 110C _ 111 is required of students planning on taking advanced CSE courses. Ungar

Design of algorithms to solve numerical and non-numerical problems. Top-down design techniques and structured programming. Investigation and selection on data organizations for efficient problem solutions. Analysis of computational errors in numerical calculations. Methods for the design, implementation, verification and documentation of programs using current programming languages.

201. Computer Architecture

Either semester. Three credits. Prerequisites: CSE 111 or CSE 130. Not open to students who have credit for CSE 207 or CSE 241. Open to sophomores.

Formal models of computation, such as finite state automata, pushdown automata, and Turing machines, and their corresponding elements in formal languages (regular, context-free, recursively enumerable). The complexity hierarchy. Church's thesis and undecidability. NP completeness. Theoretical basis of language design and compiler construction.

207. Computer Science

Either semester. Three credits. Three class periods and one 1-hour discussion period. Required preparation: CSE 110C or CSE 130C. Open to sophomores. Ammar, Barker, McCartney

Representation of digital information. Introduction to the analysis and design of combinational and sequential logic networks using Boolean algebra and register transfer techniques. Structure and operation of digital systems and computers. Introduction to programming at the machine and assembler language level. Design projects.

208W. Logic Design Laboratory

Either semester. Two credits. One 1-hour lecture and one 2-hour laboratory period. Prerequisite: Secondary school physics or PHYS 101, and CSE 207 which may be taken concurrently. Open to sophomores. Barker

Design and evaluation of combinational and sequential logic circuits. Debugging techniques. Use of computer facilities for circuit simulation, CAD and report preparation and presentation.

221. Probabilistic Performance Analysis of Computer Systems

Either semester. Three credits. Prerequisite: CSE 111, either CSE 241 or CSE 243, and one of STAT 220Q, 224Q, 230Q or MATH 231Q and MATH 227Q. Ammar, Lipsky

Introduction to the probabilistic techniques which can be used to represent random processes in computer systems. Markov processes, generating functions and their application to performance analysis. Models which can be used to describe the probabilistic performance of digital systems.

228. Parallel Systems

Either semester. Three credits. Prerequisite: CSE 254 and CSE 241. Not open for credit to students who have passed CSE 252. Greenshields

An Introduction to parallel systems. Fundamentals 


COMPUTER SCIENCE AND ENGINEERING
of the theory of parallel systems. Models of parallel machines. Limitations of parallel systems. Paradigmatic algorithms. Vectorization. Arithmetic structures. Classical parallel architectures.

230. Introduction to Software Engineering

Either semester. Three credits. Three class periods and one problem session. Prerequisite: CSE 111 or CSE 130C. Not open for credit to students who have passed CS 250. Open to sophomores. Demurjian, Peters

Software engineering concepts including the software life cycle and other software-development process models. Specification techniques, design methodologies, performance analysis, and verification techniques. Team-oriented software design and development, and project management techniques. Introduction to a modern programming language and the associated design and debugging tools. Homework and laboratory projects that emphasize design and the use/features of a modern programming language.

233. Programming Languages

Either semester. Three credits. Prerequisite: CSE 111 or CSE 130.

The study of programming language features and programming paradigms. Data types, control, run-time environments, and semantics. Examples of procedural, functional, logical, and object-oriented programming. Features used for parallel and distributed processing. Classic and current programming languages and environments.

237. Theory of Computation

Either semester. Three credits. Prerequisite: CSE 259 and either CSE 254 or MATH 214.

Formal models of computation, such as finite state automata, pushdown automata, and Turing machines, and their corresponding elements in formal languages (regular, context-free, recursively enumerable). The complexity hierarchy. Church's thesis and undecidability. NP completeness. Theoretical basis of design and compiler construction.

240. Intermediate Computer Systems Laboratory

Either semester. Three credits. One 1-hour lecture and 4 hours of Laboratory. Prerequisite: CSE 111 or consent of instructor and CSE 241 which may be taken concurrently. Not open for credit to students who have passed CS 253. Greenshields, Lovell

Chip level programming of microprocessor type systems. Topics covered include I/O ports, I/O devices and controllers, DMA channels, priority interrupts, networking, multitasking. Design projects.

241. Computer Organization

Either semester. Three credits. Prerequisite: CSE 207, and CSE 208W which may be taken concurrently. Ammar, Peters

Fundamentals of computer organization. Instruction sets and addressing modes. The control path and microprogramming. The data path; fast arithmetic. The memory hierarchy, both logical and physical aspects. The input/subsystem; interrupts, DMA, structure and function. SIMD and MIMD parallelism. Modern architectural theories.

243. Introduction to Computer Architecture and Hardware/Software Interface

Either semester. Four credits. Three hours lecture and three hours laboratory. Prerequisite: CSE 207 and CSE 208W. Not open for credit to students who have credit for CSE 241. Ammar, Greenshields

An integrated introduction to computer organization and the hardware/software interface as seen at the assembly-language level. Topics included: basic machine organization; instruction sets and
addressing modes; CPU design; the control path and microprogramming; FSM design; the data path; integer and floating-point arithmetic; busses; the memory hierarchy; the i/o subsystem; RISC architectures; pipelining; basic performance analysis; fundamentals of networking. Lab activities include (but are not limited to): basic assembly language programming on a CICS and RICS processor; processor benchmarking; use of cache; polled, interrupt driven and DMA I/O files; optimizing code.

244. Programming Language Translation

Either semester. Three credits. Prerequisite: CSE 254 or MATH 214Q and CSE 230 or CS 250. Crandall, Demurjian

Introduction to the formal definition of programming language syntax and semantics. Design and realization of programming language processing systems such as assemblers, compilers, and interpreters.

245. Computer Networks and Data

Communication

Semester by arrangement. Three credits. Prerequisite: CSE 221 which may be taken concurrently. Ammar, Crandall, Ting

Introduction to computer networks and data communications. Network types, components and topology, protocol architecture, routing algorithms, and performance. Case studies including LAN and other architectures.

252. Digital Systems Design

Either semester. Three credits. Prerequisite: CSE 243 or both CSE 240 and CSE 241. Not open to students who have credit for EE 252. Also offered as EE 252. Greenshields

Design and evaluation of control and data structures for digital systems. Hardware design languages are used to describe and design alternative register transfer level architectures and control units with a micro-programming emphasis. Consideration of computer architecture, memories, digital interfacing timing and synchronization, and microprocessor systems.

254. Introduction to Discrete Systems

Either semester. Three credits. Prerequisite: CSE 111 or CSE 130C or consent of instructor. Not open for credit to students who have passed MATH 214Q. Open to sophomores. Roulier

Mathematical methods for characterizing and analyzing discrete systems. Modern algebraic concepts, logic theory, set theory, grammars and formal languages, and graph theory. Application to the analysis of computer systems and computational structures.

255. Principles of Data Bases

Either semester. Three credits. Prerequisite: CSE 254 or MATH 214. Required preparation: CSE 230 or CS 250. Demurjian, Shin

Fundamentals of data base design and data indexing techniques. Hierarchical, network, and relational data models. Data base design theory. Query languages, their implementation and optimization. Data base security and concurrent data base operations.

257. Numerical Methods in Scientific Computation

(Also offered as EE 257.) Either semester. Three credits. Prerequisite: Either CSE 110C or CSE 130C or ENGR 150C and MATH 210Q and MATH 211Q, or consent of instructor. Not open for credit to students who have passed EE 257. Peters, Roulier

An Introduction to the numerical algorithms fundamental to scientific computation. Equation solving, function approximation, integration, difference and differential equations, special computer techniques.
Emphasis is placed on efficient use of computers to optimize speed and accuracy in numerical computations. Extensive digital computer usage for algorithm verification.

258. Operating Systems

Either semester. Three credits. Prerequisite: CSE 240. Required preparation: CSE 230 or CSE 243 which may be taken concurrently. Lovell

Introduction to the theory, design, and implementation of software systems to support the management of computing resources. Topics include the synchronization of concurrent processes, memory management, processor management, scheduling, device management, file systems, and protection.

259. Algorithms and Complexity

Either semester. Three credits. Two class periods and two hours of Laboratory. Prerequisite: CSE 111 and CSE 130C. Recommended preparation: CSE 254 or MATH 214. Peters

Theoretical aspects of computer science. Equivalent models of computation, the role of mathematical induction, graph algorithms, complexity theory, computability, use of standard algorithmic techniques _ such as divide-and-conquer. Investigation of novel examples from fields such as graphics, computational geometry, and artificial intelligence. Emphasis in lab will be on analysis of supplied software examples, although some original software development will also occur.

261. Digital Hardware Laboratory

Second semester. Three credits. One 4-hour laboratory period. Prerequisite: CSE 208W, CSE 240, and CSE 241. Recommended preparation: CSE 252. Barker

Advanced combinational and sequential circuit design and implementation using random logic and microprocessor based system. Hardware and software interface to the basic system. Serial communication, user program loading and execution. Microcontrollers _ familiarization and inclusion in design.

262. Software Engineering Laboratory

Second semester. Three credits. Four program design periods. Prerequisite: CS 250 or CSE 230. Not open for credit to students who have passed CS 251. Demurjian, Peters

A major software design project addresses specification through delivery phases of the lifecycle. The major focus of the course is utilization and application of concepts from CSE 230 to a straightforward semester long project. This allows the student to explore programming-in-the-large with an emphasis on techniques for teamwork, walk through, design, documentation, implementation, and debugging. Data structures and algorithm alternatives for the design and implementation phases of the lifecycle are also stressed. Formal design presentations are required by all students.

263. Networking and Distributed Systems Laboratory

Either semester. Three credits. Four hour laboratory. Prerequisite: CSE 228, CSE 243, CSE 245, and either CSE 230 or CSE 233. Greenshield

Software laboratory that explores selected issues in networking and distributed systems. Topics include: Berkely sockets; TCP and IP; atm apis; latency and bandwidth; performance models; performance evaluation of different network fabrics; MPI; simple CORBA; performance characteristics of MPI, Java, RMI, and CORBA; implementation and evaluation of a client-server system.

265. Independent Design Laboratory

Either semester. Three credits. Prerequisite: Either CSE 230 or CSE 250. May be taken twice for credit. In

University of connecticut
structor and department head consent.

Experimental design project undertaken by the student by special arrangement with a faculty member of the Department of Computer Science and Engineering.

267W. Software Laboratory on Large Computers

Semester by arrangement. Three credits. Two class periods and one 2-hour program design period. Prerequisite: CSE 240. Lovell

Investigation of instruction sets, internal data representations, interrupt systems, and the input/output system of a large computer available in the Computer Center. Assembler language, related job control language, supervision conventions, linkage methods, data storage techniques and access methods. Design projects.

268. Microprocessor Laboratory

First semester. Three credits. One 4-hour laboratory period. Prerequisite: CSE 208W, CSE 240, and CSE 241. Recommended preparation: CSE 252. Sholl

The design of microcomputer systems, including both hardware and software, for solving application problems. Hardware and software design and imple-mentation techniques for interfacing microcomputers to other systems. Use of modern microcomputer software/hardware development facilities. Projects to design and apply microcomputer systems.

269. Computer Science Design Laboratory

Either semester. Three credits. One 4-hour laboratory period. Prerequisite: Announced separately for each course. With a change in content this course may be repeated for credit.

Design and implementation of complex software and/or hardware systems to solve problems posed by either student groups or the instructor.

275. Principles of Computer Graphics

Semester by arrangement. Three credits. Prerequisite: Either CSE 111 or 130C and MATH 227Q or 215Q and MATH 210Q or consent of instructor. Not open for credit to students who have passed MATH 255. Peters, Roulier

Representation of two- and three-dimensional data, internal representation of data structures, transforma-tions, mapping of data to graphics screen, graphics hardware. Programming projects are assigned.

280. Digital Design Laboratory

Either semester. Three credits. Four hours of laboratory. Prerequisite: CSE/EE 252 which may be taken concurrently. Not open for credit to students who have credit for EE 280. Also offered as EE 280.

Digital designing with PLA and FPGA, A/D and D/A conversion, floating point processing, ALU design, synchronous and asynchronous controllers, control path; bus master; bus slave; memory interface; I/O interface; logic circuits analysis, testing, and trouble shooting; PBC; design and manufacturing.

282. Artificial Intelligence

First semester. Three credits. Prerequisite: CSE 254. Required preparation: CSE 230 or CS 250. McCartney

Design and implementation of intelligent systems, in areas such as natural language processing, expert reasoning, planning, robotics, problem solving and learning. Students will design their own versions of "classic" AI problems, and complete one substantial design project. Programming will be done primarily in Lisp, which will be covered briefly at the beginning of the course.

290. Computer and Electrical Engineering Design I

Either semester. Two credits. This course is taken by seniors in the semester before CSE/EE 291. Also of
fered as EE 290.

Discussion of the design process; project statement, specification, project planning scheduling and division of responsibility, ethics in engineering design, safety, environmental considerations, economic constraints, liability, manufacturing, and marketing. Projects are carried out using a team-based approach. Selection and analysis of a design project to be undertaken in CSE/EE 291 is carried out. Written progress reports, a proposal, an interim report, a final report, and oral presentations are required.

291. Computer and Electrical Engineering Design II

Either semester. Three credits. Prerequisite: CSE/EE 291. Also offered as EE 291.

Design of a device, circuit, system, process, or algorithm. Team solution to an engineering design problem formulated in CSE/EE 290, from first concepts through evaluation and documentation. Written progress reports, a final report, and oral presentations are required.

298. Special Topics in Computer Science and Engineering

Semester and credits by arrangement. Prerequisite: Announced separately for each course. With a change in content, this course may be repeated for credit.

Classroom course in special topics as announced in advance for each semester.

299. Independent Study in Computer Science and Engineering

Semester by arrangement. Credits by arrangement, not to exceed 4 in any semester. Prerequisite: Consent of instructor and department head.