| 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 CSE123C 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 or
consent of instructor. 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. Prerequisite: Passed
Q test. 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. |
| 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. Open to sophomores.
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. 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. |
| 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
124C and one of STAT 220Q or 230Q or MATH 231Q. 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 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: CSE 254. 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
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: CSE
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. |