Undergraduate Degree & Course Catalog
2016-17

Computer Science - Courses

CSE 101 Computers: A General Introduction
Computer Science & Engineering

Course critically examines popular concepts of information age computing,including:smart devices,societal implications,history,hardware function,sensors,networks,problem solving, and software concepts. Internet technologies such as Web 2.0, rich internet applications,responsible use of social networking,and cloud computing are examined. Privacy and security is an underpinning across all topics. Students will gain practical,lab-based experience with spreadsheets,database systems,HTML design,and various operating systems including Windows,Mac OS X,Linux and Android.

Credits: 4
Semester(s) Typically Offered: Fall, Spring, Summer
Grading: Graded (GRD)


CSE 111 Great Ideas in Computer Science
Computer Science & Engineering

Designed to satisfy the mathematics core requirements. Students study algorithmic problem-solving techniques and gain an appreciation for some of the most interesting and significant results of computer science, as well as its intellectual and social significance. The course has both a mathematical and a laboratory component. Topics may include algorithm design, introduction to programming, structured programming, software tools, software engineering, text manipulation, numerical computation, transistors, very large-scale integrated circuits, machine architecture, language translation, operating systems, and artificial intelligence. Admitted computer science and computer engineering majors should not enroll in this course sequence.

Credits: 4
Semester(s) Typically Offered: Fall, Spring, Summer
Grading: Graded (GRD)



CSE 113 Introduction to Computer Programming I
Computer Science & Engineering

Introduction to computers and computer programming intended for nonmajors. Appropriate for those seeking a practical introduction to computer programming. Topics include the use of data types and variables, programming control constructs supported by modern languages, input/output, basic concepts of object-oriented programming (such as classes, objects, encapsulation, information hiding, and code reuse), as well as graphical user interfaces. No previous computer experience assumed. Not suitable for intended computer science or computer engineering majors. Admitted computer science and computer engineering students should not take this course.

Credits: 4
Semester(s) Typically Offered: Fall, Spring, Summer
Grading: Graded (GRD)


CSE 115 Introduction to Computer Science for Majors I
Computer Science & Engineering

Provides the fundamentals of the field to computer science and computer engineering majors, introducing students to algorithm design and implementation in a modern, high-level programming language. Emphasizes problem solving by abstraction. Topics include object-oriented design using a formal modeling language; fundamental object-oriented principles such as classes, objects, interfaces, inheritance and polymorphism; simple event-driven programming; data types; variables; expressions; basic imperative programming techniques, including assignment, input/output, subprograms, parameters, sequencing, selection and iteration; the use of aggregate data structures, such as arrays or more general collections; simple design patterns. No previous programming experience required. Students must have completed high school pre-calculus (algebra and trigonometry).

Credits: 4
Semester(s) Typically Offered: Fall, Spring, Summer
Grading: Graded (GRD)



CSE 116 Introduction to Computer Science for Majors II
Computer Science & Engineering

Continuation of CSE 115. Heavily emphasizes abstract data types (ADTs) and object-oriented methodology, and expects students not only to understand ADTs but also to design and implement robust ADTs using a modern object-oriented programming language. Further emphasizes object-oriented techniques, which support sound software engineering, such as encapsulation, polymorphism and inheritance as well as the use of more complex design patterns. Essential topics integrated in this framework include the use of recursion; linked data structures, including lists, stacks, queues, binary trees, and other advanced data structures; and algorithms for searching and sorting; exceptions and exception handling, event-driven programming. Introduces the analysis of algorithm complexity (0-notation).

Credits: 4
Semester(s) Typically Offered: Fall, Spring, Summer
Grading: Graded (GRD)
Pre-Requisites: CSE 115


CSE 191 Discrete Structures
Computer Science & Engineering

Foundational material for further studies in computer science. Topics include logic, proofs, sets, functions, relations, recursion, recurrence relations, mathematical induction, graphs, trees, and some basic counting theory. CSE 191 is required for computer science and computer engineering majors.

Credits: 4
Semester(s) Typically Offered: Fall, Spring, Summer
Grading: Graded (GRD)
Pre-Requisites: None



CSE 199 UB Seminar
Computer Science & Engineering

The three credit UB Seminar is focused on a big idea or challenging issue to engage students with questions of significance in a field of study and, ultimately, to connect their studies with issues of consequence in the wider world. Essential to the UB Curriculum, the Seminar helps students with common learning outcomes focused on fundamental expectations for critical thinking, ethical reasoning, and oral communication, and learning at a university, all within topic focused subject matter. The Seminars provide students with an early connection to UB faculty and the undergraduate experience at a comprehensive, research university. This course is equivalent to any 199 offered in any subject. This course is a controlled enrollment (impacted) course. Students who have previously attempted the course and received a grade of F or R may not be able to repeat the course during the fall or spring semester.

Credits: 3
Semester(s) Typically Offered: Fall, Spring
Grading: Graded (GRD)
Other Requisites: Students who have already successfully completed the first year seminar course may not repeat this course.


CSE 241 Digital Systems
Computer Science & Engineering

A course in digital principles which includes the following topics:fundamentals of digital logic,number systems,codes,computer arithmetic,Boolean algebra,minimization techniques,basic components of digital circuits such as logic gates and flip-flops,design of combinational and sequential circuits,memory devices, and programming logic. Recommended for sophomore-level students.

Credits: 4
Semester(s) Typically Offered: Fall, Spring, Summer
Grading: Graded (GRD)



CSE 250 Data Structures
Computer Science & Engineering

Provides a rigorous analysis of the design, implementation, and properties of advanced data structures. Topics include order notation and time-space analysis and tradeoffs in a list, tree and graph algorithms, and hashing. Surveys library implementations of basic data structures in a high-level language. Advanced data structure implementations are studied in detail. Illustrates the importance of choosing appropriate data structures when solving a problem by programming projects in a high-level language different from the language of CSE 115 and CSE 116; also covers instruction in this language.

Credits: 4
Semester(s) Typically Offered: Fall, Spring, Summer
Grading: Graded (GRD)
Pre-Requisites: CSE 116, CSE 191


CSE 305 Introduction to Programming Languages
Computer Science & Engineering

Examines concepts and constructs found in programming languages. Topics include binding time, strong typing, control and data abstraction, higher-order functions, and polymorphism. The major programming paradigms (procedural, object-oriented, functional, and logic) will be studied and compared. The course will also provide an introduction to syntax and semantics, compilation vs. interpretation, and storage management.

Credits: 4
Semester(s) Typically Offered: Spring, Summer
Grading: Graded (GRD)
Pre-Requisites: CSE 250 and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only



CSE 321 Real -Time and Embedded Operating Systems
Computer Science & Engineering

Addresses some of the fundamental challenges in the design, implementation, and validation of these real-time and embedded systems. Topics include resource management, concurrency, secure coding practices, memory management, timeline design and analysis using metrics and schedulability tests, hardware interfacing, device driver programming, memory maps and boot kernels, firmware and ROM-resident system code, communications and networking, and debugging live systems. These concepts will be reinforced through C programming assignments using the RTLinux operating system.

Credits: 4
Semester(s) Typically Offered: Fall
Grading: Graded (GRD)
Pre-Requisites: CSE 250 and CSE 241 or EE 278 or EE 378.
Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.


CSE 331 Introduction to Algorithm Analysis and Design
Computer Science & Engineering

Introduces methods for algorithm design, paradigms such as divide and conquer, greedy, and dynamic programming, and techniques for algorithm analysis, such as asymptotic notations, estimates and recursions. Topics include sorting, searching, scheduling, string matching, graph algorithms, computational geometry, and more.

Credits: 4
Semester(s) Typically Offered: Fall
Grading: Graded (GRD)
Pre-Requisites: CSE 191, CSE 250, MTH 142; Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.



CSE 337 Introduction to Scientific Computing
Computer Science & Engineering

Computing now plays an essential and ever-expanding role in science and mathematics. This course provides a broad introduction to computing in the sciences and in both abstract and applied mathematics. It is accessible to students early in their undergraduate program, thereby opening the door to the profitable use of computation throughout the junior and senior years. Cross-listed with MTH 337.

Credits: 4
Semester(s) Typically Offered: Data not available
Grading: Graded (GRD)
Pre-Requisites: MTH 141 with a grade of C or higher


CSE 341 Computer Organization
Computer Science & Engineering

Basic hardware and software issues of computer organization. Topics include computer abstractions and technology, performance evaluation, instruction set architecture, arithmetic logic unit design, advanced computer arithmetic, datapath and control unit design, pipelining, memory hierarchy, input-output.

Credits: 4
Semester(s) Typically Offered: Fall, Spring, Summer
Grading: Graded (GRD)
Pre-Requisites: CSE 241 or EE 278
Approved Computer Science, Computer Engineering, Bioinformatics/CS, Electrical Engineering Majors Only



CSE 379 Introduction to Microprocessors and Microcomputers
Computer Science & Engineering

Microprocessor architecture, machine language programming, microprocessor assemblers, assembly language programming, software development, memory and I/O interface, interrupts, microprocessor system design and microprocessor applications.

Credits: 3
Semester(s) Typically Offered: Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 241 or EE 378 or EE 278
Co-Requisites: CSE 380
Approved Computer Science, Computer Engineering, Bioinformatics/CS, Electrical Engineering Majors Only


CSE 380 Introduction to Microprocessors and Microcomputers Lab
Computer Science & Engineering

A microprocessor system and its application in embedded devices. This course is the laboratory component to CSE 379. Topics include: microprocessor architecture; memory organization; assembly language programming; microprocessor assemblers; software development; use of microprocessor boards; memory and I/O interfaces; programming peripherals; interrupt system programming; microprocessor system design and applications.

Credits: 3
Semester(s) Typically Offered: Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 241 or EE 378 or EE 278
Approved Computer Science, Computer Engineering, Electrical Engineering, or Bioinformatics/CS Majors Only
Co-Requisites: CSE 379



CSE 396 Introduction to the Theory of Computation
Computer Science & Engineering

Covers machine models and formal specifications of the classes of computational problems they can solve. The central concepts are the Turing machine and the classes of decidable and computably enumerable languages. The Halting Problem and other natural problems are shown to be undecidable by Turing machines, implying that they are undecidable by high-level programming languages or any other known computational model. Finite automata, which are Turing machines without external memory, are shown to correspond to the class of regular languages. The course also covers regular expressions, time and space complexity of Turing machines, reducibility between problems, and NP-completeness.

Credits: 4
Semester(s) Typically Offered: Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 191, CSE 250, and MTH 142
Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only


CSE 408 Programming with Python
Computer Science & Engineering

This course is an introduction to programming using Python. We will provide a comprehensive overview of the Python programming language, including data types & built-in data structures, selection statements, loops, functions, objects and classes, GUI development, lists, file and exception handling, iPython, Python Toolkits (such as NumPy and Matplotlib), and Python Shell Scripts. Hands-on experience will be provided through programming assignments.

Credits: 1
Semester(s) Typically Offered: Data not available
Grading: Graded (GRD)
Pre-Requisites: CSE 113 or CSE 115;
Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only



CSE 410 Special Topics
Computer Science & Engineering

Contents, format and required background vary from offering to offering. Intended for rapid introduction of timely material in computer science and engineering, which will not be repeated under this course number. Offered occasionally.

Credits: 4
Semester(s) Typically Offered: Data not available
Grading: Graded (GRD)
Pre-Requisites: Permission of instructor;
Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only


CSE 411 Introduction to Computer Systems Administration
Computer Science & Engineering

Teaches how to administer a network of computer workstations using an Operating System such as UNIX. Topics include managing user accounts, system backups, installing and configuring the operating system, setting up a computer network, shell programming, and computer security.

Credits: 4
Semester(s) Typically Offered: Fall
Grading: Graded (GRD)
Pre-Requisites: Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only. Departmental senior standing recommended.



CSE 421 Introduction to Operating Systems
Computer Science & Engineering

Covers the principles and techniques in the design of operating systems. Describes concepts of operating systems in terms of functions, structure, and implementation, particularly emphasizing multiprogramming. Topics include process coordination, deadlocks, memory management, device management, file systems, scheduling policies for CPU, and network and distributed operating systems. Illustrates concepts with examples from existing operating systems.

Credits: 4
Semester(s) Typically Offered: Fall, Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 250 and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only.


CSE 422 Operating Systems Internals
Computer Science & Engineering

Uses an operating system (such as UNIX) as an example to teach the internal workings of operating systems. The material presented is more practical than the other operating systems related classes. The laboratory component of this course provides programming projects involving modifications to an operating system kernel (such as UNIX) on computers dedicated to use for this course. Topics covered include building the operating system kernel, the system call interface, process management, kernel services provided for processes, the I/O system, the internal workings of the file system, device drivers, and the kernel support of Interprocess Communications.

Credits: 4
Semester(s) Typically Offered: Summer
Grading: Graded (GRD)
Pre-Requisites: CSE 421 or Permission of instructor



CSE 431 Algorithms Analysis and Design
Computer Science & Engineering

Introduces basic elements of the design and analysis of algorithms. Topics include asymptotic notations and analysis, divide and conquer, greedy algorithms, dynamic programming, fundamental graph algorithms, NP-completeness, approximation algorithms, and network flows. For each topic, beside in-depth coverage, we discuss one or more representative problems and their algorithms. In addition to the design and analysis of algorithms, students are expected to gain substantial discrete mathematics problem solving skills essential for computer scientists and engineers.

Credits: 4
Semester(s) Typically Offered: Fall, Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 331
Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only


CSE 435 Information Retrieval
Computer Science & Engineering

This course will focus on text-based information retrieval (IR) techniques, more popularly known as search engines. Various IR models such as the Boolean model, vector space model, probabilistic model will be studied. Efficient indexing techniques for large document collections as well as specialized collections will be examined. Various query expansion techniques such as local context analysis will be introduced. Finally, the course will also discuss search engines for the web, and the use of link analysis to determine document/page relevance. Students will work on written assignments, as well as hands-on programming projects to gain expertise in this area.

Credits: 4
Semester(s) Typically Offered: Fall, Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 250, MTH 309; Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.



CSE 437 Introduction to Numerical Analysis I
Computer Science & Engineering

First part of a 2-semester sequence which explores the design and implementation of numerical methods to solve the most common types of problem arising in science and engineering. Most such problems cannot be solved in terms of a closed analytical formula, but many can be handled with numerical methods learned in this course. Topics for the two semesters include: how a computer does arithmetic, solving systems of simultaneous linear or nonlinear equations, finding eigenvalues and eigenvectors of (large) matrices, minimizing a function of many variables, fitting smooth functions to data points (interpolation and regression), computing integrals, solving ordinary differential equations (initial and boundary value problems), and solving partial differential equations of elliptic, parabolic, and hyperbolic types. We study how and why numerical methods work, and also their errors and limitations. Students gain practical experience through course projects that entail writing computer programs. Cross-listed with MTH 437.

Credits: 4
Semester(s) Typically Offered: Fall
Grading: Graded (GRD)
Pre-Requisites: CSE 113 or CSE 115; and MTH 241, MTH 306, MTH 309 with grades of C or higher, or Permission of instructor


CSE 438 Introduction to Numerical Analysis II
Computer Science & Engineering

Second part of the 2-semester sequence described under CSE 437. Cross-listed with MTH 438.

Credits: 4
Semester(s) Typically Offered: Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 437 or MTH 437



CSE 442 Software Engineering
Computer Science & Engineering

Examines in detail the software development process. Topics include software life-cycle models; architectural and design approaches; various techniques for systematic software testing; coding and documentation strategies; project management; customer relations; the social, ethical, and legal aspects of computing; and the impact of economic, environmental, safety, manufacturability, and sustainability factors on design. Students in this course participate in a real-world project from conception to implementation.

Credits: 4
Semester(s) Typically Offered: Fall
Grading: Graded (GRD)
Pre-Requisites: CSE 250 and Departmental Senior Standing; Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.


CSE 443 Introduction to Language Processors
Computer Science & Engineering

Considers problems encountered in the design and implementation of a translator for high-level programming languages: lexical analysis, context-free grammars, parsing, storage allocation, code generation and optimization, and error recovery. Uses compiler construction tools for the programming projects. Offered occasionally.

Credits: 4
Semester(s) Typically Offered: Data not available
Grading: Graded (GRD)
Pre-Requisites: CSE 305, CSE 396



CSE 451 Program Development
Computer Science & Engineering

A course in theoretical software engineering, covering the practical development of correct programs based on a mathematical notion of program correctness. Topics include: propositional and first-order logic; the specification of programs using Hoare triple and Dijkstra's weakest preconditions; the definition of a small imperative language; assignment, sequencing, a conditional statement, and a loop; and programming as a goal-oriented developmental activity, based on the formal definition of a small language. Offered irregularly.

Credits: 4
Semester(s) Typically Offered: Data not available
Grading: Graded (GRD)
Pre-Requisites: CSE 305


CSE 452 VLSI Testing
Computer Science & Engineering

Includes topics: VLSI Testing - Why and How? Test Generation; ATPG; Fault Model; CMOS Circuits; Design for Testability; Built-in Self-Testing; Partial Scan Techniques; Simulation at various levels - Switch level, Gate level and Behavioral level; Software Tools and Equipments for Testing; Advanced Concepts - Semi-custom VLSI Chips, Wafer-Scale-Integration, Multi-Chip Modules, System-on-Chip; Case Studies - Microprocessor Testing, Testing of RAMs; Bounday Scan Technique; Analog and Mixed-signal Testing. At the end of the course, the students are expected to be able to gain the skills to modify a given circuit and make it testable using the concepts and tools learned in the class.

Credits: 4
Semester(s) Typically Offered: Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 493 or Permission of instructor



CSE 453 Hardware/Software Integrated Systems Design
Computer Science & Engineering

Software designs produced in the prerequisite CSE 442 Software Engineering course are carried here to a complete hardware realization. Bringing skills learned from previous hardware and software-oriented courses, students form multidisciplinary workgroups and are given tools, parts, goals, and constraints, all of which define the integrated design setting. These workgroups identify, formulate, and solve the hardware and software problems posed by their project, and defend their realization concepts at key intervals during the project build-out. Projects are tested, and a report analyzing the level of satisfaction of design and performance specifications submitted. Each group prepares a 'rollout' presentation, which includes a demonstration of their project in operation. This is a required course for CEN majors.

Credits: 4
Semester(s) Typically Offered: Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 442 or Permission of instructor Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only


CSE 455 Introduction to Pattern Recognition
Computer Science & Engineering

Foundations of pattern recognition algorithms and machines, including statistical and structural methods. Data structures for pattern representation, feature discovery and selection, classification vs. description, parametric and non-parametric classification, supervised and unsupervised learning, use of contextual evidence, clustering, recognition with strings, and small, sample-size problems.

Credits: 4
Semester(s) Typically Offered: Fall, Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 250 or EAS 230 and EAS 305 and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only



CSE 456 Introduction To Visualization
Computer Science & Engineering

Introduction to relevant topics and concepts in visualization, including computer graphics, visual data representation, physical and human vision models, numerical representation of knowledge and concept animation techniques, pattern analysis, and computational methods. Tools and techniques for practical visualization. Elements of related fields including computer graphics, human perception, computer vision, imaging science, multimedia, human-computer interaction, computational science, and information theory. Covers examples from a variety of scientific, medical, interactive multimedia, and artistic applications. Hands-on exercises and projects.

Credits: 4
Semester(s) Typically Offered: Data not available
Grading: Graded (GRD)
Pre-Requisites: CSE 250; Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.


CSE 462 Database Concepts
Computer Science & Engineering

Discusses basic concepts of modern database management systems. Topics include: data models, query languages, database design, integrity constraints, indexing, query evaluation, and transaction management. Students implement small projects using modern DBMS.

Credits: 4
Semester(s) Typically Offered: Fall, Spring, Summer
Grading: Graded (GRD)
Pre-Requisites: CSE 250 and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only



CSE 463 Knowledge Representation
Computer Science & Engineering

Introduces the field of knowledge representation and reasoning, the branch of artificial intelligence concerned with the techniques for representing and reasoning about the information to be used by an AI program. Topics typically include: the knowledge-representation hypothesis; propositional and first-order logic; model finding; resolution; syntactic proof theory; direct and refutation methods; relevance logic; truth maintenance and belief revision; commonsense reasoning; ontologies. Other topics that may be included as time permits are: modal logics; non-monotonic, defeasible, and default logics; logics of knowledge and belief; frames; description logics; vague and uncertain beliefs; logics of actions and time.

Credits: 4
Semester(s) Typically Offered: Fall, Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 305 or Permission of instructor


CSE 467 Computational Linguistics
Computer Science & Engineering

Introduces computational models for understanding natural languages. Covers topics including, but not limited to, syntactic and semantic parsing, generation, and knowledge representation techniques. Cross-listed with LIN 467.

Credits: 3
Semester(s) Typically Offered: Fall
Grading: Graded (GRD)
Pre-Requisites: CSE 305 or Permission of instructor
Approved Engineering Majors Only



CSE 468 Robotics Algorithms
Computer Science & Engineering

This course will study key algorithms relevant to programming intelligent robots with a focus on the following questions: How might one program a robot to estimate the state of the world based on multiple sources of information? How might a robot create plans or control policies for performing tasks? How might a robot learn a control policy directly from experience? The course will cover topics in estimation, control, and planning with applications to robotics including: reinforcement learning, linear optimal control, randomized motion planning, trajectory optimization, Kalman filtering, particle filtering, and selected topics in optimization.

Credits: 4
Semester(s) Typically Offered: Fall, Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 250 or EAS 230 and EAS 305 or MTH 411 or STA 301;
Computer Science, Computer Engineering, or Bioinformatics-CS majors only.


CSE 469 Introduction to Data Mining
Computer Science & Engineering

This course introduces fundamental techniques in data mining, i.e., the techniques that extract useful knowledge from a large amount of data. Topics include data preprocessing, exploratory data analysis, association rule mining, clustering, classification and anomaly detection. Students are expected to gain the skills to formulate data mining problems, solve the problems using data mining techniques and interpret the output.

Credits: 3
Semester(s) Typically Offered: Fall, Spring, Summer
Grading: Graded (GRD)
Pre-Requisites: CSE 250 and MTH 411 or EAS 305 or STA 301 and CS, CSE, and Bioinformatics majors only



CSE 473 Introduction to Computer Vision and Image Processing
Computer Science & Engineering

Introduces those areas of artificial intelligence that relate to fundamental issues and techniques of computer vision and image processing. Emphasizes physical, mathematical, and image-processing aspects of vision. Topics include image formation, edge detection, segmentation, convolution, image-enhancement techniques, extraction of features (such as color, texture, and shape), object detection, 3-D vision, and computer system architectures and applications.

Credits: 4
Semester(s) Typically Offered: Fall, Spring
Grading: Graded (GRD)
Pre-Requisites: Departmental Senior Standing or Permission of instructor; Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.


CSE 474 Introduction to Machine Learning
Computer Science & Engineering

Involves teaching computer programs to improve their performance through guided training and unguided experience. Takes both symbolic and numerical approaches. Topics include concept learning, decision trees, neural nets, latent variable models, probabilistic inference, time series models, Bayesian learning, sampling methods, computational learning theory, support vector machines, and reinforcement learning.

Credits: 4
Semester(s) Typically Offered: Fall, Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 250; EAS 305 or MTH 309; Permission of instructor; Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.



CSE 484 Philosophy of Computer Science
Computer Science & Engineering

Introduces philosophical issues in computer science. Examines the nature of computer science (e.g., whether it is a science or a branch of engineering, whether it is the study of physical computers or abstract computing); the nature of computation, algorithms, and software, and their implementation in computer programs; the nature of computer programs (e.g., whether they are theories, models, or simulations; whether they can or should be patented or copyrighted; whether they can be verified). Also briefly explores the philosophy of artificial intelligence and issues in computer ethics. Offered irregularly. Cross listed with PHI 484.

Credits: 4
Semester(s) Typically Offered: Data not available
Grading: Graded (GRD)
Other Requisites: Junior or Senior standing, or permission of instructor


CSE 486 Distributed Systems
Computer Science & Engineering

Addresses some of the fundamental challenges in the design, implementation and deployment of large-scale distributed systems. Concepts covered include concurrency, synchronization, connection establishment, event handling, inter process communication, storage management, and service registration, discovery, and lookup. Also covers issues related to distributed objects such as life cycle management, mobility, security, naming, location, evolution, and autonomy. Analyses and implements possible solutions using objects, processes, services, components and frameworks. Offered irregularly.

Credits: 4
Semester(s) Typically Offered: Fall, Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 250 or permission of instructor and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only



CSE 487 Data Intensive Computing
Computer Science & Engineering

Data-intensive computing deals with storage models, application architectures, middleware, and programming models and tools for large-scale data analytics. In particular we study approaches that address challenges in managing and utilizing ultra-scale data and the methods for transforming voluminous data sets (big data) into discoveries and intelligence for human understanding and decision making. Topics include: storage requirements of big data, organization of big data repositories such as Google File System (GFS) semantic organization of data, data-intensive programming models such as MapReduce, fault-tolerance, privacy, security and performance, services-based cloud computing middleware, intelligence discovery methods, and scalable analytics and visualization. This course has three majors goals: (i) understand data-intensive computing, (ii) study, design and develop solutions using data-intensive computing models such as MapReduce and (iii) focus on methods for scalability using the cloud computing infrastructures such as Google App Engine (GAE), Amazon Elastic Compute Cloud (EC2), and Windows Azure. On completion of this course students will be able to analyze, design, and implement effective solutions for data-intensive applications with very large scale data sets.

Credits: 4
Semester(s) Typically Offered: Fall, Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 250 and approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only. Departmental senior standing recommended.


CSE 489 Modern Networking Concepts
Computer Science & Engineering

Introduces basic elements of modern computer and telecommunications networks. Discusses a hybrid five-layer reference model resembling the popular TCP/IP model. In each layer, the course introduces the state-of-the-art hardware and software technologies. These include, for example, fiber-optic and wireless/mobile/cellular communications at the physical layer, to network security in the application layer. Offered once a year.

Credits: 4
Semester(s) Typically Offered: Fall, Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 250 and EAS 305 or MTH 411 and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only



CSE 490 Computer Architecture
Computer Science & Engineering

Examines system architecture with 32- and 64-bit microprocessors. Topics include the design of high-performance computer systems, such as workstations and multiprocessor systems using recent advanced microprocessor. Considers the internal architecture of recent microprocessors, followed by vector processing, memory hierarchy design, and communication subsystems for I/O and interprocessor communication.

Credits: 4
Semester(s) Typically Offered: Spring
Grading: Graded (GRD)
Pre-Requisites: CSE 341 or CSE 379 and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only


CSE 492 Undergraduate Peer Mentoring
Computer Science & Engineering

This course provides the opportunity for undergraduate students to serve as undergraduate mentors for students entering the Computer Science & Engineering department. Students that are interested in becoming mentors are asked to contact the mentor program coordinators. Registration in the course is by permission of the coordinators only. (May not be used to satisfy the requirements for the BA or BS.)

Credits: 1-3
Semester(s) Typically Offered: Data not available
Grading: Pass/Not Pass (PNP)



CSE 493 Introduction to VLSI Electronics
Computer Science & Engineering

Introduces VLSI electronics. VLSI is the integration of a large number of logic gates on a single semiconductor chip. Applications of VLSI include memory, microprocessors, and signal processing. Topics include digital system design; VLSI systems; CMOS circuits; use of CAD tools in the layout of full-custom and semi-custom integrated circuits. Project required. Emphasizes designing a working chip and understanding various steps in design. Typical projects: ALU, games, controllers.

Credits: 4
Semester(s) Typically Offered: Fall
Grading: Graded (GRD)
Pre-Requisites: Senior standing
Approved Computer Science, Computer Engineering, Bioinformatics/CS, Electrical Engineering Majors only.


CSE 494 Senior Capstone/Seminar
Computer Science & Engineering

Course for senior-level majors intended to provide a learning experience that integrates knowledge from lower-level courses. Topics may vary. (May not be used to satisfy the requirements for the BA or BS unless specifically used as capstone or senior seminar.)

Credits: 3
Semester(s) Typically Offered: Data not available
Grading: Graded (GRD)
Pre-Requisites: Completion of year 1-3 major requirements



CSE 496 Internship
Computer Science & Engineering

Field experience working on a computer science project in a real-world setting under the joint direction of a supervisor from industry and a faculty advisor from the Department of Computer Science and Engineering. Projects selected should integrate the material learned in academic courses. Upon completing the internship the student is expected to have fulfilled an internship contract. Only S/U grades are given (therefore, internships may not be used to satisfy requirements for the BA or BS.) No more than 5 credit hours of CSE 498 may be taken. Offered every semester.

Credits: 1-5
Semester(s) Typically Offered: Fall, Spring, Summer
Grading: Pass/Not Pass (PNP)
Pre-Requisites: Accepted CSE major and personal interview with an adviser in computer science and engineering


CSE 497 Departmental Honors Thesis or Project
Computer Science & Engineering

Accepted seniors pursue a specialized independent study leading to an honors thesis or project.(May not be used to satisfy the requirements for the BA or BS.)

Credits: 3
Semester(s) Typically Offered: Data not available
Grading: Graded (GRD)
Pre-Requisites: Acceptance into departmental honors program and permission of instructor



CSE 498 Undergraduate Research and Creative Activity
Computer Science & Engineering

Students collaborate with faculty research mentors on an ongoing project in a faculty member's laboratory or conduct independent research under the guidance of a faculty member. This experience provides students with an inquiry based learning opportunity and engages them as active learners in a research setting. (May not be used to satisfy the requirements for the BA or BS.) Permission of instructor required.

Credits: 1-4
Semester(s) Typically Offered: Fall, Spring, Summer
Grading: Graded (GRD)


CSE 499 Independent Study
Computer Science & Engineering

Independent study is tailored towards special projects working independently with the faculty. (May not be used to satisfy the requirements for the BA or BS.) Permission of instructor required.

Credits: 1-4
Semester(s) Typically Offered: Fall, Spring, Summer
Grading: Graded (GRD)




Last updated: February 22 2022 21:08:39