Catalogs on the Web: Current
'06 - '07: Fall 2006 | '05-'06: Spring 2006, Fall 2005
'03-'05: Spring 2005, Fall 2004, Spring 2004, Fall 2003
2001-2003 | 1999-2001
Printed versions of earlier catalogs are available
in the University Archives.

Fall 2007

Undergraduate Course Descriptions for CSE

Choose a subject:

CSE 1104. INTRODUCTION TO ENGINEERING (1-0) Introduction to basic engineering concepts. Students will become familiar with engineering and its many sub-fields, ethical responsibilities, creativity and design. Corequisite: CSE 1105.

CSE 1105. INTRODUCTION TO COMPUTER SCIENCE AND ENGINEERING (1-2) Introduction to basic engineering concepts. Opportunities are provided to develop skills in oral and written communication, and department-specific material. Case studies are presented and analyzed. Corequisite: CSE 1104.

CSE 1301. COMPUTER LITERACY (2-3) For those persons having an interest in finding out what a computer is (and is not), the types of problems suited for computers, and how to utilize a computer to solve problems. The organization and characteristics of computers; application of commercial software such as word processors, spreadsheets, database packages, and communications packages.

CSE 1310. INTRODUCTION TO COMPUTERS & PROGRAMMING (2-3) An introduction to the computer, to the algorithmic process, and to programming in C using standard control structures, arrays, and files. Windows and UNIX operating systems are used. Prerequisite: MATH 1302 (or concurrently).

CSE 1311. INTRODUCTORY PROGRAMMING FOR ENGINEERS & SCIENTISTS (3-0) An introduction to the algorithmic process and to programming in C using standard control structures, arrays, files, strings, pointers, bit manipulation and structures. Prerequisite: MATH 1323 (or concurrently).

CSE 1320. INTERMEDIATE PROGRAMMING (3-2) Programming concepts beyond standard control structures, arrays and files in C; object-oriented programming concepts including class structure and behavior; objects in C++. Emphasis is given to data structures (including pointer manipulation) and modular design consistent with software engineering principles. Windows and UNIX operating systems are used. Prerequisite: CSE 1105 (or concurrently) and CSE 1310 or EE 1347; and MATH 1323.

CSE 1325. OBJECT-ORIENTED & EVENT-DRIVEN PROGRAMMING (3-0) Advanced program design and implementation in the Java programming language. Object-oriented and event-driven concepts including the Java API, classes and objects, applications, applets, regular expressions, strings, inheritance, polymorphism, graphics and graphical user interfaces, layout managers, exception handling, collections, generics and multithreading. Windows operating system is used. Prerequisite: CSE 1320.

CSE 1326. PROGRAMMING MASTERY (3-0) For students who require additional instruction and experience in programming. Windows and UNIX operating systems are used. Prerequisite: CSE 1325.

CSE 2140. DIGITAL LOGIC LAB (0-3) Laboratory experiences for CSE 2340. Prerequisite: CSE 2340 (or concurrently).

CSE 2312. COMPUTER ORGANIZATION AND ASSEMBLY LANGUAGE PROGRAMMING (3-0) The assembly/machine language programmer's view of a digital computer including processor and memory organization, instruction sets, and addressing modes. Programming in a current generation assembly language. Assemblers and the assembly process. Prerequisite: CSE 1320.

CSE 2315. DISCRETE STRUCTURES (3-0) Propositional logic, mathematical proof techniques, sets, combinatorics, functions and relations, graphs, and graph algorithms. Prerequisite: CSE 1320 and MATH 1426.

CSE 2320. ALGORITHMS & DATA STRUCTURES (3-0) Design and analysis of algorithms with an emphasis on data structures. Approaches to analyzing lower bounds on problems and upper bounds on algorithms. Classical algorithm design techniques including algorithms for sorting, searching, and other operations on data structures such as hash tables, trees, graphs, strings, and advanced data structures, dynamic programming and greedy approaches. Prerequisite: CSE 1325 and CSE 2315.

CSE 2321. DATA STRUCTURES FOR NON-ENGINEERS (3-0) Design and analysis of data structures including stacks, queues, hash tables, trees, and graphs. Searching and sorting techniques. Prerequisite: CSE 1320.

CSE 2340. INTRODUCTION TO DIGITAL LOGIC (3-0) The analysis and design of combinational and sequential logic circuits. Topics include Boolean algebra, logic circuit minimization techniques, synchronous sequential circuit design, algorithmic state machine design, design of arithmetic/logic and control units. Computer aided design tools are utilized throughout the course. Prerequisite: CSE 2312 (or concurrently), CSE 2315 and EE 2440.

CSE 3302. PROGRAMMING LANGUAGES (3-0) Introduction, analysis, and evaluation of the important concepts found in a variety of programming languages. Formalisms useful in specifying language syntax and semantics; programming language paradigms such as algorithmic, functional, logic, and object-oriented. Prerequisite: CSE 3315.

CSE 3305. EVENT-DRIVEN PROGRAMMING USING JAVA (3-0) An introduction to program design and implementation in the Java programming language. This course will introduce advanced object-oriented and event-driven programming concepts including the Java API, applications, applets, classes and objects, arrays, strings, inheritance, polymorphism, interfaces, graphics, basic and advanced GUI and components, HTML, layout managers, exception handling and multithreading. Prerequisite: CSE 1325 and CSE 2320.

CSE 3310. FUNDAMENTALS OF SOFTWARE ENGINEERING (3-0) Software engineering principles, processes, and techniques; software development approaches focusing on functional analysis and functional design methods. Configuration management, implementation strategies, and testing. Team project. Prerequisite: CSE 1325, and either CSE 2320 or 2321.

CSE 3315. THEORETICAL CONCEPTS IN COMPUTER SCIENCE AND ENGINEERING (3-0) Selected theoretical concepts including predicate logic, automata and formal languages, computability, proof of program correctness and complexity. Prerequisite: CSE 2315.

CSE 3320. OPERATING SYSTEMS (3-0) Functions and components of an operating system, including process synchronization, job scheduling, memory management, file systems protection, and deadlocks. Related system software, such as loaders, linkers, assemblers, and windowing systems. Prerequisite: CSE 2312, CSE 2320, and IE 3301 or MATH 3313.

CSE 3322. COMPUTER ARCHITECTURE (3-0) Hardware and software structures found in modern digital computers. Instruction set architecture, hardwired design of the processor, microprogramming, I/O and memory units, analysis of instruction usage, and hardware complexity. Prerequisite: CSE 2312.

CSE 3330. DATABASE SYSTEMS AND FILE STRUCTURES (3-0) Database system architecture; file structures for databases, including indexing hashing, and B+-trees; the relational model and algebra; the SQL database language; Entity-Relationship data modeling; functional dependencies and basic normalization. Prerequisite: CSE 2320 or 2321.

CSE 3442. EMBEDDED COMPUTER SYSTEMS (3-3) Design of microcomputer based systems: microcomputer programming, component and system architectures, memory interfacing, parallel and serial I/O interfacing, A/D and D/A conversion, and typical applications. Prerequisite: CSE 2441, CSE 3320 (or concurrently), and 3322 (or concurrently).

CSE 4191. INDIVIDUAL PROJECTS (1-0) Special problems in computer science and engineering on an individual basis. Topics may change from semester to semester. May be repeated for credit. Departmental approval must be obtained in advance for degree credit. Prerequisite: consent of instructor and department chairperson.

CSE 4301. CONTEMPORARY PROGRAMMING PRACTICES (3-0) Study of emerging programming languages that have a potential for widespread application. A significant design project in each language is required. Prerequisite: CSE 3310.

CSE 4303. COMPUTER GRAPHICS (3-0) Theory and practice for the visual representation of data by computers including display devices, output primitives, planes and curved surfaces, two- and three-dimensional transformations, parallel and perspective viewing, removal of hidden lines and surfaces, illumination models, ray tracing, radiosity, color models, and computer animation. Prerequisite: CSE 2320, and MATH 3319 or MATH 3330.

CSE 4305. COMPILERS FOR ALGORITHMIC LANGUAGES (3-0) Review of programming language structures, translation, and storage allocation. Theory and practice of compilers and issues in compiler construction including parsing, intermediate code generation, local optimization problems such as register allocation, data-flow analysis, and global optimization. Prerequisite: CSE 3302.

CSE 4308. ARTIFICIAL INTELLIGENCE (3-0) An introduction to the field of artificial intelligence studying basic techniques such as heuristic search, deduction, learning, problem solving, knowledge representation, uncertainty reasoning and symbolic programming languages such as LISP. Application areas may include intelligent agents, data mining, natural language, machine vision, planning and expert systems. Prerequisite: CSE 3302.

CSE 4310. SOFTWARE ENGINEERING PROCESSES (3-0) Introduces software lifecycle models, process disciplines, project management concepts, and applies them by mastering the Personal Software Process (PSP). Prerequisite: CSE 3310, and IE 3301 or MATH 3313.

CSE 4311. OBJECT-ORIENTED SOFTWARE ENGINEERING (3-0) General classification and comparison of structured, object-oriented software development including analysis, design, programming, and testing. Team project. Prerequisite: CSE 3315.

CSE 4312. FORMAL METHODS IN SOFTWARE ENGINEERING (3-0) Study of mathematical models as applied to software requirements specification, software design, verification and validation, program correctness proof, software testing and software maintenance. Prerequisite: CSE 4311.

CSE 4313. INTRODUCTION TO SIGNAL PROCESSING (3-0) Examines models for presentation and processing of digital signals. Sampling theorem, correlation and convolution, time and frequency analysis of linear systems, Fourier transform, Z-transform, design of digital filters structures for discrete time systems. Prerequisite: MATH 2425 and senior standing.

CSE 4316. COMPUTER SYSTEM DESIGN PROJECT I (2-3) Analysis and design of an industry-type project that involves hardware and software components to meet desired needs within realistic constraints and standards. The project is to be completed in CSE 4317 the following semester. Multidisciplinary teams of CSE 4316 students are required to develop, review, and present problem definition, project planning, requirements formulation, and design specification. Prerequisite: CSE 3310, CSE 3320, CSE 3322, IE 3312, and COMS 3302 (formerly SPCH). In addition, CSE 3442 for CSE majors.

CSE 4317. COMPUTER SYSTEM DESIGN PROJECT II (2-3) Implementation, integration, quality assurance through peer review and testing, and deployment of the project designed in CSE 4316; social and ethical implications of computing and engineering; oral presentation, documentation and project demonstration. Prerequisite: CSE 4316 and continuation with the same team.

CSE 4319. MODELING AND SIMULATION (3-0) Techniques for system modeling and simulation of stochastic and knowledge-based systems. Modeling methods, model validation and verification procedures, and steady state solution techniques. Prerequisite: CSE 3310 and IE 3301.

CSE 4320. FUNDAMENTALS OF TELECOMMUNICATIONS SOFTWARE DEVELOPMENT (2-3) General understanding and classification of telecommunications systems and applications. Issues relating to the analysis, design, implementation, and testing of telecommunications software. Interface to hardware. A team project is required. Prerequisite: CSE 3310 and CSE 3320, or EE 3310 and EE 4330.

CSE 4321. SOFTWARE TESTING & MAINTENANCE (3-0) Study of software quality assurance, software testing, and software maintenance processes, methods and techniques including formal review techniques, software verification, validation, and testing, types of software maintenance, maintenance activities, and regression testing. Prerequisite: CSE 3310.

CSE 4322. SOFTWARE PROJECT MANAGEMENT (3-0) Introduction to software project management. Issues include effort estimation and costing, project planning and scheduling, option analysis, software quality assurance, and formal technical reviews. Prerequisite: CSE 3310.

CSE 4323. COMPUTER ARCHITECTURE II (3-0) Pipelined control and ALU designs, parallel processor organizations including SIMD and shared memory MIMD, message passing MIMD, dataflow processing, cache memory design, and processor-memory interconnections. Prerequisite: CSE 3322.

CSE 4331. DATABASE IMPLEMENTATION AND THEORY (3-0) Review of the relational model and algebra; relational calculus; relational database design theory; advanced data modeling concepts; object-oriented and object-relational databases; database system implementation techniques, including concurrency control, recovery, atomic commitment, and query processing and optimization, database security; introduction to advanced concepts, such as active, deductive, spatial, temporal, multimedia and distributed databases. Prerequisite: CSE 3330.

CSE 4342. REAL-TIME DATA ACQUISITION & CONTROL SYSTEMS (2-3) Advanced course in design of microcomputer-based systems. Emphasis is on the application of state-of-the-art microprocessors, microcomputers, and other LSI and VLSI components to real-time, interactive, and online problems. Prerequisite: CSE 3442.

CSE 4344. COMPUTER NETWORK ORGANIZATION (3-0) Design and analysis of computer networks. Emphasis on the OSI architecture but discusses other schemes (e.g., ARPAnet). Data link control, local networks, protocols/architectures, network access protocols, transport protocols, internetworking, and ISDN. Prerequisite: CSE 3320.

CSE 4346. ADVANCED COMPUTER NETWORKS (3-0) Design and engineering issues in networking. Topics include congestion control, scheduling, multicast routing, connection-oriented switching, DNS, bind, domain name space issues, flow control, traffic management, and admission control. Prerequisite: CSE 4344.

CSE 4348. MULTIMEDIA SYSTEMS (3-0) A hands-on approach to the study of principles underlying multimedia systems. Topics include multimedia systems design, multimedia hardware and software, issues in effective representation, processing, and communication of multimedia data such as text, graphics, audio, images, and video. Prerequisite: CSE 3320.

CSE 4351. PARALLEL PROCESSING (3-0) Theory and practice of parallel processing, including characterization of parallel processors, models for memory, algorithms, and interprocess synchronization. Issues in parallelizing serial computations, efficiency and speedup analysis. Programming exercises using one or more concurrent programming languages, on one of more parallel computers. Prerequisite: CSE 3302 and CSE 3322, or consent of instructor.

CSE 4353. DISTRIBUTED COMPUTING (3-0) Theory and practice of distributed computing. Topics include parallel versus distributed processing, message passing systems, shared memory, distributed objects, processing and coordination, the World Wide Web, broadcast and mobile computing. Prerequisite: CSE 3320.

CSE 4356. HONORS PROJECT I (2-3) An engineering research experience at an advanced undergraduate level. Students will survey a selected topic in the computer science and engineering literature and design an honors project under the guidance of a faculty member. Formal written and oral presentation of the project proposal is required. In weekly meetings students will discuss their designs. Credit will be given for only one of CSE 4316, CSE 4326 and CSE 4356. Prerequisite: consent of instructor and department chairperson.

CSE 4357. HONORS PROJECT II (2-3) Social and ethical implications of computing and the engineering profession are stressed while students perform the tasks identified in their proposals in CSE 4356, such as: evaluate design trade-offs, implementation, testing and experimentation. Formal written and oral presentation of the research is required. In weekly meetings students will evaluate their progress and discuss their findings. Prerequisite: CSE 4356.

CSE 4360. AUTONOMOUS ROBOT DESIGN AND PROGRAMMING (2-3) An introduction to robotics and the design and programming of autonomous robot systems. Topics include basic kinematics, dynamics, and control, as well as sensors, knowledge representation, and programming techniques. Course work includes individual and group projects involving the building and programming of simulated and real robots. Prerequisite: CSE 2320 and CSE 3320.

CSE 4361. SOFTWARE DESIGN PATTERNS (3-0) Introduction to and applications of object-oriented software design patterns, including the GRASP and Gang of Four design patterns, to software development in the object-oriented paradigm. Prerequisite: CSE 4311 (or concurrently).

CSE 4391. INDIVIDUAL PROJECTS (3-0) Special problems in computer science and engineering on an individual basis. Topics may change from semester to semester. May be repeated for credit. Departmental approval must be obtained in advance for degree credit. Prerequisite: consent of instructor and department chairperson.

CSE 4392. SPECIAL TOPICS (3-0) New developments in the field of computer science and engineering. Topic may vary from semester to semester. May be repeated for credit when topic changes. Departmental approval required in advance to use for degree credit. Prerequisite: consent of instructor.

top of page