(Computer Science and 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 123C or
CSE 130C. Students who anticipate extensive study or use
of computers in their future work should take CSE 110C-111, or CSE 123C-124C,
or CSE 130C 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. Prerequisite: MATH 110Q or MATH 113Q or MATH 115Q,
which may be taken concurrently. Not open for credit to students who have
passed
CSE 123C or CSE 130C. Either CSE 110C-111 or CSE 123C-124C or CSE
130C 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. Not open for credit to students
who have passed CSE 124C or CSE 130C. Either CSE 110C-111 or CSE 123C-124C
or CSE 130C 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. |
| 123C. Introduction
to Computing
Both semesters. Two credits. Two class periods of lecture and one 1-hour
of laboratory period per week. Recommended preparation: MATH 101 or equivalent.
No previous programming experience required. Not open for credit to students
who have passed CSE 110C
or
CSE 130C.
Ungar
Problem solving with the computer, basics of data representation and
computer organization, procedural and object-oriented programming in a
modern language including control structures, functions and parameter passing,
one and two dimensional arrays, numerical error and basic numerical methods.
Examples taken from various disciplines. Programming projects required.
Intellectual property issues discussed. |
| 124C. Computing
Second semester. Four credits. Three class periods of lecture and one
1-hour laboratory per week. Prerequisite: CSE 123C or CSE 110C. Not open
for credit to students who have passed CSE 111 or CSE 130C. Ungar
Principles of object oriented programming including polymorphism, information
hiding, and inheritance. Principles of object oriented design. Recursion.
Strings, lists, stacks, queues, trees, priority queues, heaps and graphs
including their use and various implementations using automatic and dynamic
data allocation, linked representations, and templates. Algorithm and complexity
issues involved with these data types. Sorting and searching algorithms.
Introduction to computer history. Programming problems drawn from areas
of computer science and engineering. |
| 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 or CSE
123C or CSE 124C. Either CSE 110C-111 or CSE 123C-124C or CSE 130C 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. |
| 133. Object
Oriented Design and Programming
Second semester. Three credits. Three class periods of lecture and one
75 minute laboratory period per week. Prerequisite: CSE 123C or 110C. Not
open to students who have passed CSE 124C.
Principles of object oriented programming including classes, polymorphism,
encapsulation and information hiding, and inheritance. Principles of object
oriented design. Program debugging and documentation techniques. Implementation
and simple analysis of algorithms for sorting and searching. Event-driven
programming and the use of libraries for user interfaces. Introduction
to computer history. Programming assignments. |
| 134.
Data Structures and Introduction to Algorithms
First semester. Three credits. Three class periods of lecture. Prerequisite:
CSE
133 or 124C. Students who have passed CSE 124C will receive only 2 credits
for this course.
Fundamental concepts of data structures and the algorithms that proceed
from them. Implementation and use of linked lists, stacks, queues, trees,
priority queues, heaps and graphs. Emphasis on recursion, abstract data
types, object oriented design, and associated algorithms and complexity
issues. Design using specifications and requirements. Basic computer organizations,
including memory organizations and allocations issues. Programming assignments. |
| 201. Computer Architecture
Either semester. Three credits. Prerequisites: CSE 111 or 124C or 130.
Not open to students who have credit for CSE 207 or CSE 241 or CSE 210W.
Open to sophomores or higher.
Structure and operation of digital systems and computers. Fundamentals
of digital logic. Machine organization, control and data paths, instruction
sets, and addressing modes. Hardwired and microprogrammed control. Memory
systems organization. Discussion of alternative architectures such as RISC,
CICS, and various parallel architectures. |
| 207. Digital Logic
Either semester. Three credits. Three class periods and one 1-hour discussion
period. Prerequisite: CSE 110C or 123C or 130C. Open to sophomores or higher.
This course and CSE 210W may not both be taken for credit.
Ammar, Lipsky, 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. |
| 208. 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 or higher. This course
and CSE 210W may not both be taken for credit. 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. |
| 210W. Digital Logic Design
First semester. Four credits. Three class periods and one two-hour laboratory
period. Prerequisite: CSE 110 or 123 or 130 or 133 and secondary
school physics or PHYS 101 or 151; ENGL 105 or 110 or 111 or 250. Not open
to students who have passed CSE 207 or 208W. Open to sophomores or higher.
Representation of digital information. Analysis, design, and evaluation
of combinational and sequential logic circuits. Debugging techniques. Use
of computer facilities for circuit simulation, CAD, and report preparation
and presentation. Introduction to structure and operation of digital computers.
Design projects. Written reports with revisions are required for each project. |
220. Introduction
to Computer Architecture
Either semester. Three credits. Three one-hour lectures and one one-hour
laboratory period. Prerequisite: CSE 134; CSE 254. Cannot be taken after
CSE 249 or 261. This course and CSE 201 may not both be taken for credit.
This course and CSE 243 may not both be taken for credit.
Structure and operation of digital systems and computers. Fundamentals
of digital logic. Machine organization, control and data paths, instruction
sets, and addressing modes. Integer and floating-point arithmetic, the
memory hierarchy, the I/O subsystem. Assembly language and basic program
organization, interrupts, I/O, and memory allocation. |
| 221. Probabilistic
Performance Analysis of Computer Systems
Either semester. Three credits. Prerequisite: CSE 124C or 134;
and 254 one of STAT 220Q or 230Qor
MATH 231. 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 201 or 220 or
243, and
CSE 259. Greenshields
Introduction to parallel systems. Fundamentals 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: CSE134 and 254. Open to sophomores or higher. 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 237.
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: CSE134 and 254.
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. Two hours lecture and 4 hours laboratory.
Prerequisite: CSE 111 or 124C or 130C, and CSE 241 which may be taken concurrently.
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 208 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 210W or both
CSE 207 and CSE 208. 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 230 and 237. Santos
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 220 or 201
or 243;
STAT 220Q or STAT 224Q or STAT 230Q or MATH 231
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.
|
249. Computer
Organization and Architecture
Either semester. Three credits. Three one-hour lectures. Prerequisite:
CSE
210W; CSE 220. This course and CSE 243 may not both be taken for credit.
Cannot be taken after CSE 261.
Organization and architecture of modern computer systems. Emphasis
is on alternatives and advances to the basic Von Neumann architecture:
topics such as pipelining, memory hierarchy and management, multiprocessor
and alternative architectures, reconfigurable hardware, and other techniques
for performance enhancement. |
| 252. Digital Systems Design
(Also offered as ECE 252.) Either semester. Three credits. Prerequisite:
CSE 210W or CSE 207.
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 124C or 130C
or 133. Not open for credit to students who have passed MATH 214Q. Open
to sophomores or higher.
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 259. 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 ECE 257.) Either semester. Three credits. Prerequisite:
CSE 123C and MATH 210Q and MATH 211Q.
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 230; CSE 220,
201 or
243.
Demurjian, Santos
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. Three class periods. Prerequisite: CSE
134
and 254.Goldin, McCartney, Rajasekaran
Design and analysis of efficient computer algorithms. Algorithm design
techniques, including divide-and-conquer, depth-first search, and greedy
approaches. Worst-case and average-case analysis. Models of computation.
NP-complete problems. |
| 261. Digital Hardware
Laboratory
(Also offered as ECE 281.) Second semester. Three credits. One 4-hour
laboratory period. Prerequisite: CSE 249;
ECE 252 or CSE 252.
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:
CSE
230.
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
Second semester. Three credits. Four hour laboratory. Prerequisite:
CSE
245; CSE 220 or CSE
201 or CSE 243.
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: CSE 230. May be taken
twice for credit. Instructor 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. |
| 267. Software
Laboratory on Large Computers
Semester by arrangement. Three credits. Two class periods and one 2-hour
program design period. Prerequisite: CSE 240.
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 lecture and one 3-hour laboratory
period. Prerequisite: CSE 220 or CSE 201 or 243.
Shvartsman
The design of microcomputer systems, including both hardware and software,
for solving application problems. Hardware and software design and implementation
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: CSE 259 and MATH
210Q and either MATH 227Q or MATH 215Q. 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, transformations, mapping of data to graphics screen,
graphics hardware. Programming projects are assigned. |
| 277. Bioinformatics
(Also offered as BME 280). Either semester. Three credits. Prerequisite:
BIOL
107, CSE 254, and either STAT 220Q or STAT 224Q.
Fundamental mathematical models and computational techniques in bioinformatics.
Exact and approximate string matching, suffix trees, pairwise and multiple
sequence alignment, Markov chains and hidden Markov models. Applications
to sequence analysis, gene finding, database search, phylogenetic tree
reconstruction. |
| 278.
Social, Ethical and Professional Issues in Computer Science and Engineering
Either semester. Three credits. Prerequisite: CSE 230. Engel
Study of areas in which computer science interacts with ethical issues,
and issues of public policy. Topics of professional growth, development,
and responsibility. Practice in the analysis of complex issues brought
about by modern technology. |
| 280. Digital Design
Laboratory
(Also offered as ECE 280.) Second semester. Three credits. Four hours
of laboratory. Prerequisite or corequisite: Either CSE 252/ECE 252.
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 259.
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.
Electrical and Computer Engineering Design I
(Also offered as ECE 290.) Either semester. Two credits. Prerequisite:
Senior standing
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/ECE 291 is carried out. Written progress reports, a proposal, an interim
report, a final report, and oral presentations are required. |
| 291.
Electrical and Computer Engineering Design II
(Also offered as ECE 291.) Either semester. Three credits. Prerequisite:
ECE
290. Hours to be arranged.
Design of a device, circuit, system, process, or algorithm. Team solution
to an engineering design problem formulated in CSE/ECE 290, from first
concepts through evaluation and documentation. Written progress reports,
a final report, and oral presentations are required. |
| 293W.
Computer Science and Engineering Design Project
Either semester. Three credits. Prerequisite: CSE 258 and either CSE
261 or 262 or 263 or 265 or 268 or 269; ENGL 105 or 110 or 111 or
250.
This course is the second semester of the required major design experience.
In one semester-long team project, students will propose, design, produce,
and evaluate a software and/or hardware system.The project will culminate
in the delivery of a working system, a formal public presentation, and
written documentation. Oral and written progress reports 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
This course exposes the student to management principles and practices
and the knowledge and skills necessary to develop an education project
and to perform a research project. |