CSE Web Menu mobileicon

Catalog

Course Catalog

Course Name Info Desc
1000 1000. Computers in Modern Society (101C) 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 130 or CSE 1010 or CSE 1100. Students who anticipate extensive study or use of computers in their future work should take CSE 1100-1102 rather than this course. 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.
1010 1010. Introduction to Computing for Engineers Three credits. Two 1-hour lectures and one 2-hour laboratory. Not open for credit to students who have passed CSE 110, 130 or 1100. Introduction to computing logic, algorithmic thinking, computing processes, a programming language and computing environment. Knowledge obtained in this course enables use of the computer as an instrument to solve computing problems. Representative problems from science, mathematics, and engineering will be solved.
1100 1100. Introduction to Computing (123C) Two credits. Two class periods of lecture and one 1-hour of laboratory period per week. Recommended preparation: MATH 1010 or equivalent.  No previous programming experience required. Not open for credit to students who have passed CSE 110C or CSE 130C. 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.
1102 1102. Object Oriented Design and Programming (133) Three credits. Three class periods of lecture and one 75-minute laboratory period per week. Prerequisite: CSE 1100 or 1010. 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. 
1401 1401. Honors Core: Computational Molecular Biology (120) (Also offered as BME 1401, MCB 1401, and PNB 1401.) Three credits. Introduction to research in computational biology through lectures, computer lab exercises, and mentored research projects. Topics include gene and genome structure, gene regulation, mechanisms of inheritance, biological databases, sequence alignment, motif finding, human genetics, forensic genetics, stem cell development, comparative genomics, early evolution, and modeling complex systems. CA 3.
2100 2100. Data Structures and Introduction to Algorithms (134) Three credits. Three class periods of lecture. Prerequisite: CSE 1102. 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.
2102 2102. Introduction to Software Engineering (230) Three credits. Three class periods and one problem session. Prerequisite: CSE 2100 and 2500; CSE 2500 may be taken concurrently. 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.Use of appropriate design and debugging tools for a modern programming language. Homework and laboratory projects that emphasize design and the use/features of a modern programming language.
2300W 2300W. Digital Logic Design (210W) Four credits. Three class periods and one 2-hour laboratory period. Prerequisite: CSE 1100 or 1102 and secondary school physics or PHYS 1010 or 1501; ENGL 1010 or 1011 or 2011 or 3800. Not open to students who have passed CSE 207 or 208W. 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.
2304 2304. Computer Architecture (201) Three credits. Prerequisite: CSE 2100 and 2500. Not open to students who have credit for CSE 207 or CSE 241 or CSE 2300W. 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.
2500 2500. Introduction to Discrete Systems (254) Three credits. Prerequisite: CSE 1102. Not open for credit to students who have passed MATH 214Q.   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.
3000 3000. Contemporary Issues in Computer Science and Engineering (260) One credit. Prerequisite: CSE 2102 and either CSE 2304 or 3666. The global and societal impact of computer science and engineering decisions, professional and ethical responsibility.
3002 3002. Social, Ethical and Professional Issues in Computer Science and Engineering (278) Three credits. Prerequisite: CSE 2102. 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.
3300 3300. Computer Networks and Data Communication (245) Three credits. Prerequisite: CSE 2304 or 3666. 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.
3302 3302. Digital Systems Design (252) (Also offered as ECE 3401.) Three credits. Prerequisite: CSE 2300W.   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.
3350 3350. Digital Design Laboratory (280) (Also offered as ECE 4401.) Three credits. Four hours of laboratory. Prerequisite or corequisite: Either CSE 3302/ECE 3401. 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.
3500 3500. Algorithms and Complexity (259) Three credits. Three class periods. Prerequisite: CSE 2100 and 2500. 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
3502 3502. Theory of Computation (237) Three credits. Prerequisite: CSE 2100 and 2500. 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.
3504 3504. Probabilistic Performance Analysis of Computer Systems (221) Three credits. Prerequisite: CSE 2100 and 2500; and one of STAT 3025Q or 3375Q or MATH 3160. 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.
3666 3666. Introduction to Computer Architecture (220) Three credits. Three 1-hour lectures and one 1-hour laboratory period. Prerequisite: CSE 2100 and 2300W. Cannot be taken after CSE 4302 or 4901. This course and CSE 2304 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. 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.
3800 3800. Bioinformatics (277) (Also offered as BME 4800.) Three credits. Prerequisite: BIOL 1107, CSE 1100 or 1010 and either STAT 3025Q or STAT 3345Q. 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.
3802 3802. Numerical Methods in Scientific Computation (257) (Also offered as ECE 3431.) Three credits. Prerequisite: CSE 1100 or 1010 and MATH 2110Q and MATH 2410Q and prerequisite or corequisite: MATH 2210Q. 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.
3810 3810. Computational Genomics (Also offered as BME 3810.)  Three credits. Prerequisite: BIOL 1107, CSE 1010 or 1100, and either STAT 3025Q or 3345Q. Computational methods for genomic data analysis.  Topics covered include statistical modeling of biological sequences, probabilistic models of DNA and protein evolution, expectation maximization and Gibbs sampling algorithms, genomic sequence variation, and applications in genomics and genetic epidemiology.
4095 4095. Special Topics in Computer Science and Engineering (298) Credits by arrangement. Prerequisites and recommended preparation vary. With a change in content, this course may be repeated for credit. Classroom course in special topics as announced in advance for each semester.
4099 4099. Independent Study in Computer Science and Engineering (299) Credits by arrangement, not to exceed 4 in any semester. Prerequisite: Consent of instructor and department head. 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.
4100 4100. Programming Language Translation (244) Three credits. Prerequisite: CSE 2102 and 3502. 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.
4102 4102. Programming Languages (233) Three credits. Prerequisite: CSE 3502. 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.
4300 4300. Operating Systems (258) Three credits. Prerequisite: CSE 2102; CSE 2304 or 3666. 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.
4302 4302. Computer Organization and Architecture (249) Three credits. Three 1-hour lectures.  Prerequisite: CSE 2300W; CSE 3666. This course and CSE 243 may not both be taken for credit. Cannot be taken after CSE 4901.  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.
4500 4500. Parallel Systems (228) Three credits. Prerequisite: CSE 2304 or 3666, and CSE 3500.  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.
4701 4701. Principles of Data Bases (255) Three credits. Prerequisite: CSE 3500. 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.
4703 4703. Principles of Computer Graphics (275) Three credits. Prerequisite: CSE 3500 and MATH 2110Q and either MATH 2210Q or 3210Q. Not open for credit to students who have passed MATH 255. 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.
4705 4705. Artificial Intelligence (282) Three credits. Prerequisite: CSE 3500. 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.
4707 4707. Computer Security (281) Three credits. Prerequisite: CSE 2102 and either 2304 or 3666. Introduction to computer security and the design of secure systems. Cryptographic tools. Operating system security and access control. Network, software and database security. Randomness generation. Malicious software. Digital rights management, anonymity and privacy. Various attacks and countermeasures. Ethical, legal and business aspects.
4709 4709.   Networked Embedded Systems Three credits. Prerequisite: CSE 2300W, 3666 and 3300 or equivalent with permission of the instructor. Introduction to the basic concepts, challenges, and methods for designing networked embedded systems. Examines related hardware, software, and system-level design. Hardware topics include various design alternatives (such as microcontrollers, digital signal processors (DSP), and field-programmable gate array (FPGA)) in resource-constrained environments. Software issues include operating systems, programming languages, program verification and analysis. System-level topics include autonomous wireless sensor network design, power and resource management, security and privacy.
4900 4900. Independent Design Laboratory (265) Three credits. Prerequisite: CSE 2102; instructor and department head consent. May be taken twice for credit. Experimental design project undertaken by the student by special arrangement with a faculty member of the Department of Computer Science and Engineering. 
4901 4901. Digital Hardware Laboratory (261) (Also offered as ECE 4402.) Three credits. One 4-hour laboratory period. Prerequisite: CSE 4302; ECE 3401 or CSE 3302.  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.
4902 4902. Software Engineering Laboratory (262) Three credits. Four program design periods. Prerequisite: CSE 2102. 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 2102 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.
4903 4903. Microprocessor Laboratory (268) Three credits. One lecture and one 3-hour laboratory period. Prerequisite: CSE 2304 or 3666. 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.
4904 4904. Computer Science Design Laboratory (269) Three credits. One 4-hour laboratory period. Prerequisites and recommended preparation vary. With a change in content 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.
4905 4905. Networking and Distributed Systems Laboratory (263) Three credits. Four hour laboratory. Prerequisite: CSE 3300; CSE 2304 or 3666. 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.
4939W 4939W.  Computer Science and Engineering Design Project (293W) Three credits. Prerequisite: CSE 4300 and either CSE 4901 or 4902 or 4905 or 4900 or 4903 or 4904; ENGL 1010 or 1011 or 2011 or 3800. Required major design experience. 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.
4940 4940. Computer Science and Engineering Design Project II Three credits. Prerequisite: CSE 4939W. The second semester of the required year long major design experience. The semester will be spent developing, testing, and evaluating the software and/or hardware system begun in CSE 4939W. The project will culminate in the delivery of a working system and will include a formal, public presentation, and written documentation. Oral and written progress reports are required.
4950 4950. Electrical and Computer Engineering Design I (290) (Also offered as ECE 4901.) 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 4951/ECE 4902 is carried out. Written progress reports, a proposal, an interim report, a final report, and oral presentations are required.
4951 4951. Electrical and Computer Engineering Design II (291) (Also offered as ECE 4902.) Three credits. Prerequisite: ECE 4901. Hours to be arranged. Design of a device, circuit, system, process, or algorithm. Team solution to an engineering design problem as formulated in CSE 4950/ECE 4901, from first concepts through evaluation and documentation. Written progress reports, a final report, and oral presentations are required.