-
Credits: 3
Prerequisites: None
This course is the first of a two-course sequence that introduces students to realm of computing and teaches them how to use computers effectively in problem solving. Student will learn how to formulate data and procedural abstractions, and apply basic problem solving strategies and techniques to problems from different domains. Students are automatically enrolled in the accompanying lab section, in which students will get practical hands-on experience with the material covered in the lecture.
-
Credits: 3
Prerequisites: CSE 111
A continuation of the concepts introduced in EG 111. Use of computers in the Engineering Computer Facilities is an integral part of this course.
-
Credits: 3
Prerequisites: CSE 232 Advanced Programming
The focus in this course is on the effective use of the computer in problem solving. The student will learn how to formulate data and procedural abstractions and deal with the complexities of large software systems. As a vehicle for handling this complexity the functional programming language Scheme will be used.
-
Credits: 3
Prerequisites: CSE 232
Introduction to mathematical techniques fundamental to Computer Engineering and Computer Science. Topics: mathematical logic, induction, set theory, relations, functions, recursion, recurrence relations, introduction to asymptotic analysis, algebraic structures, graphs, machine computation.
-
Credits: 4
Prerequisites: EG 111/112
This course is the first of a two-course sequence that introduces students to realm of computing and teaches them how to use computers effectively in problem solving. Student will learn how to formulate data and procedural abstractions, and apply basic problem solving strategies and techniques to problems from different domains. Students are automatically enrolled in the accompanying lab section, in which students will get practical hands-on experience with the material covered in the lecture.
-
Credits: 4
Prerequisites: CSE 20210, CSE 20211, CSE 21211
This is the second part of a two-course introduction-to-computing sequence, intended primarily for Computer Science and Computer Engineering majors. This course deepens and broadens student exposure to imperative and object-oriented programming and elementary data structure usage and design. Topics covered include modularity, specification, data abstraction, classes and objects, genericity, inheritance, and subtyping. An accompanying laboratory will provide comprehensive programming practice.
-
Credits: 4
Prerequisites: EG 10112 or PHYS 10310
Design of combinational and of sequential logic networks; overview of VLSI technology and computer architecture.
-
Credits: 3
Prerequisites: Math 125 or equivalent; EG 120, or prior programming experience in a high-level language.
Top-down analysis, structured programming, and a discussion of the Unix operating system. Basic analysis of algorithms, algorithm development, implementation and debugging and testing of programs. Students will write a series of programs in the C++ language to learn the concepts that are taught and to acquire experience in solving problems.
-
Credits: 3
Prerequisites: CSE 232
Introduction to mathematical techniques fundamental to Computer Engineering and Computer Science. Topics: mathematical logic, induction, set theory, relations, functions, recursion, recurrence relations, introduction to asymptotic analysis, algebraic structures, graphs, machine computation.
-
Credits: 4
Prerequisites: EG 111/112
This course is the first of a two-course sequence that introduces students to realm of computing and teaches them how to use computers effectively in problem solving. Student will learn how to formulate data and procedural abstractions, and apply basic problem solving strategies and techniques to problems from different domains. Students are automatically enrolled in the accompanying lab section, in which students will get practical hands-on experience with the material covered in the lecture.
-
Credits: 4
Prerequisites: CSE 211
The focus in this course is on the abstraction, specification, and object-oriented design of computer programs. The student will learn to construct reliable, high-quality software, and will be deeply familiar with current notions of specification, design, and programming. Students will work on single programs and large multi-programmer projects. The emphasis is on modularity: how to get the modules right and how to organize a program as a collection of reliable components. The C++ and Eiffel programming languages are used as a vehicle for learning these concepts, even thought the techniques presented are language independent. Programming skills will be developed in an accompanying Laboratory section.
-
Credits: 4
Prerequisites: EG112 or PHYS131
Design of combinational and of sequential logic networks; overview of VLSI technology and computer architecture.
-
Credits: 3
Prerequisites: Math 125 or equivalent; EG 120, or prior programming experience in a high-level language.
Top-down analysis, structured programming, and a discussion of the Unix operating system. Basic analysis of algorithms, algorithm development, implementation and debugging and testing of programs. Students will write a series of programs in the C++ language to learn the concepts that are taught and to acquire experience in solving problems.
-
Credits: 3
Prerequisites: CSE 232 Advanced Programming
The focus in this course is on the effective use of the computer in problem solving. The student will learn how to formulate data and procedural abstractions and deal with the complexities of large software systems. As a vehicle for handling this complexity the functional programming language Scheme will be used.
-
Credits: 3
Prerequisites: CSE 20110, CSE 20232 and CSE 30331
The theory of automata and formal language is developed along with applications. Various classes of automata, formal languages, and the relations between these classes are studied. Restricted models of computation: finite automata and pushdown automata; grammars and their relations to automata; parsing; Turing machines; limits of computation; undecidable problems, the classes of P and NP.
-
Credits: 3
Prerequisites: CSE 331
Effective techniques in managing, retrieving, and updating information from a database system. Focusing primarily on relational databases, the course presents the entity-relationship model, query processing, and normalization. Topics such as relational calculus and algebra, integrity constraints, distributed databases, and data security will also be discussed. The Final Project will consist of the design and implementation of a database system.
-
Credits: 3
Prerequisites: Knowledge in operating systems and/or computer networks. Students may co-register with either CSE 341 or CSE 364.
This course is designed for juniors and seniors in Computer Science and Engineering and will provide a programming-oriented introduction to advanced systems and networking topics. The course will address the basics of client-server computing, streaming media, peer-to-peer systems, remote procedure calls, and specific technologies such as CORBA, RPC, SOAP, Java RMI, web servers, and RTCP/RTSP. Projects will allow students to get hands-on experience and include the development of wide-area distributed systems and server applications. The course builds on topics covered in Operating Systems (CSE 341) and Computer Networks (CSE 364); students may co-register with either course. The course has a strong emphasis on programming and requires good knowledge of C, C++, or Java.
-
Credits: 3
Prerequisites: The course includes significant programming projects; background in programming is necessary.
This course introduces students to fundamental topics on the principles, design, implementation, and performance of computer networks. Topics covered include: Internet protocols, congestion control, switching and routing, mobile IP and ad-hoc networks, network security, the end-to-end arguments and peer-to-peer systems.
-
Credits: 4
Prerequisites: CSE 221 and either CSE 212 or CSE 232
An introduction to many of the architectural concepts present in current scalar machines, together with an introduction to assembly language programming and top-down design methodology. Also covers instruction sets; computer arithmetic; introduction to microprogramming; performance evaluation. Commercial computer-aided design software is used to deepen the student's understanding of the processes and tools used in designing modern computers.
-
Credits: 4
Prerequisites: CSE 30321
A continuation of the architectural concepts presented in CSE 30321, Computer Architecture I. Detailed study of processor design; hardwired and micro-programmed control; pipelining; memory organization; I/O and bus protocols; parallel processors. The course makes extensive use of commercial computer-aided design tools and culminates with a major project of designing and simulating and implementing a complete microprocessor.
-
Credits: 3
Prerequisites: CSE 210, CSE 232
Fundamental techniques in the design and analysis of non-numerical algorithms and their data structures. Elementary data structures such as lists, stacks, queues; more advanced ones such as deques, priority queues, and search trees. Design techniques such as divide-and-conquer. Sorting and searching algorithms. File compression, geometric methods, linear programming, random number generators, and string processing.
-
Credits: 3
Prerequisites: CSE 20232 (232), CSE 30321 (321)
Introduction to all aspects of modern operating systems. Topics include process management, process synchronization, memory management, storage management, protection and security. The course will also survey the design of modern operating systems.
-
Credits: 4
Prerequisites: CSE 221 and either CSE 212 or CSE 232
An introduction to many of the architectural concepts present in current scalar machines, together with an introduction to assembly language programming and top-down design methodology. Also covers instruction sets; computer arithmetic; introduction to microprogramming; performance evaluation. Commercial computer-aided design software is used to deepen the student's understanding of the processes and tools used in designing modern computers.
-
Credits: 4
Prerequisites: CSE 321
A continuation of the architectural concepts presented in CSE 321, Computer Architecture I. Detailed study of processor design; hardwired and microprogrammed control; pipelining; memory organization; I/O and bus protocols; parallel processors. The course makes extensive use of commercial computer-aided design tools and culminates with a major project of designing and simulating and implementing a complete microprocessor.
-
Credits: 3
Prerequisites: CSE 210, CSE 232
Fundamental techniques in the design and analysis of non-numerical algorithms and their data structures. Elementary data structures such as lists, stacks, queues; more advanced ones such as deques, priority queues, and search trees. Design techniques such as divide-and-conquer. Sorting and searching algorithms. File compression, geometric methods, linear programming, random number generators, and string processing.
-
Credits: 3
Prerequisites: CSE 232, CSE 321, CSE 331 and Corequisite: CSE 322
An operating system is a layer of software that manages hardware resources and that provides user programs with a simple and consistent interface to the machine. In this course, we will examine services and abstractions commonly provided by operating systems, and we will study the underlying mechanisms used to implement them.
Topics include process management and synchronization, interprocess communication, memory management, input/output and filesystems. Programming assignments and case studies are used to illustrate the fundamental concepts.
-
Credits: 3
Prerequisites: CSE 331
Effective techniques in managing, retrieving, and updating information from a database system. Focusing primarily on relational databases, the course presents the entity-relationship model, query processing, and normalization. Topics such as relational calculus and algebra, integrity constraints, distributed databases, and data security will also be discussed. The Final Project will consist of the design and implementation of a database system.
-
Credits: 3
Prerequisites: CSE 210, CSE 232 and CSE 331
The theory of automata and formal language is developed along with applications. Various classes of automata, formal languages, and the relations between these classes are studied. Restricted models of computation: finite automata and pushdown automata; grammars and their relations to automata; parsing; Turing machines; limits of computation; undecidable problems, the classes of P and NP.
-
Credits: 3
Prerequisites: Knowledge in operating systems and/or computer networks. Students may co-register with either CSE 341 or CSE 364.
This course is designed for juniors and seniors in Computer Science and Engineering and will provide a programming-oriented introduction to advanced systems and networking topics. The course will address the basics of client-server computing, streaming media, peer-to-peer systems, remote procedure calls, and specific technologies such as CORBA, RPC, SOAP, Java RMI, web servers, and RTCP/RTSP. Projects will allow students to get hands-on experience and include the development of wide-area distributed systems and server applications. The course builds on topics covered in Operating Systems (CSE 341) and Computer Networks (CSE 364); students may co-register with either course. The course has a strong emphasis on programming and requires good knowledge of C, C++, or Java.
-
Credits: 3
Prerequisites: The course includes significant programming projects; background in programming is necessary.
This course introduces students to fundamental topics on the principles, design, implementation, and performance of computer networks. Topics covered include: Internet protocols, congestion control, switching and routing, mobile IP and ad-hoc networks, network security, the end-to-end arguments and peer-to-peer systems.
-
Credits: 3
Prerequisites: CSE/EE 40462 (462) and/or EE 446
This is the capstone course for the "Bits to Chips" sequence in EE and CSE. The emphasis will be upon developing the ability to understand the topics in isolation, but also to be able to make trade-offs, even when detailed information is changing or incomplete. A concurrent lab component will focus on approaches to validating integrated microsystems: specifically, students will evaluate the chips designed and manufactured through VLSI Design (CSE/EE 462) and IC Fabrication (EE 446) courses and extrapolate on mapping these designs to future technologies
-
Credits: 3
Prerequisites: CSE 331 and CSE 232
Techniques for designing efficient computer algorithms and for analyzing computational costs of algorithms. Common design strategies such as dynamic programming, divide-and-conquer, and Greedy methods. Problem solving approaches such as sorting, searching, and selection. Lower bounds. Data Structures. Algorithms for graph problems, geometric problems, and other selected problems. Computationally intractable problems (NP-completeness). Parallel Algorithms.
-
Credits: 3
Prerequisites: a. Courses: None b. Topics: Familiarity with a standard programming language such as Fortran, Pascal, c. Not open to CSE graduate students, who should enroll in CSE 531, instead.
An introduction to modern computing concepts and computational models as embodied in a number of different classes of languages. These include (1) function-based languages such as Lisp, Scheme, SASL, ML; (2) logic-based languages such as rolog, Parlog, Strand, OPS; and (3) object oriented languages such as Smalltalk, C++.
-
Credits: 3
Prerequisites: Linear Algebra and Matrix Theory; Familiarity with a high-level computer language
Two and three-dimensional geometric algorithms and transformations; curve and surface representation; visible surface determination; illumination and shading; advanced modeling; animation; generation and sensing of light.
-
Credits: 3
Prerequisites: Advanced standing in engineering or science. Some knowledge of SCHEME or LISP is helpful (see instructor).
The philosophical base that makes up Artificial Intelligence today. Development of various representations commonly used. A study of knowledge bases including several applications and expert systems. A close look at genetic algorithms, a new area of Artificial Intelligence.
-
Credits: 3
Prerequisites: None
This course seeks to develop a solid foundation for reasoning about ethical, professional, and social controversies that arise in the computing field. Emphasis is placed on identifying the appropriate legal and professional context and applying sound critical-thinking skills in the analysis of a problem. Topics covered include relevant professional codes of ethics, encryption/privacy /surveillance issues, freedom of speech issues, "cracking" of computer systems, development of safety-critical software, whistle-blowing scenarios, and intellectual property issues. This course relies heavily on case study of real incidents, both historical and current.
-
Credits: 3
Prerequisites: CSE 30331 (331)
A comprehensive course about the methodologies required to control the complexity involved in the development of large software systems. Students are given the opportunity to practically apply software engineering techniques taught in this course through several medium-size programming problems and one large-scale development project. Emphasis is on the use of requirements and prototyping for design and software reliability, reuse and development management.
-
Credits: 3
Prerequisites: EG 10111 (111) and 10112 (112) or MATH 30440
Computer techniques for simulating the behavior of physical, biological, engineering and social systems, including both natural and artificial systems. Applications include scientific inquiry, engineering design, manufacturing planning, training, entertainment, and games. Topics include animation, visualization, and graphical analysis of results.
-
Credits: 3
Prerequisites: CSE 30331 (331)
An introduction to the fundamental techniques and tools used in compiler construction. Topics include: high level language specification via context free grammars, lexical analysis, parsing techniques such as top-down, bottom-up, and LR parsing, run-time environments, and code generation and optimization.
-
Credits: 3
Prerequisites: CSE 341
An introduction to the concepts and practices of computer system administration including software management, system device management, system security, management of system services, disaster planning and disaster recovery.
-
Credits: 3
Prerequisites: Preferred: Operating Systems, IP networks
An introduction to the concepts and practices of computer network management including network installation, monitoring, and troubleshooting.
-
Credits: 3
Prerequisites: CSE 210, CSE 232, and CSE 331
The theory of automata and formal language is developed along with applications. Various classes of automata, formal languages, and the relations between these classes are studied. Restricted models of computation: finite automata and pushdown automata; grammars and their relations to automata; parsing; Turing machines; limits of computation; undecidable problems, the classes of P and NP.
Note: This class has been discontinued as of Spring 2004 and replaced by CSE 351 - Thoery of Computing.
-
Credits: 3
Prerequisites: CSE 30322 (322)
Intergrated hardware and software development, construction and test of embedded systems by design teams to meet specifications subject to technical, economic and environmental constraints.
-
Credits: 3
Prerequisites: Fundamental probability theory
This course is designed for seniors in Electrical Engineering. It presents broad coverage of existing and emerging data communication networks. Data networks are rapidly evolving and becoming an integral part of the global communications system. This course introduces the fundamental concepts of data networks in terms of the ISO layered architecture. The functions that occur at the various levels are explored. These topics include error control, flow control, and routing. Examples networks include local area networks such as Ethernet and Token Ring networks, proposals for wide and metropolitan area networks such as FDDI and DQDB, and the eventual integration of data communications into a single network under ISDN (Integrated Services Digital Network) and Broadband ISDN.
-
Credits: 3
Prerequisites: CSE 221, EE 242. Senior standing required.
CMOS devices and circuits, scaling and design rules, floor planning, data and control flow, synchronization and timing. Individual design projects.
-
Credits: 3
Prerequisites: Some knowledge in operating systems programming is desired. C Programming skills are expected.
Design of systems that require functional correctness and timeliness. Topics include real-time scheduling, communication, operating systems, Quality-of-Service, and real-time programming languages. Students will perform several programming and homework assignments and a semester project (in teams).
-
Credits: 3
Prerequisites: Familiarity with a modern programming language is desirable, as well as basic knowledge of probability, linear algebra, and differential equations.
This course studies the use of computer modeling and simulation of proteins (biophysics) and protein networks (systems biology). Three applications serve as examples to introduce computational methods: protein folding, docking of ligands to proteins (including protein-protein docking), and the study of protein-protein interaction networks. The emphasis is on methods that are truly useful to the study of biological molecules. There is no long baggage of methods of historical importance that are not applicable to biomolecules. From the engineering perspective, both mathematical and computational issues are considered. An introduction to the biological issues is also provided. The course is structured in modules and tutorials. Each module introduces a computational technique: students apply the method under study to a biologically relevant example, and then the theory of the method is presented. Tutorials go along with the modules and provide background on the computational and mathematical background needed to successfully complete each module. Finally, there are assignments and a final project and paper to put it all together. The final project will ideally include science students with a system relevant to their research and computational or engineering students who can contribute algorithms and software. Software especially developed for this course as well as existing tools will be used for the projects, modules, and tutorials. The course will introduce students to the scripting language Python. There will also be guest lectures by different experts in the field.
-
Credits: 3
Prerequisites: CSE30331 for CSE students, CSE 20232 or equivalent for non-CSE students
Broad overview of bioinformatics with a substantial problem-solving component. Topics include: generative models for sequences, pairwise sequence alignment, basic methods in molecular phylogeny and evolution, ab initio gene prediction, whole genome comparisons, genome assembly and analysis.
-
Credits: 3
Prerequisites: Completion of CSE 211,212
An introduction to the major biometric techniques (fingerprint, face, iris, …), the underlying pattern recognition concepts, and current concerns regarding privacy and social / ethical issues.
-
Credits: 3
Prerequisites: One course in programming (or the equivalent) and one course (or the equivalent) in probability theory.
Introduction and application of stochastic simulation theory and techniques to modeling Environmental Biocomplexity
-
Credits: 3
Prerequisites: CSE 341-Operating Systems
This course is a survey of topics in realm of computer security. This course will introduce the students to many contemporary topics in computer security ranging from PKI's (Public Key Infrastructures) to cyber-warfare to security ethics. Students will learn fundamental concepts of security that can be applied to many; traditional aspects of computer programming and computer systems design. The course will culminate in a research project where the student will have an opportunity to more fully investigate a topic related to the course.
-
Credits: 3
Prerequisites:
This course builds on the basic techniques introduced in Fundamentals of Computing I and II but emphasizes a team approach to the design and implementation of software. A variety of team structures will be considered including two person teams for extreme programming and three
person teams as used in the ACM programming contest. Student teams will develop software to solve problems ranging across the computer science curriculum and will present their solutions to the class for critique and analysis. Students will participate in the fall campus programming contest and selected students will represent the University in the ACM regional programming contest.
-
Credits: 3
Prerequisites: CSE 232
Introduction to concepts, theories and techniques of Internet and WWW programming.
-
Credits: 3
Prerequisites: Elementary Probability/Statistics; Programming experience in a language such as C/C++, Java, Matlab
Data mining is the process of automatic discovery of (potentially) useful information, patterns, associations, and even anomalies. It is becoming a ubiquitous and pervasive concept in various sectors, including but not limited to medicine, biology, commerce, WWW, security, network intrusion and fraud detection, space research.
Data mining uses methods from multiple fields including: machine learning, pattern recognition, databases, probability, statistics, information theory and visualization. The focus of this course will primarily be the machine learning component, with relevant inclusions and references from probability, statistics, pattern recognition, and information theory. The course will provide an introduction to the key principles, techniques (in data preparation and preprocessing, feature selection, classification, regression, clustering, combining multiple models, etc.), performance evaluation criteria, and applications. It will give you an opportunity to implement and experiment with some of the concepts, and apply them to the real world data sets. It will discuss some of the challenges encountered in data mining applications in the real world --- massive data sets, high class imbalance in data, unlabeled data, etc. It will also touch upon some of the advances in related fields such as web mining, intrusion detection, bioinformatics, distributed data mining. In addition, we will discuss the role of data mining in the society, drawing inferences from the popular media. Given the flood of data, there is a lot of information to mine and data mining is, indeed, becoming a very compelling field. Join the hunt for patterns in data.
-
Credits: 3
Prerequisites: Permission Required
This class seeks to introduce students to some basic concepts of computer-generated imagery as it is used in the field of visual effects, and to delve into some of the technical underpinnings of the field. While some focus will rely on artistic critique and evaluation, most of the emphasis of the class will be placed on understanding fundamental concepts of 3d modeling, texturing, lighting, rendering, and compositing. Those who excel in the visual effects industry are those who have both a strong aesthetic sense coupled with a solid understanding of what the software being used is doing ‘under the hood’. This class, therefore, will seek to stress both aspects of the industry.
From a methodology standpoint, the class will consist of lectures, several projects that will be worked on both in-class and out of class, an on-site photo shoot, and extensive open discussion. The nature of the material combined with the fact that this is the first execution of the class will mean that a significant degree of flexibility will need to be incorporated into the class structure.
-
Credits: 3
Prerequisites: CSE 346
To develop strong techniques in database design; to learn advanced topics in database theory; to strengthen expertise in database implementation; to acquire knowledge of various methods of web-based database connections and interfaces; to become aware of latest trends in database research; to learn about newest developments in the industry; to provide students with the experience of designing an efficient self-contained database system.
-
Credits: 3
Prerequisites: CSE 321, CSE 322
Building on the architectural concepts developed in CSE 321/322, this course expands the understanding of all aspects of computer architecture. An in-depth study of several critical processor components is complemented with case studies that show how the concepts discussed in class are implemented under the constraints of a real product. In addition, the system components that interact with the microprocessor are discussed, including the operating system, the memory controller and the I/O subsystem. Throughout the course, homework assignments and projects will be used to further develop skills needed to carry out computer architecture research, including written and oral communication skills, the abstract analysis of architectural trends, measurement of real systems and architectural simulation.
-
Credits: 3
Prerequisites: Digital logic design/Data structures/Basic knowledge in VLSI (or taking VLSI design in the same semester)
This is a senior/entry graduate level course intended to expose students to the fundamentals of CAD tools for the design and analysis of digital systems. With the most advanced CAD tools it is possible to design Systems On a Chip (SOCs) featuring more than 100 million gates with device feature sizes of _ 0:18_m.
However, these tools are not "push-button" tools. In order to obtain optimum results it is crucial for a designer
to understand the underlying algorithms. The course aims at introducing to students the theory and implementation behind commercial CAD tools so that they will be able to contribute to the development of such tools as well as be productive users of such tools. The main topics include basic algorithms for CAD, digital system modeling, timing and power analysis, logic/architectural synthesis, physical level design, and system-level design.
-
Credits: 3
Prerequisites: Knowledge of artificial intelligence methods.
This course is designed to provide a forum for applying and testing artificial intelligence methods and models, especially behavior-based techniques, on a robot. While models will be evaluated with respect to their theoretical tenability (i.e., conceptual clarity, support by empirical data, plausibility), most emphasis will be given to issues of practicality (i.e., feasibility of implementation, real-time/real-world issues, computational resources, etc.). These practical considerations will be extensively studied in simulations as well as real-world implementations on a variety of robots. Implementations might also comprise new ideas hopefully giving rise to original research results
-
Credits: 3
Prerequisites: CSE 221, CSE 321 and CSE 331
This course provides a comprehensive and detailed treatment of digital systems testing and testable design. Fundamental concepts as well as the latest advances in this rapidly changing field are considered. Topics include fault modeling and simulation, combinational and sequential circuit test generation, memory and delay test, and design-for-testability methods such as scan and built-in self-test. Testing of embedded cores in systems-on-chip environment is also covered.
-
Credits: 3
Prerequisites: None
This course introduces students to topics on the principles, design, implementation, and performance of computer networks. Topics include: Internet protocols and routing, congestion control, switching and routing, mobile IP and ad-hoc networks, network security, the end-to-end arguments, peer-to-peer systems and other current research topics.
-
Credits: 3
Prerequisites: CSE 330341
Design and implementation of systems composed from many computers owned by distinct people spread over a wide area. Topics may include distributed file systems, operating systems, peer-to-peer systems, mobile computing, security, fault tolerance, and fundamental algorithms. Students will have the opportunity to use, modify, and evaluate several working distributed systems for scientific computing and mobile collaboration. A course project and a final paper are required.
-
Credits: 3
Prerequisites: CSE 30264 (or equivalent)
This course provides an introduction to the standards and protocols in wireless communications and discusses challenges and applications in mobile computing. Students will learn the basics of WiFi, Bluetooth, WiMax, Zigbee, software-defined radios, and other technologies and standards. The course will be project-oriented, i.e., students will tackle wireless and mobile computing challenges hands-on using devices and systems such as smartphones, sensor devices such as motes, wireless routers, laptops, and PDAs.
-
Credits: 3
Prerequisites: None
Design for manufacture looks at the process of designing a product for high volume manufacture. Topics covered include manufacturing variation and design robustness in the face of variation, design validation (assuring the design does what it is intended to do) and verification (assuring the design implementation matches the design and meets manufacturing constraints), testability, reliability.
-
Credits: 3
Prerequisites: CSE 210, CSE 232, and CSE 331
The theory of automata and formal language is developed along with applications. Various classes of automata, formal languages, and the relations between these classes are studied. Restricted models of computation: finite automata and pushdown automata; grammars and their relations to automata; parsing; Turing machines; limits of computation; undecidable problems, the classes of P and NP.
Note: This class has been discontinued as of Spring 2004 and replaced by CSE 351 - Thoery of Computing.
-
Credits: 3
Prerequisites: CSE 331 and CSE 232
Techniques for designing efficient computer algorithms and for analyzing computational costs of algorithms. Common design strategies such as dynamic programming, divide-and-conquer, and Greedy methods. Problem solving approaches such as sorting, searching, and selection. Lower bounds. Data Structures. Algorithms for graph problems, geometric problems, and other selected problems. Computationally intractable problems (NP-completeness). Parallel Algorithms.
-
Credits: 3
Prerequisites: CSE 322
Intergrated hardware and software development, construction and test of embedded systems design teams to meet specifications subject to technical, economic and environmental constraints.
-
Credits: 3
Prerequisites: CSE 422
Integrated hardware and software development, construction and test of digital systems by design teams to meet specifications subject to technical, economic and environmental constraints.
-
Credits: 3
Prerequisites: a. Courses: None b. Topics: Familiarity with a standard programming language such as Fortran, Pascal, c. Not open to CSE graduate students, who should enroll in CSE 531, instead.
An introduction to modern computing concepts and computational models as embodied in a number of different classes of languages. These include (1) function-based languages such as Lisp, Scheme, SASL, ML; (2) logic-based languages such as rolog, Parlog, Strand, OPS; and (3) object oriented languages such as Smalltalk, C++.
-
Credits: 3
Prerequisites: CSE 331, CSE 341
A comprehensive course about the methodologies required to control the complexity involved in the development of large software systems. Students are given the opportunity to practically apply software engineering techniques taught in this course through a large project involving design, implementation and testing.
-
Credits: 3
Prerequisites: CSE 411 and CSE 413, or graduate standing, or consent of the Instructor
Introduction to object-oriented computing and its application. Topics include: type theory, classes, inheritance, exceptions, templates and patterns, the C++ and Java programming languages.
-
Credits: 3
Prerequisites: EG 111 and 112 or MATH 323, MATH 325
Computer techniques for simulating the behavior of physical, biological, engineering and social systems, including both natural and artificial systems. Applications include scientific inquiry, engineering design, manufacturing planning, training, entertainment, and games. Topics include animation, visualization, and graphical analysis of results.
-
Credits: 3
Prerequisites: CSE 331
An introduction to the fundamental techniques and tools used in compiler construction. Topics include: high level language specification via context free grammars, lexical analysis, parsing techniques such as top-down, bottom-up, and LR parsing, run-time environments, and code generation and optimization.
-
Credits: 3
Prerequisites: CSE 341
An introduction to the concepts and practices of computer system administration including software management, system device management, system security, management of system services, disaster planning and disaster recovery.
-
Credits: 3
Prerequisites: Fundamental probability theory
This course is designed for seniors in Electrical Engineering. It presents broad coverage of existing and emerging data communication networks. Data networks are rapidly evolving and becoming an integral part of the global communications system. This course introduces the fundamental concepts of data networks in terms of the ISO layered architecture. The functions that occur at the various levels are explored. These topics include error control, flow control, and routing. Examples networks include local area networks such as Ethernet and Token Ring networks, proposals for wide and metropolitan area networks such as FDDI and DQDB, and the eventual integration of data communications into a single network under ISDN (Integrated Services Digital Network) and Broadband ISDN.
-
Credits: 3
Prerequisites: CSE 341
An introduction to the concepts and practices of computer network management including network installation, monitoring, and troubleshooting.
-
Credits: 3
Prerequisites: CSE 221, EE 242. Senior standing required.
CMOS devices and circuits, scaling and design rules, floor planning, data and control flow, synchronization and timing. Individual design projects.
-
Credits: 3
Prerequisites: Linear Algebra and Matrix Theory; Familiarity with a high-level computer language
Two and three-dimensional geometric algorithms and transformations; curve and surface representation; visible surface determination; illumination and shading; advanced modeling; animation; generation and sensing of light.
-
Credits: 3
Prerequisites: Advanced standing in engineering or science. Some knowledge of SCHEME or LISP is helpful (see instructor).
The philosophical base that makes up Artificial Intelligence today. Development of various representations commonly used. A study of knowledge bases including several applications and expert systems. A close look at genetic algorithms, a new area of Artificial Intelligence.
-
Credits: 3
Prerequisites: Advanced standing in Engineering or Science
A study of the origin of artificial neural networks and their relationship to the biological world. An evaluation of four basic neural network structures: their properties, mathematical descriptions, and applications.
-
Credits: 3
Prerequisites: None
This course seeks to develop a solid foundation for reasoning about the difficult ethical, professional, and social controversies that arise in the computing field. Emphasis is placed on identifying the appropriate legal and professional context and applying sound critical thinking skills in the analysis of a problem. Topics covered include relevant professional codes of ethics, encryption/privacy/surveillance issues, freedom of speech issues, "cracking" of computer systems, development of safety-critical software, whistle-blowing scenarios, and intellectual property issues. This course relies heavily on case study of real incidents, both historical and current.
-
Credits: 3
Prerequisites: Senior standing in CS or CPEG
A senior design experience incorporating scholarly research and development of systems, tools, and techniques to address a research question. Students will be presented with a problem domain and a research problem description, and will be required to perform problem analysis, identify a potential solution, place the solution in the context of existing work, implement a prototype of the solution, test and assess the prototype, document all steps and present their work.
-
Credits: 3
Prerequisites:
A research project at the undergraduate level under the supervision of a faculty member.
-
Credits: 3
Prerequisites: CSE 321, CSE 322
Building on the architectural concepts developed in CSE 321/322, this course expands the understanding of all aspects of computer architecture. An in-depth study of several critical processor components is complemented with case studies that show how the concepts discussed in class are implemented under the constraints of a real product. In addition, the system components that interact with the microprocessor are discussed, including the operating system, the memory controller and the I/O subsystem. Throughout the course, homework assignments and projects will be used to further develop skills needed to carry out computer architecture research, including written and oral communication skills, the abstract analysis of architectural trends, measurement of real systems and architectural simulation.
-
Credits: 3
Prerequisites: CSE/EE 462 and/or EE 446
This is the capstone course for the "Bits to Chips" sequence in EE and CSE. The emphasis will be upon developing the ability to understand the topics in isolation, but also to be able to make trade-offs, even when detailed information is changing or incomplete. A concurrent lab component will focus on approaches to validating integrated microsystems: specifically, students will evaluate the chips designed and manufactured through VLSI Design (CSE/EE 462) and IC Fabrication (EE 446) courses and extrapolate on mapping these designs to future technologies
-
Credits: 3
Prerequisites: Elementary Probability/Statistics; Programming experience in a language such as C/C++, Java, Matlab
Data mining is the process of automatic discovery of (potentially) useful information, patterns, associations, and even anomalies. It is becoming a ubiquitous and pervasive concept in various sectors, including but not limited to medicine, biology, commerce, WWW, security, network intrusion and fraud detection, space research.
Data mining uses methods from multiple fields including: machine learning, pattern recognition, databases, probability, statistics, information theory and visualization. The focus of this course will primarily be the machine learning component, with relevant inclusions and references from probability, statistics, pattern recognition, and information theory. The course will provide an introduction to the key principles, techniques (in data preparation and preprocessing, feature selection, classification, regression, clustering, combining multiple models, etc.), performance evaluation criteria, and applications. It will give you an opportunity to implement and experiment with some of the concepts, and apply them to the real world data sets. It will discuss some of the challenges encountered in data mining applications in the real world --- massive data sets, high class imbalance in data, unlabeled data, etc. It will also touch upon some of the advances in related fields such as web mining, intrusion detection, bioinformatics, distributed data mining. In addition, we will discuss the role of data mining in the society, drawing inferences from the popular media. Given the flood of data, there is a lot of information to mine and data mining is, indeed, becoming a very compelling field. Join the hunt for patterns in data.
-
Credits: 3
Prerequisites: CSE 232
Introduction to concepts, theories and techniques of Internet and WWW programming.
-
Credits: 3
Prerequisites: Knowledge of artificial intelligence methods.
This course is designed to provide a forum for applying and testing artificial intelligence methods and models, especially behavior-based techniques, on a robot. While models will be evaluated with respect to their theoretical tenability (i.e., conceptual clarity, support by empirical data, plausibility), most emphasis will be given to issues of practicality (i.e., feasibility of implementation, real-time/real-world issues, computational resources, etc.). These practical considerations will be extensively studied in simulations as well as real-world implementations on a variety of robots. Implementations might also comprise new ideas hopefully giving rise to original research results
-
Credits: 3
Prerequisites: CSE 346
To develop strong techniques in database design; to learn advanced topics in database theory; to strengthen expertise in database implementation; to acquire knowledge of various methods of web-based database connections and interfaces; to become aware of latest trends in database research; to learn about newest developments in the industry; to provide students with the experience of designing an efficient self-contained database system.
-
Credits: 3
Prerequisites: One course in programming (or the equivalent) and one course (or the equivalent) in probability theory.
Introduction and application of stochastic simulation theory and techniques to modeling Environmental Biocomplexity
-
Credits: 3
Prerequisites: None, although familiarity with C++ or Java or another modern programming language is desirable.
This course studies a subset of important problems in computational biology at the molecular level (proteins and nucleic acids), cellular level (metabolic and other biological networks), and organism level (development, cellular interactions). The emphasis is on the contributions that computer science can bring
to the study of biological problems in the post genomic data era. From the engineering perspective, both mathematical and computational issues are considered. An introduction to the biological issues is also provided.
-
Credits: 3
Prerequisites: CSE 221, CSE 321 and CSE 331
This course provides a comprehensive and detailed treatment of digital systems testing and testable design. Fundamental concepts as well as the latest advances in this rapidly changing field are considered. Topics include fault modeling and simulation, combinational and sequential circuit test generation, memory and delay test, and design-for-testability methods such as scan and built-in self-test. Testing of embedded cores in systems-on-chip environment is also covered.
-
Credits: 3
Prerequisites: None
This course introduces students to topics on the principles, design, implementation, and performance of computer networks. Topics include: Internet protocols and routing, congestion control, switching and routing, mobile IP and ad-hoc networks, network security, the end-to-end arguments, peer-to-peer systems and other current research topics.
-
Credits: 3
Prerequisites: Completion of CSE 211,212
An introduction to the major biometric techniques (fingerprint, face, iris, …), the underlying pattern recognition concepts, and current concerns regarding privacy and social / ethical issues.
-
Credits: 3
Prerequisites: CSE 341-Operating Systems
This course is a survey of topics in realm of computer security. This course will introduce the students to many contemporary topics in computer security ranging from PKI's (Public Key Infrastructures) to cyber-warfare to security ethics. Students will learn fundamental concepts of security that can be applied to many; traditional aspects of computer programming and computer systems design. The course will culminate in a research project where the student will have an opportunity to more fully investigate a topic related to the course.
-
Credits: 3
Prerequisites: Digital logic design/Data structures/Basic knowledge in VLSI (or taking VLSI design in the same semester)
This is a senior/entry graduate level course intended to expose students to the fundamentals of CAD tools for the design and analysis of digital systems. With the most advanced CAD tools it is possible to design Systems On a Chip (SOCs) featuring more than 100 million gates with device feature sizes of _ 0:18_m.
However, these tools are not "push-button" tools. In order to obtain optimum results it is crucial for a designer
to understand the underlying algorithms. The course aims at introducing to students the theory and implementation behind commercial CAD tools so that they will be able to contribute to the development of such tools as well as be productive users of such tools. The main topics include basic algorithms for CAD, digital system modeling, timing and power analysis, logic/architectural synthesis, physical level design, and system-level design.
-
Credits: 3
Prerequisites: Senior standing in CS or CPEG
A senior design experience incorporating scholarly research and development of systems, tools, and techniques to address a research question. Students will be presented with a problem domain and a research problem description, and will be required to perform problem analysis, identify a potential solution, place the solution in the context of existing work, implement a prototype of the solution, test and assess the prototype, document all steps and present their work.
-
Credits: 3
Prerequisites:
This course builds on the basic techniques introduced in Fundamentals of Computing I and II but emphasizes a team approach to the design and implementation of software. A variety of team structures will be considered including two person teams for extreme programming and three
person teams as used in the ACM programming contest. Student teams will develop software to solve problems ranging across the computer science curriculum and will present their solutions to the class for critique and analysis. Students will participate in the fall campus programming contest and selected students will represent the University in the ACM regional programming contest.
-
Credits: 3
Prerequisites: Permission Required
This class seeks to introduce students to some basic concepts of computer-generated imagery as it is used in the field of visual effects, and to delve into some of the technical underpinnings of the field. While some focus will rely on artistic critique and evaluation, most of the emphasis of the class will be placed on understanding fundamental concepts of 3d modeling, texturing, lighting, rendering, and compositing. Those who excel in the visual effects industry are those who have both a strong aesthetic sense coupled with a solid understanding of what the software being used is doing ‘under the hood’. This class, therefore, will seek to stress both aspects of the industry.
From a methodology standpoint, the class will consist of lectures, several projects that will be worked on both in-class and out of class, an on-site photo shoot, and extensive open discussion. The nature of the material combined with the fact that this is the first execution of the class will mean that a significant degree of flexibility will need to be incorporated into the class structure.
-
Credits: 3
Prerequisites: CSE 341 or CSE 542 or consent of the instructor. Graduate standing (CSE 598Z). 4th year undergradate standing (CSE 498Z)
Design and implementation of distributed systems, particularly inconstrast to centralized systems. Dist. file systems, operating systems,peer-to-peer systems, mobile computing, security, reliablity, and algorithms. Readings are a series of short papers. A highly literate semester project is required.
The primary text will be a series of readings in distributed systems.Each class period will focus on one research paper. Some readings will betime-tested "classic" papers, while others may be more recent results. Classroom time will focus on discussing each paper in detail.
-
Credits: 3
Prerequisites:
A research project at the undergraduate level under the supervision of a faculty member.
-
Credits: 3
Prerequisites: CSE 413 or equivalent
A study of the theoretical foundations of computer science and a selection of important algorithmic techniques. Topics include the classes of P and NP, the theory of NP-completeness, linear programming, advanced graph algorithms, parallel algorithms, approximation algorithms, and randomized algorithms.
-
Credits: 3
Prerequisites: Courses: Math 221; Topics: Linear Algebra, Linear Systems
Introduction to analysis and implementation of numerical methods for scientific computation. Topics include computer arithmetic, solution of linear and nonlinear equations, approximation, numerical integration and differentiation, and numerical solution of ordinary differential equations.
-
Credits: 3
Prerequisites: Graduate standing
Classic computer architectures are considered along with standard parameters for their evaluation. Classical characteristics which improve performance are introduced such as pipelining, memory organization and multiprocessing. More recent advances such as massive parallelism (shared and distributed memory), superscalar and VLIW and interconnection networks will also be covered.
-
Credits: 3
Prerequisites: Topics: Familiarity with a standard programming language such as Fortran, Pascal, or C
An introduction to modern computing concepts and computational models as embodied in a number of different classes of languages. These include (1) function-based languages such as Lisp, Scheme, SASL, ML; (2) logic-based languages such as Prolog, Parlog, Strand, OPS, and (3) object oriented languages such as Smalltalk, C++
-
Credits: 3
Prerequisites: CSE 331, CSE 341
At the completion of this course, students will be able to apply rigorous techniques to software development, ranging from requirements engineering to architectural design, implementation, validation and documentation.
-
Credits: 3
Prerequisites: CSE 411, CSE 413, or graduate standing or consent of the Instructor.
Introduction to object-oriented computing and its application. Topics include: type theory, classes, inheritance, exceptions, templates and pattersn, the C++ and Java programming languages.
-
Credits: 3
Prerequisites: Topics: Systems programming and an undergraduate operating systems course.
Computer operating system design for resource management, communication and security in a multiprogramming environment. Students will create several programming assignments and homeworks, which require significant system programming skills. A semester project is required.
-
Credits: 3
Prerequisites: CSE 462 or similar introductory VLSI course. Topics: Experience with the Mentor Graphics design tools Design Architect and QuickSim.
An introduction to most aspects of large-scale, handcrafted CMOS integrated circuit design including: device fabrication; artwork rules; useful circuit building blocks; and system design and layout considerations