Computer Science and Engineering
The Department of Computer Science and Engineering (CSE) offers undergraduate and graduate programs of study in Computer Science , Computer Science and Business, and Data Science, along with research opportunities in these fields. Computer science, the core of includes the study of computer algorithms, software systems, and the effective use of computers to solve real-world problems and develop new applications. Lehigh’s majors prepare students for a wide range of professions in the technology industry, a well as in other sectors that rely on computer systems and technology. According the to the U.S. Bureau of Labor and Statistics (2023), “employment of computer and information research scientists is projected to grow 21 percent from 2021 to 2031, much faster than the average for all occupations”. More discussion on the potential of computer science -related careers, as well as the most up to date course offerings and department faculty can be found on our departmental web site, engineering.lehigh.edu/cse.
At the undergraduate level, Lehigh University offers a Bachelor of Science degree in Computer Science from the P. C. Rossin College of Engineering and Applied Science; the Bachelor of Science degree in Computer Science, and the Bachelor of Arts degree with a major in Computer Science, from the College of Arts and Sciences; and a Bachelor of Science in Computer Science and Business, jointly supported by the P.C. Rossin College of Engineering and Applied Science and the College of Business. A minor in Computer Science is available, except to students majoring in Computer Engineering, Computer Science or Computer Science and Business. A minor in Data Science is available to undergraduates in any major. Graduate study in the department leads to the degrees of Master of Science and Doctor of Philosophy (Ph.D.) in Computer Science. The CSE department also partners with the College of Business to offer the Bachelor of Science degree in Integrated Business and Engineering and the Masters of Business and Engineering (MB&E) program.
The undergraduate programs emphasize the fundamental aspects of their respective areas, with extensive hands-on experiences for the students. Electives permit students to tailor their programs according to their interests and goals, whether they be in preparation for graduate study or careers in industry. Students have the opportunity to synthesize and apply their knowledge in a capstone project. Students are encouraged to become involved in the many research projects within the department- and may use independent study courses and their capstone project as a way to participate while receiving course credit.
The graduate programs enable students to deepen their professional knowledge, understanding, and capability within their sub-specialties. Each graduate student develops a program of study in consultation with his or her graduate advisor. Key thrust areas in the department include:
Computer Systems Engineering: computer architecture, sensor networks, robotics, mobile and wearable computing, and networking.
Software Systems Engineering: software architectures, parallel and distributed computing, object-oriented software, middleware, Web-based systems and networked software systems.
Information Systems Engineering: database, data mining, bioinformatics, computer graphics, optimization, multimedia systems, expert systems, artificial intelligence, and computer vision.
The department maintains several computer laboratories to support student learning and collaboration. The department has research laboratories in robotics, networking, image processing, artificial intelligence, parallel computing, security, and web mining. These laboratories and their associated research activities are described more completely in the departmental web site, engineering.lehigh.edu/cse. While these laboratories are research-oriented, they are also used for undergraduate projects.
Computer laboratory usage is an essential part of the student’s education. Primary CSE department resources include a network of more than 60 workstations, file and general servers, and GPU computer servers primarily running the Linux operating system. These systems provide an array of software tools for students and researchers including programming languages (C, C++, Java, Python, Rust, Go, Perl, Ruby, Matlab, etc.), software development tools, software and hardware simulators, and computer-aided design packages. The teaching labs provide workstations that are specifically designed for flexibility in running different operating systems and environments. The systems also offer a controlled software footprint that allows course materials to be crafted with exacting specifications of the environment offering rich and immersive experiences for students. Students will learn about networking and network security, operating systems, high-performance computing, parallel processing, and system administration.
The CSE department’s computers are connected via gigabit Ethernet to the university’s backbone network. The university is connected through multiple high-capacity connections to the Internet as well as a connection to Internet2. The department embraces the ‘Bring Your Own Device’ movement In addition to departmental resources, the university provides campus-wide wireless network access, public sites containing hundreds of PCs and Macs, multiple large-capacity computer servers, and classrooms equipped with advanced technology that fosters collaborative learning.
UNDERGRADUATE PROGRAMS IN COMPUTER SCIENCE ARE AVAILABLE IN BOTH THE COLLEGE OF ENGINEERING AND THE COLLEGE OF ARTS AND SCIENCES. PLEASE SEE BELOW FOR MORE INFORMATION.
Undergraduate Programs
Mission Statement for the Computer Science and Engineering Programs
The mission of the Computer Science and Computer Science and Business programs is to prepare computer scientists to meet the challenges of the future; to promote a sense of scholarship, leadership and service among our graduates; to instill in the students the desire to create, develop, and disseminate new knowledge; and to provide international leadership to the Computer Science, Computer Engineering, and Business professions.
Program Educational Objectives in Computer Science
Graduates of the Bachelor of Science in Computer Science Programs will:
- Apply their education in Computer Science to the analysis and solution of scientific, business, and industrial problems.
- Account for ethical and social issues when solving scientific, business, and industrial problems.
- Function effectively in a collaborative team and effectively communicate with members of the team.
- Engage in continued education in their field of expertise.
- Attain positions of expertise in their chosen field.
Student Outcomes
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions. [CS]
Bachelor of Science in Computer Science and Business
See catalog entry for Computer Science and Business.
Bachelor of Science in Computer Science
Bachelor of Science in Computer Science degree programs are available to students through either the College of Arts and Sciences or the P. C. Rossin College of Engineering and Applied Science. Both programs are accredited by the Computing Accreditation Commission of ABET. The two programs are identical in the fundamental requirements in Mathematics and Computer Science, and the programs are appropriate for entry into technical or management positions. They are also appropriate for continued graduate study; students considering graduate study are strongly encouraged to consider taking part in a research project during their junior year. The two BS programs differ in their non-Computer Science content: The students must fulfill the distribution requirements of the respective college.
The required courses for the degrees contain the fundamentals of discrete mathematics, structured programming, algorithms, computer architecture, compiler design, operating systems, and programming languages. A strong foundation in mathematics is required. Because many courses are frequently offered, there are many sequences in which courses may be taken to satisfy the requirements. Below are the requirements for the B.S. degrees. See engineering.lehigh.edu/cse for links to sample sequences and for a list of all CSE courses, their prerequisites, and when they are offered.
P. C. Rossin College of Engineering and Applied Science
Bachelor of Science in Computer Science
Total required credit hours: 130
Required Computer Science courses | ||
CSE 003 & CSE 004 | Introduction to Programming, Part A and Introduction to Programming, Part B | 4 |
or CSE 007 | Introduction to Programming | |
CSE 017 | Programming and Data Structures | 3 |
CSE 109 | Systems Software | 4 |
CSE 202 | Computer Organization and Architecture | 3 |
CSE 216 | Software Engineering | 3 |
CSE 262 | Programming Languages | 3 |
CSE 140 | Foundations of Discrete Structures and Algorithms | 3 |
CSE 280 | Capstone Project I | 3 |
CSE 281 | Capstone Project II | 3 |
CSE 303 | Operating System Design | 3 |
CSE 340 | Design and Analysis of Algorithms | 3 |
Required Math and Science courses | ||
CHM 030 | Introduction to Chemical Principles | 4 |
ENGR 010 | Applied Engineering Computer Methods | 2 |
ENGR 005 | Introduction to Engineering Practice | 2 |
MATH 021 | Calculus I | 4 |
MATH 022 | Calculus II | 4 |
MATH 023 | Calculus III | 4 |
MATH 205 | Linear Methods | 3 |
MATH 231 | Probability and Statistics | 3 |
PHY 011 & PHY 012 | Introductory Physics I and Introductory Physics Laboratory I | 5 |
PHY 021 & PHY 022 | Introductory Physics II and Introductory Physics Laboratory II | 5 |
Required approved electives 1 | ||
Technical electives: Any CSE course of 200-level or above unless explicitly excluded by the department | 15 | |
Science and technology courses, chosen by the student with the approval of the student’s advisor | 6 | |
Humanities and Social Science (HSS) requirements | ||
ECO 001 | Principles of Economics | 4 |
WRT 001 | Academic and Analytical Writing | 3 |
WRT 002 | Research and Argument | 3 |
CSE 252 | Computers, the Internet, and Society | 3 |
HSS courses that satisfy the Engineering College “breadth and depth” requirements | 17 | |
Electives | ||
Free Electives | 8 | |
Total Credits | 130 |
- 1
The department highly recommends that students give focus to their approved electives by following one of the tracks listed in the department website at www.cse.lehigh.edu/TRACKS
College of Arts and Sciences
Bachelor of Science in Computer Science
See the distribution requirements of the College of Arts and Sciences.
Required Computer Science courses | ||
CSE 003 & CSE 004 | Introduction to Programming, Part A and Introduction to Programming, Part B | 4 |
or CSE 007 | Introduction to Programming | |
CSE 017 | Programming and Data Structures | 3 |
CSE 109 | Systems Software | 4 |
CSE 202 | Computer Organization and Architecture | 3 |
CSE 216 | Software Engineering | 3 |
CSE 262 | Programming Languages | 3 |
CSE 140 | Foundations of Discrete Structures and Algorithms | 3 |
CSE 280 | Capstone Project I | 3 |
CSE 281 | Capstone Project II | 3 |
CSE 303 | Operating System Design | 3 |
CSE 340 | Design and Analysis of Algorithms | 3 |
Required Math and Science courses | ||
MATH 021 | Calculus I | 4 |
MATH 022 | Calculus II | 4 |
MATH 023 | Calculus III | 4 |
MATH 205 | Linear Methods | 3 |
MATH 231 | Probability and Statistics | 3 |
Natural science course 1 | 12 | |
Required approved electives 2 | ||
Technical electives: Any CSE course of 200-level or above unless explicitly excluded by the department | 15 | |
Science and technology courses, chosen by the student with the approval of the student’s advisor | 6 | |
Humanities and Social Science (HSS) requirements | ||
ENGL 001 | Critical Reading and Composition | 3 |
ENGL 002 | Research and Argument | 3 |
CSE 252 | Computers, the Internet, and Society | 3 |
HSS courses that satisfy the Arts and Sciences College distribution requirements | 21 | |
Electives | ||
Free Electives | 11 | |
Total Credits | 127 |
- 1
Twelve credit hours of natural science, such that one course has an attached laboratory and such that two courses are in a laboratory science with the first course a prerequisite to the second course.
- 2
The department highly recommends that students give focus to their approved electives by following one of the tracks listed in the department website at www.cse.lehigh.edu/TRACKS.
College of Arts and Sciences
Bachelor of Arts in Computer Science
This program of 120 credit hours is intended for students who desire a strong liberal arts program with a concentration in computer science. The program contains the fundamentals of computer science, including algorithms, structured programming, data structures, programming languages, and software engineering.
The requirements of the major are listed below. For a suggested sequence of courses to satisfy this major and for a list of all CSE courses, their prerequisites, and when they are offered, see www.cse.lehigh.edu/COURSES. The distribution requirements of the College of Arts and Sciences appear in the College section of the catalog.
Total required credit hours: 120
Required Computer Science courses | ||
CSE 003 & CSE 004 | Introduction to Programming, Part A and Introduction to Programming, Part B | 4 |
or CSE 007 | Introduction to Programming | |
CSE 017 | Programming and Data Structures | 3 |
CSE 109 | Systems Software | 4 |
CSE 216 | Software Engineering | 3 |
CSE 262 | Programming Languages | 3 |
CSE 140 | Foundations of Discrete Structures and Algorithms | 3 |
CSE 340 | Design and Analysis of Algorithms | 3 |
Required Math and Science courses | ||
MATH 021 | Calculus I | 4 |
MATH 022 | Calculus II | 4 |
MATH 043 | Survey of Linear Algebra | 3 |
or MATH 205 | Linear Methods | |
or MATH 242 | Linear Algebra | |
Technical electives: Any CSE course of 200-level or above except CSE 252 and any other course explicitly excluded by the department 1 | 12 | |
Total Credits | 46 |
- 1
The department highly recommends that students give focus to their approved electives by following one of the tracks listed in the department website at www.cse.lehigh.edu/TRACKS
Minor in Computer Science
The minor in computer science provides a basic familiarity with software development and programming, computer organization, and essential elements of computer science. This minor is not available to students majoring in Computer Engineering, Computer Science and Computer Science and Business. The minor requires 16 credit hours, consisting of the following:
CSE 003 & CSE 004 | Introduction to Programming, Part A and Introduction to Programming, Part B | 4 |
or CSE 007 | Introduction to Programming | |
CSE 017 | Programming and Data Structures | 3 |
CSE courses at the 100 level or higher (not including CSE 252) | 3 | |
CSE courses at the 200 level or higher (not including CSE 252) | 6 | |
Total Credits | 16 |
Minor in Data Science
Virtually every discipline collects data to gain a deeper understanding of their discipline and to make better decisions. The technical challenges associated with collecting, storing, processing, communicating, visualizing, analyzing, and interpreting the huge quantities of data that have become available today are far from trivial. The courses of the minor in Data Science help prepare students to develop computational solutions to analyze data and provide insights of value.
The minor is open to undergraduates from all colleges, and requires a minimum of 16 credit hours, consisting of the following:
Three required courses (10-11 credits)
CSE 160 | Introduction to Data Science | 3 |
CSE 017 | Programming and Data Structures | 3 |
Systems Software | ||
MATH 312 | Statistical Computing and Applications | 4 |
Total Credits | 10 |
One approved applied data mining / analytics course at the 200/300 level (3 credits)
CSE 326 | Fundamentals of Machine Learning | 3 |
CSE 347 | Data Mining | 3 |
ISE 364 | Introduction to Machine Learning | 3 |
ISE 367 | Mining of Large Datasets | 3 |
MKT 325 | Consumer Insights through Data Analysis | 3 |
MKT 326 | Marketing Analytics and Artificial Intelligence in the Digital Space | 3 |
BUAN 348 | Predictive Analytics in Business | 3 |
ECO 247 | 3 | |
ECO 325 | Consumer Insights through Data Analysis | 3 |
ECO 360 | Time Series Analysis | 3 |
One or more approved electives related to data science including, but not limited to an additional applied data mining/analytics course from above, or the following (3-4 credits)
CSE 241 | Database Systems and Applications | 3 |
CSE 341 | Database Systems, Algorithms, and Applications | 3 |
CSE 327 | Artificial Intelligence Theory and Practice | 3 |
CSE 337 | Reinforcement Learning | 3 |
CSE 345 | WWW Search Engines | 3 |
CSE 375 | Principles of Practice of Parallel Computing | 3 |
ISE 111 | Engineering Probability | 3 |
ISE 121 | Applied Engineering Statistics | 3 |
ISE 224 | Information Systems Analysis and Design | 3 |
MATH 043 | Survey of Linear Algebra | 3 |
MATH 205 | Linear Methods | 3 |
MATH 242 | Linear Algebra | 3-4 |
STAT 342 | Applied Linear Algebra | 3 |
MATH 309 | Probability with Applications and Simulations | 3 |
MATH 334 | Mathematical Statistics | 3,4 |
BIS 324 | Business Data Management | 3 |
ECO 357 | Econometrics | 3 |
ECO 367 | Applied Microeconometrics | 3 |
Many of the courses that apply to the minor have prerequisites. These prerequisites do not count toward the minor, and students attempting to complete the minor are not recused from these prerequisites.
P. C. Rossin College of Engineering and Applied Science
Graduate Programs
Note: For information about graduate degrees in Computer Engineering, see the catalog entry for Computer Engineering.
Graduate programs of study provide a balance between formal classroom instruction and research and are tailored to the individual student’s professional goals. The programs appeal to individuals with backgrounds in Computer or Information Science, Computer Engineering, Electrical Engineering, Mathematics, or the Physical Sciences. Research is an essential part of the PhD program, and an option in the Masters programs.
The Master of Science degree requires the completion of 30 credit hours of work and may include a three credit hour thesis. A program of study must be submitted in compliance with the graduate school regulations. An oral presentation of the thesis is required.
The Master of Engineering degree requires the completion of 30 credit hours of work, which includes design-oriented courses and an engineering project. A program of study must be submitted in compliance with the college rules. An oral presentation of the project is required.
The PhD degree in computer science requires the completion of 42 credit hours of work (including the dissertation) beyond the master's degree (48 hours if the master's degree is not from Lehigh), the passing of departmental qualifying qualifying examination, the passing of a general examination in the candidate's area of specialization, and the writing and defense of a dissertation. Competence in a foreign language is not required.
The PhD program has a "Core" curriculum requirement for all students: CSE 406 Research Methods, CSE 411 Advanced Programming Techniques, and CSE 440 Advanced Algorithms. These core courses ensure that all students pursuing a PhD in the department obtain fundamental skills necessary to conduct computer science research. The three core courses must be completed during the first year.
In addition to the three required core courses, Computer Science PhD students must also satisfy a "Breadth" requirement, which involves taking at least one (1) graduate course at the 400-level in at least three (3) of the following breadth areas: Artificial Intelligence and Data Science; Robotics and Computer Vision; Systems, Hardware and Networking; and/or Interdisciplinary Applications. Completing these breadth courses helps familiarize students with advanced topics in a range of different subdomains across computer science. This breadth will help students to collaborate with others who specialize in a different area than their own.
Breadth courses appropriate to the student's educational objectives should be selected in consultation with the student's advisor. Independent study courses (i.e., CSE 492) do not count towards the breadth requirement. Special topic or experimental courses (i.e., CSE 450, CSE 498) may count toward the breadth requirement if approved in advance. Similarly, courses from outside the CSE department may count toward the breadth requirement if approved in advance.
The Masters degrees have a skills requirement. Students must complete three (3) credits of coursework at the 400-level in at least four (4) of the following skill areas: Theory; Applied Theory; Advanced Applications; Knowledge-Based Systems; Computer Hardware, Systems, and Networking; Security in Computational Environment; and Software and Programming. The skill requirement ensures that all students pursuing a Masters degree possess the breadth needed to excel in careers in the computing and software industries.
Additional courses appropriate to the student's education objectives should be selected in consultation with the student's advisor. Independent study courses (i.e., CSE 492) do not count towards the skill requirement. Special topic or experimental courses (i.e., CSE 450, CSE 498) may count toward the breadth requirement if approved in advance.
For both the PhD and Masters degrees, courses from other universities or undergraduate studies may be used to satisfy these requirements, by petition, at the discretion of the program director. Additional graduate program information may be obtained from the department’s graduate coordinator.
Courses
CSE 003 Introduction to Programming, Part A 2 Credits
Introduction to programming fundamentals & problem-solving using the Java language. Covers the first half of CSE 007 concepts, including data types, control flow, introduction to methods, arrays and a breadth of computing. No prior programming experience is needed. Cannot be taken by students who have completed CSE 007.
Attribute/Distribution: Q
CSE 004 Introduction to Programming, Part B 2 Credits
Introduction to problem-solving and object-oriented programming (OOP) using the Java language. Covers the second half of CSE 007 concepts, including methods, arrays (including searching & sorting), basics of OOP including data encapsulation, inheritance and polymorphism and a breadth of computing. Cannot be taken by students who have completed CSE 007.
Prerequisites: CSE 003
Attribute/Distribution: Q
CSE 007 Introduction to Programming 0,4 Credits
Introduction to problem-solving and object-oriented programming (OOP) using the Java language. Covers data types, control flow, methods, arrays (including searching & sorting), basics of OOP including data encapsulation, inheritance and polymorphism and a breadth of computing. If credit is given for CSE 007 then no credit will be given for CSE 003 nor CSE 004.
Attribute/Distribution: Q
CSE 012 Introduction to Programming with Python 3 Credits
Fundamental concepts of computing and "computational thinking": problem analysis, abstraction, algorithms, digital representation of information, and networks. Concepts of software development using the Python language. This course will not be considered as a CSE technical elective for CS majors.
Attribute/Distribution: Q
CSE 017 Programming and Data Structures 0,3 Credits
Design and implementation of algorithms and data structures using Java. Assumes that students have prior experience using conditional statements, loops, arrays, and object-oriented programming in Java. Algorithmic techniques such as recursion, algorithm analysis, and sorting. Design and implementation of data structures such as lists, queues, stacks, trees, and hash tables.
Prerequisites: CSE 004 or CSE 007
Attribute/Distribution: Q
CSE 042 (EMC 042) Game Design 3 Credits
Modern topics in game design: Finite State Machines, iterative design process, systems and interactivity, designing rules for digital games, emergence in games, games as Schemas of Uncertainty, games as Information Theory Schemas, games as Information Systems, games as Cybernetic Systems. The course does not count as a technical elective for majors in Computer Science, Computer Science and Business, or Computer Engineering.
CSE 100 Teaching Assistant Workshop 0-1 Credits
This course is required of all teaching assistants and graders. The course covers the roles and responsibilities of teaching assistants and graders and how to create a positive learning environment, effectively communicate, manage the classroom, grade and assess, employ various teaching techniques, and leverage technology in the classroom. The challenges faced by students and their perspective while learning and applying new concepts are discussed throughout. Department approval is required.
CSE 109 Systems Software 0,4 Credits
Design and implementation of modular programs interacting with the operating system through system calls and programming interfaces using the C programming language. Topics covered include data representation and storage, data and bit manipulation, memory management, stages of compilation, file I/O, interprocess communication, network programming, programmatic testing, interactive debugging, and error handling. Good programming practices, including security, and practical methods for implementing medium-scale programs are also emphasized.
Prerequisites: CSE 017
Attribute/Distribution: Q
CSE 127 (COGS 127) Survey of Artificial Intelligence 3 Credits
An introduction to artificial intelligence (AI) intended for non-majors. AI concepts, systems, and history. Credit will not be given for both CSE/COGS 127 and CSE/COGS 327.
Prerequisites: CSE 004 or CSE 007 or CSE 012
Attribute/Distribution: Q
CSE 140 Foundations of Discrete Structures and Algorithms 0,3 Credits
Basic representations used in algorithms: propositional and predicate logic, set operations and functions, relations and their representations, matrices and their representations, graphs and their representations, trees and their representations. Basic formalizations for proving algorithm correctness: logical consequences, induction, structural induction. Basic formalizations for algorithm analysis: counting, pigeonhole principle, permutations. Credit will not be given for both CSE 140 and MATH 261.
Prerequisites: (MATH 021 or MATH 031 or MATH 051 or MATH 076) and CSE 017
Can be taken Concurrently: CSE 017
Attribute/Distribution: Q
CSE 160 Introduction to Data Science 0,3 Credits
Data Science is a fast-growing interdisciplinary field, focusing on the computational analysis of data to extract knowledge and insight. Collection, preparation, analysis, modeling, and visualization of data, covering both conceptual and practical issues. Examples from diverse fields and hands-on use of statistical and data manipulation software.
Prerequisites: CSE 004 or CSE 007 or CSE 012 or BIS 335
Attribute/Distribution: Q
CSE 190 Special Topics 1-3 Credits
Supervised reading and research. Consent of department required.
CSE 202 Computer Organization and Architecture 3 Credits
Interaction between low-level computer architectural properties and high-level program behaviors: instruction set design; digital logic and assembly language; processor organization; the memory hierarchy; multicore and GPU architectures; and processor interrupt/exception models. Credit will not be given for both CSE 201 and CSE 202.
Prerequisites: CSE 017 or CSE 018
CSE 216 Software Engineering 0,3 Credits
The software lifecycle; lifecycle models; software planning; testing; specification methods; maintenance. Emphasis on team work and large-scale software systems, including oral presentations and written reports.
Prerequisites: CSE 017
Attribute/Distribution: Q
CSE 217 Computer Science Projects 3 Credits
Project-based learning through independent or small-group projects related to computer systems and/or applications. Students will progress through the software development lifecycle, including high-level design, functional and non-functional requirements, implementation, testing, and maintenance. One large group meeting per week, where students serve as consultants to each other as they present their progress.
Prerequisites: CSE 216
Attribute/Distribution: W
CSE 241 Database Systems and Applications 0,3 Credits
Design of large databases: Integration of databases and applications using SQL and JDBC; transaction processing; performance tuning; data mining and data warehouses. Not available to students who have credit for CSE 341 or ISE 224.
Prerequisites: CSE 017
Attribute/Distribution: Q
CSE 242 Blockchain Algorithms and Systems 3 Credits
Blockchain system concepts, data structures, and algorithms. Cryptographic algorithms for blockchain security. Distributed consensus algorithms for decentralized control in both a public and permissioned blockchain setting. Smart contracts. Cross-chain transactions. Blockchain databases and enterprise blockchains.
Prerequisites: CSE 109 or CSE 241 or CSE 341
Can be taken Concurrently: CSE 109
Attribute/Distribution: Q
CSE 252 (EMC 252) Computing Ethics 3 Credits
An interactive exploration that provides students with concepts and frameworks to reason about ethical and social issues related with computing. Topics may include: privacy, corporate responsibility, the changing nature of work, language technologies, professional ethics, autonomous systems, online political communication, fairness and bias, environmental impacts, legal regulation, political economy, and other relevant technologies, concepts, issues.
Attribute/Distribution: SW, W
CSE 260 Foundations of Robotics 3 Credits
This course introduces students to the field of robotics, covering foundational mathematics and physics as well as important algorithms and tools. Topics include simulation, kinematics, control, machine learning, and probabilistic inference. The mathematical basis of each area will be covered, followed by practical application to common robotics tasks. This course is designed to be taught remotely using simulated robot platforms and sensors.
Prerequisites: CSE 140
Attribute/Distribution: Q
CSE 261 (MATH 261) Discrete Structures 3 Credits
Topics in discrete structures chosen for their applicability to computer science and engineering. Sets, propositions, induction, recursion; combinatorics; binary relations and functions; ordering, lattices and Boolean algebra; graphs and trees; groups and homomorphisms. Various applications.
Prerequisites: (MATH 021 or MATH 031 or MATH 051 or MATH 076)
Attribute/Distribution: MA
CSE 262 Programming Languages 0,3 Credits
Use, structure and implementation of several programming languages.
Prerequisites: CSE 017
Attribute/Distribution: Q
CSE 264 Web Systems Programming 3 Credits
Practical experience in designing and implementing modern Web applications. Concepts, tools, and techniques, including: HTTP, HTML, CSS, DOM, JavaScript, Ajax, PHP, graphic design principles, mobile web development. Not available to students who have credit for IE 275.
Prerequisites: CSE 017
Attribute/Distribution: Q
CSE 265 System and Network Administration 0,3 Credits
Overview of systems and network administration in a networked UNIX-like environment. System installation, configuration, administration, and maintenance; security principles; ethics; network, host, and user management; standard services such as electronic mail, DNS, and WWW; file systems; backups and disaster recovery planning; troubleshooting and support services; automation, scripting; infrastructure planning.
Prerequisites: CSE 017
Attribute/Distribution: Q
CSE 271 Programming in Linux and Windows Operating Systems 3 Credits
Students learn Linux and Windows operating system fundamentals, including features, history, organization, process management, and file systems. Tools commonly available with these operating systems, such as those for program development, text processing, scheduling jobs, and communications, are also explored. Emphasis is placed on learning the BASh and PowerShell scripting languages, and students should expect to work on a variety of small programming assignments.
Prerequisites: CSE 017
Attribute/Distribution: Q
CSE 280 Capstone Project I 3 Credits
First of a two semester capstone course sequence that involves the design, implementation, and evaluation of a computer science software project. Conducted by small student teams working from project definition to final documentation. Each student team has a CSE faculty member serving as its advisor. The first semester emphasis is on project definition, planning and implementation. Communication skills such as technical writing, oral presentations, and use of visual aids are also emphasized. Project work is supplemented by weekly seminars.
Prerequisites: CSE 216
Can be taken Concurrently: CSE 216
Attribute/Distribution: W
CSE 281 Capstone Project II 0,3 Credits
Second of a two semester capstone course sequence that involves the design, implementation, and evaluation of a computer science software project; conducted by small student teams working from project definition to final documentation; each student team has a CSE faculty member serving as its advisor; The second semester emphasis is on project implementation, verification & validation, and documentation requirements. It culminates in a public presentation and live demonstration to external judges as well as CSE faculty and students.
Prerequisites: CSE 280
Attribute/Distribution: W
CSE 300 Apprentice Teaching 1-4 Credits
Practical teaching experience under supervision of an experienced instructor. Students learn fundamentals of teaching, including course and lecture planning, instructional delivery, classroom environment and management, and assessment. Students will benefit from significant hands-on experience in the lectures, recitations, and office hours. Department approval is required.
Repeat Status: Course may be repeated.
CSE 302 Compiler Design 3 Credits
Principles of artificial language description and design. Sentence parsing techniques, including operator precedence, bounded-context, and syntax-directed recognizer schemes. The semantic problem as it relates to interpreters and compilers. Dynamic storage allocation, table grammars, code optimization, compiler-writing languages.
Prerequisites: (CSE 109)
Attribute/Distribution: Q
CSE 303 Operating System Design 3 Credits
Process and thread programming models, management, and scheduling. Resource sharing and deadlocks. Memory management, including virtual memory and page replacement strategies. I/O issues in the operating system. File system implementation. Multiprocessing. Computer security as it impacts the operating system.
Prerequisites: ECE 201 or (CSE 201 or CSE 202) and CSE 109
Attribute/Distribution: Q
CSE 307 (BIOE 307) Structural Bioinformatics 3 Credits
Computational techniques and principles of structural biology used to examine molecular structure, function, and evolution. Topics include: protein structure alignment and prediction; molecular surface analysis; statistical modeling; QSAR; computational drug design; influences on binding specificity; protein-ligand, -protein, and -DNA interactions; molecular simulation, electrostatics. Tutorials on UNIX systems and research software support an interdisciplinary collaborative project in computational structural biology. Credit will not be given for both CSE 307 and CSE 407. Must have junior standing or higher.
Prerequisites: BIOS 120 or CSE 109 or CHM 113 or MATH 231
Attribute/Distribution: Q
CSE 308 (BIOE 308) Genomics 3 Credits
Biological discoveries and computational techniques affecting modern biotechnology. Genome assembly, genome annotation, and genome evolution in three interdisciplinary projects. No prior background in biology is assumed. Credit will not be given for both CSE 308 (BIOE 308) and CSE 408 (BIOE 408).
Prerequisites: CSE 017
CSE 310 (BSTA 310) Assistive Technologies 3 Credits
This class will introduce typical challenges faced by persons with disabilities and the role of assistive technologies (ATs) in solving such challenges. The class will examine opportunities presented by recent advances in mobile and AI technologies. Working in groups, each student will be expected to acquire and apply relevant skills in designing AT solutions. The class can be taken by students with diverse backgrounds including the following: community and population health, social and behavioral sciences, business, engineering and computer science.
Prerequisites: CSE 017 or (BSTA 101 and BSTA 102)
CSE 313 Computer Graphics 3 Credits
Algorithms and programming techniques for generating three dimensional computer graphics. Rasterization, color, animation, interaction, textures, lighting models, ray tracing. Substantial focus on the interaction between the CPU and the GPU, relating to vertex and fragment shaders.
Prerequisites: CSE 109 and (MATH 043 or MATH 205 or MATH 242)
Attribute/Distribution: Q
CSE 318 Introduction to the Theory of Computation 3 Credits
Provides a deep understanding of computation, its capabilities and its limitations. The course uses discrete formal methods to (1) formulate precise definitions of three kinds of
finite-state machines (finite automata, pushdown automata, and Turing machines); (2) prove properties of these machines by studying their expressiveness (i.e., the kinds of problems that can be solved with these machines), and (3) study computational problems that cannot be solved with algorithms.
Prerequisites: CSE 140
Attribute/Distribution: Q
CSE 319 Image Analysis and Graphics 3 Credits
State-of-the-art techniques for fundamental image analysis tasks: feature extraction, segmentation, registration, tracking, recognition, search (indexing and retrieval). Related computer graphics techniques: modeling (geometry, physically-based, statistical), simulation (data-driven, interactive), animation, 3D image visualization, and rendering. Credit will not be given for both CSE 319 and CSE 419.
Prerequisites: CSE 313
Attribute/Distribution: Q
CSE 320 (BIOE 320) Biomedical Image Computing and Modeling 3 Credits
Biomedical image modalities, image computing techniques, and imaging informatics systems. Understanding, using, and developing algorithms and software to analyze biomedical image data and extract useful quantitative information: Biomedical image modalities and formats; image processing and analysis; geometric and statistical modeling; image informatics systems in biomedicine. Credit will not be given for both CSE 320 and CSE 420.
Prerequisites: (MATH 205 or MATH 043) and CSE 017
Attribute/Distribution: Q
CSE 323 Computer Vision 3 Credits
Fundamental techniques from image processing, pattern recognition, machine learning and deep learning used to process and understand visual data. Build full pipelines for solutions to classic vision problems such as object detection and recognition, image matching and retrieval, and scene understanding and reconstruction. New and challenging problems such as synthetic image generation. Credit will not be given for both CSE 323 and CSE 423.
Prerequisites: ((MATH 205 or MATH 242) and (MATH 231 or ECO 045) and CSE 017) or (DSCI 311 and DSCI 321)
CSE 325 Natural Language Processing 3 Credits
Overview of modern natural language processing techniques: text normalization, language model, part-of-speech tagging, hidden Markov model, syntactic and dependency parsing, semantics, word sense, reference resolution, dialog agent, machine translation. Design, implementation and evaluation of classic NLP algorithms. Credit will not be given for both CSE 325 and CSE 425.
Prerequisites: (MATH 231 or ECO 045 or ISE 121) and CSE 017 and (MATH 205 or MATH 241 or MATH 242) and (CSE 160 or CSE 326 or CSE 327 or MATH 365 or ECE 414 or ISE 364 or ISE 365 or ISE 367)
Attribute/Distribution: Q
CSE 326 Fundamentals of Machine Learning 3 Credits
Bayesian decision theory and the design of parametric and nonparametric classification and regression: linear, quadratic, nearest-neighbors, neural nets. Boosting, bagging. Credit will not be given for both CSE 326 and CSE 426.
Prerequisites: CSE 017 and (MATH 205 or MATH 043) and (MATH 231 or ISE 121 or ECO 045)
CSE 327 (COGS 327) Artificial Intelligence Theory and Practice 3 Credits
Detailed analysis of a broad range of artificial intelligence (AI) algorithms and systems. Problem solving, knowledge representation, reasoning, planning, uncertainty and machine learning. Applications of AI to areas such as natural language processing, vision, and robotics. Credit will not be given for both CSE/COGS 127 and CSE/COGS 327.
Prerequisites: CSE 017 and CSE 140
Attribute/Distribution: Q
CSE 331 User Interface Systems and Techniques 3 Credits
Principles and practice of creating effective human-computer interfaces. Design and user evaluation of user interfaces; design and use of interface building tools. Programming projects using a variety of interface building tools to construct and evaluate interfaces.
Prerequisites: CSE 017
Attribute/Distribution: Q
CSE 333 Methods for Understanding Human-Computer Interactions 3 Credits
Covers a variety of methods for conducting research on human interactions with computing systems. Methods covered may include: controlled experiments, surveys, ethnography, grounded theory, research through design, log data analysis, retrospective techniques, social network analysis, and others. Taking this course will familiarize the student with several of these methods through readings and in-class discussion and activities, as well as provide the student the opportunity to gain significant experience applying one of these methods in a project.
Prerequisites: CSE 252 or CSE 331
CSE 335 Topics on Intelligent Decision Support Systems 3 Credits
Intelligent decision support systems (IDSSs). AI techniques that are used to build IDSSs: case-based reasoning, decision trees and knowledge representation. Applications of these techniques: help-desk systems, e-commerce, and knowledge management. Credit will not be given for both CSE 335 and CSE 435.
Prerequisites: CSE 327 or CSE 109
Attribute/Distribution: Q
CSE 336 (ECE 336) Embedded Systems 3 Credits
Use of small computers embedded as part of other machines. Limited-resource microcontrollers and state machines from high description language. Embedded hardware: RAM, ROM, flash, timers, UARTs, PWM, A/D, multiplexing, debouncing. Development and debugging tools running on host computers. Real-Time Operating System (RTOS) semaphores, mailboxes, queues. Task priorities and rate monotonic scheduling. Software architectures for embedded systems.
Prerequisites: CSE 017
CSE 337 Reinforcement Learning 3 Credits
Algorithms for automated learning from interactions with the environment to optimize long-term performance. Markov decision processes, dynamic programming, temporal-difference learning, Monte Carlo reinforcement learning methods. Credit will not be given for both CSE 337 and CSE 437.
Prerequisites: (MATH 231, ECO 045) and CSE 109
Attribute/Distribution: Q
CSE 340 (MATH 340) Design and Analysis of Algorithms 0,3 Credits
Algorithms for searching, sorting, manipulating graphs and trees, finding shortest paths and minimum spanning trees, scheduling tasks, etc.: proofs of their correctness and analysis of their asymptotic runtime and memory demands. Designing algorithms: recursion, divide-and-conquer, greediness, dynamic programming. Limits on algorithm efficiency using elementary NP-completeness theory.
Prerequisites: (MATH 021 or MATH 031 or MATH 076) and CSE 140 and CSE 017
Attribute/Distribution: Q
CSE 341 Database Systems, Algorithms, and Applications 3 Credits
Design of large databases; normalization; query languages (including SQL); Transaction-processing protocols; Query optimization; performance tuning; distributed systems. Not available to students who have credit for CSE 241.
Prerequisites: CSE 017 and CSE 140
Attribute/Distribution: Q
CSE 342 Fundamentals of Internetworking 3 Credits
Architecture and protocols of computer networks. Protocol layers; network topology; data-communication principles, including circuit switching, packet switching and error control techniques; sliding window protocols, protocol analysis and verification; routing and flow control; local and wide area networks; network interconnection; client-server interaction; emerging networking trends and technologies; topics in security and privacy.
Prerequisites: CSE 109
Attribute/Distribution: Q
CSE 343 Network Security 3 Credits
Overview of network security threats and vulnerabilities. Techniques and tools for detecting, responding to and recovering from security incidents. Fundamentals of cryptography. Hands-on experience with programming techniques for security protocols. Credit will not be given for both CSE 343 and CSE 443.
Prerequisites: CSE 202 or CSE 271 or CSE 342
Attribute/Distribution: Q
CSE 345 WWW Search Engines 3 Credits
Study of algorithms, architectures, and implementations of WWW search engines; Information retrieval (IR) models; performance evaluation; properties of hypertext crawling, indexing, searching and ranking; link analysis; parallel and distributed IR; user interfaces. Credit will not be given for both CSE 345 and CSE 445.
Prerequisites: CSE 109
Attribute/Distribution: Q
CSE 347 Data Mining 3 Credits
Overview of modern data mining techniques: data cleaning; attribute and subset selection; model construction, evaluation and application. Fundamental mathematics and algorithms for decision trees, covering algorithms, association mining, statistical modeling, linear models, neural networks, instance-based learning and clustering covered. Practical design, implementation, application, and evaluation of data mining techniques in class projects. Credit will not be given for both CSE 347 and CSE 447.
Prerequisites: CSE 017 and (CSE 160 or CSE 326) and (MATH 231 or MATH 205 or MATH 241 or MATH 242 or ECO 045 or ISE 121)
Attribute/Distribution: Q
CSE 348 AI Game Programming 3 Credits
Contemporary computer games: techniques for implementing the program controlling the computer component; using Artificial Intelligence in contemporary computer games to enhance the gaming experience: pathfinding and navigation systems; group movement and tactics; adaptive games, game genres, machine scripting language for game designers, and player modeling. Credit will not be given for both CSE 348 and CSE 448.
Prerequisites: CSE 327 or CSE 109
Attribute/Distribution: Q
CSE 349 Big Data Analytics 3 Credits
Provides working knowledge of large-scale data analysis using open source frameworks such as Apache Spark and Waikato Environment for Knowledge Analysis (Weka). Includes patterns employed in big data analytics, including classification, collaborative filtering, recommender systems, natural language processing, simulation, deep learning, and anomaly detection. Project-oriented software course; students should have substantial programming experience in one or more high-level languages. Past experience in data mining and/or machine learning expected. Credit will not be given for both 349 and 449.
Prerequisites: CSE 109 and (CSE 326 or CSE 347)
CSE 350 Special Topics 3 Credits
Selected topics in the field of computer science not included in other courses.
Repeat Status: Course may be repeated.
Prerequisites: MATH 205
CSE 351 Iterative Methods 3 Credits
Commonly used iterative methods for efficiently solving large, sparse linear systems. Review of basic numeric analysis, direct methods, iterative methods, Krylov subspace methods, preconditioning techniques, and multigrid methods. Analysis of theoretical properties, including convergence behavior and computational and memory demands. Evaluation of performance using numerical experimentation on various real-world applications using Matlab. Credit will not be given for both CSE 351 and CSE 451.
Prerequisites: CSE 109 and CSE 140 and (MATH 205 or MATH 043)
CSE 360 Introduction to Mobile Robotics 3 Credits
Algorithms employed in mobile robotics for navigation, sensing, and estimation. Common sensor systems, motion planning, robust estimation, bayesian estimation techniques, Kalman and Particle filters, localization and mapping. Credit will not be given for both CSE 360 and CSE 460.
Prerequisites: MATH 205
Attribute/Distribution: Q
CSE 367 Blockchain Projects 0,3 Credits
Independent or small-group unique projects related to blockchain systems and/or applications. While pursuing their own project, students serve as consultants to the other teams via a once-weekly class meeting in which each team presents updates on status, progress, and open problems, and one student gives a longer prepared presentation on current research or development results in the blockchain field. Each project team has its own separate second weekly meeting with the instructor for a more in-depth project review and discussion.
Repeat Status: Course may be repeated.
Prerequisites: CSE 242
Attribute/Distribution: Q
CSE 371 Principles of Mobile Computing 3 Credits
Fundamental concepts and technology underlying mobile computing. Current research in these areas. Examples drawn from a variety of application domains such as health monitoring, energy management, commerce, and travel. Issues of system efficiency will be studied, including efficient handling of large data such as images and effective use of cloud storage. Recent research papers will be discussed. Credit will not be given for both CSE371 and CSE471.
Prerequisites: (CSE 109 and (CSE 202 or ECE 201), )
Attribute/Distribution: Q
CSE 375 Principles of Practice of Parallel Computing 3 Credits
Parallel computer architectures, parallel languages, parallelizing compilers and operating systems. Design, implementation, and analysis of parallel algorithms for scientific and data-intensive computing. Credit is not given for both CSE 375 and CSE 475.
Prerequisites: (ECE 201 or CSE 201) or CSE 303 or CSE 202
Can be taken Concurrently: ECE 201, CSE 201, CSE 303, CSE 202
Attribute/Distribution: Q
CSE 376 Distributed Systems 3 Credits
Exploration of theoretical and practical aspects of topics in distributed systems through a combination of readings, programming assignments, and projects. The main focal point is large distributed systems, in particular protocols to synchronize the activities of machines when operating over shared data. Techniques to ensure fault-tolerance and service-availability will also be discussed. Using distributed systems as a foundation, students gain skills in the design of complex, multilayered systems. Credit will not be given for both CSE 376 and CSE 476.
Prerequisites: CSE 303 and CSE 340 and (CSE 241 or CSE 242 or CSE 341 or CSE 375)
Attribute/Distribution: Q
CSE 389 Honors Project 1-8 Credits
CSE 392 Independent Study 1-3 Credits
An intensive study, with report, of a topic in computer science which is not treated in other courses. Consent of instructor required.
Repeat Status: Course may be repeated.
CSE 401 (ECE 401) Advanced Computer Architecture 3 Credits
Design, analysis and performance of computer architectures; high-speed memory systems; cache design and analysis; modeling cache performance; principle of pipeline processing, performance of pipelined computers; scheduling and control of a pipeline; classification of parallel architectures; systolic and data flow architectures; multiprocessor performance; multiprocessor interconnections and cache coherence.
CSE 403 Advanced Operating Systems 3 Credits
Principles of operating systems with emphasis on hardware and software requirements and design methodologies for multi-programming systems. Global topics include the related areas of process management, resource management, and file systems.
Prerequisites: CSE 303
CSE 404 (ECE 404) Computer Networks 3 Credits
Study of architecture and protocols of computer networks. The ISO model; network topology; data-communication principles, including circuit switching, packet switching and error control techniques; sliding window protocols, protocol analysis and verification; routing and flow control; local area networks; network interconnection; topics in security and privacy.
CSE 405 Advanced Programming Languages 3 Credits
Basic ideas behind modern programming language design, with a focus on functional languages: type systems, modularity, operational semantics, and others. Students need to have some mathematical maturity, including familiarity with proof techniques such as induction.
CSE 406 Research Methods 3 Credits
Technical writing, reading the literature critically, analyzing and presenting data, conducting research, making effective presentations, and understanding social and ethical responsibilities. Topics drawn from probability and statistics, use of scripting languages, and conducting large-scale experiments. Must have first-year status in either the CS or CompE Ph. D. program.
CSE 407 (BIOE 407) Structural Bioinformatics 3 Credits
Computational techniques and principles of structural biology used to examine molecular structure, function, and evolution. Topics include: protein structure alignment and prediction; molecular surface analysis; statistical modeling; QSAR; computational drug design; influences on binding specificity; protein-ligand, -protein, and –DNA interactions; molecular simulation, electrostatics. This course, a version of 307 for graduate students, requires advanced assignments and a collaborative project. Credit will not be given for both CSE 307 and 407. Consent of instructor required.
CSE 408 (BIOE 408) Bioinformatics: Issues and Algorithms 3 Credits
Computational problems and their associated algorithms arising from the creation, analysis, and management of bioinformatics data. Genetic sequence comparison and alignment, physical mapping, genome sequencing and assembly, clustering of DNA microarray results in gene expression studies, computation of genomic rearrangements and evolutionary trees. This course, a version of 308 for graduate students requires advanced assignments. Credit will not be given for both BIOE 308 (CSE 308) and BIOE 408 (CSE 408). No prior background in biology is assumed.
Prerequisites: CSE 017 or CSE 018
CSE 409 Theory of Computation 3 Credits
Finite automata. Pushdown automata. Relationship to definition and parsing of formal grammars. Credits will not be given for both CSE318 and CSE409.
Prerequisites: CSE 318 or CSC 318
CSE 410 (BSTA 410) Assistive Technologies 3 Credits
This class will introduce typical challenges faced by persons with disabilities and the role of assistive technologies (ATs) in solving such challenges. The class will examine opportunities presented by recent advances in mobile and AI technologies. Working in groups, each student will be expected to acquire and apply relevant skills in designing AT solutions. The class can be taken by students with diverse backgrounds including the following: community and population health, social and behavioral sciences, business, engineering and computer science.
CSE 411 Advanced Programming Techniques 3 Credits
Deeper study of programming and software engineering techniques. The majority of assignments involve programming in contemporary programming languages. Topics include memory management, GUI design, testing, refactoring, and writing secure code.
CSE 413 Computer Graphics 3 Credits
Computer graphics for animation, visualization, and production of special effects: displays, methods of interaction, images, image processing, color, transformations, modeling (primitives, hierarchies, polygon meshes, curves and surfaces, procedural), animation (keyframing, dynamic simulation), rendering and realism (shading, texturing, shadows, visibility, ray tracing), and programmable graphics hardware. Department approval required. Credit will not be given for both CSE 313 and CSE 413.
CSE 418 Theory of Computation 3 Credits
Finite automata. Pushdown automata. Relationship to definition and parsing of formal grammars. Credit may be given for only one of the following: CSE318 and CSE409 and CSE418.
CSE 419 Image Analysis and Graphics 3 Credits
State-of-the-art techniques for fundamental image analysis tasks; feature extraction, segmentation, registration, tracking, recognition, search (indexing and retrieval). Related computer graphics techniques: modeling (geometry, physically-based, statistical), simulation (data-driven, interactive), animation, 3D image visualization, and rendering. This course, a graduate version of CSE 319, requires additional advanced assignments. Credit will not be given for both CSE 319 and CSE 419.
CSE 420 (BIOE 420) Biomedical Image Computing and Modeling 3 Credits
Biomedical image modalities, image computing techniques, and imaging informatics systems. Understanding, using, and developing algorithms and software to analyze biomedical image data and extract useful quantitative information: Biomedical image modalities and formats; image processing and analysis; geometric and statistical modeling; image informatics systems in biomedicine. This course, a graduate version of BIOE 320, requires additional advanced assignments. Credit will not be given for both BIOE 320 and BIOE 420.
Prerequisites: MATH 205 and CSE 109
Attribute/Distribution: ND
CSE 424 Advanced Communication Networks 3 Credits
Current and emerging research topics in communication networks: network protocols, network measurement, internet routing, network security, adhoc and sensor networks, disruption tolerant networks. Lecture, readings, and discussion, plus a project.
Prerequisites: CSE 342 or CSE 303 or CSE 404
CSE 425 Natural Language Processing 3 Credits
Overview of modern natural language processing techniques: text normal- ization, language model, part-of-speech tagging, hidden Markov model, syntatic and dependency parsing, semantics, word sense, reference resolution, dialog agent, machine translation. Three projects to design, implement and evaluate classic NLP algorithms. Credit will not be given for both CSE 325 and CSE 425.
Prerequisites: (MATH 231 or ECO 045) and CSE 017
CSE 426 Fundamentals of Machine Learning 3 Credits
Bayesian decision theory and the design of parametric and nonparametric classification and regression: linear, quadratic, nearest-neighbors, neural nets. Boosting, bagging. This course, a version of CSE 326 for graduate students requires advanced assignments. Credit will not be given for both CSE 326 and CSE 426.
CSE 428 Semantic Web Topics 3 Credits
Theory, architecture and applications of the Semantic Web. Issues in designing distributed knowledge representation languages, ontology development, knowledge acquisition, scalable reasoning, integrating heterogeneous data sources, and web-based agents.
CSE 431 Intelligent Agents 3 Credits
Principles of rational autonomous software systems. Agent theory; agent architectures, including logic-based, utility-based, practical reasoning, and reactive; multi-agent systems; communication languages; coordination methods including negotiation and distributed problem solving; applications.
CSE 433 Advanced Methods for Understanding Human-Computer Interactions 3 Credits
Covers a variety of methods for conducting research on human interactions with computing systems. Methods covered may include: controlled experiments, surveys, ethnography, grounded theory, research through design, log data analysis, retrospective techniques, social network analysis, and others. Taking this course will familiarize the student with several of these methods through readings and in-class discussion and activities, as well as provide the student the opportunity to gain significant experience applying one of these methods in a project.
Prerequisites: CSE 333
CSE 435 Topics on Intelligent Decision Support Systems 3 Credits
AI techniques used to build IDSSs: case-based reasoning, decision trees and knowledge representation. Applications: helpdesk systems, e-commerce, and knowledge management. This course, a version of CSE 335 for graduate students, requires research projects and advanced assignments. Credit will not be given for both CSE 335 and CSE 435.
CSE 437 Reinforcement Learning and Markov Decision Precesses 3 Credits
Formal model based on Markov decision processes for automated learning from interactions with stochastic, incompletely known environments. Markov decision processes, dynamic programming, temporal-difference learning, Monte Carlo reinforcement learning methods. Credit will not be given for both CSE 337 and CSE 437. Must have graduate standing in Computer Science or have consent of instructor.
CSE 440 Advanced Algorithms 3 Credits
Average-case runtime analysis of algorithms. Randomized algorithms and probabilistic analysis of their performance. Analysis of data structures including hash tables, augmented data structures with order statistics. Amortized analysis. Elementary computational geometry. Limits on algorithm space efficiency using PSPACE-completeness theory. Credit will not be given for both CSE 440 and CSE 441.
Prerequisites: CSE 340 or MATH 340
CSE 442 Advanced Blockchain Systems and Theory 3 Credits
Formal foundations of blockchain systems: cryptography, consensus, zero-knowledge proofs, transaction processing both on-chain and cross-chain, validation, and governance. Algorithms and data structures for blockchain systems. Programming paradigms for smart contracts. Current research in blockchain drawing from the cryptography, database, operating system, and parallel computing research communities.
Prerequisites: CSE 241 or CSE 341 or CSE 303 or CSE 403 or CSE 375 or CSE 475
CSE 443 Network Security 3 Credits
Overview of network security threats and vulnerabilities. Techniques and tools for detecting, responding to and recovering from security incidents. Fundamentals of cryptography. Hands-on experience with programming techniques for security protocols. This course, a version of CSE 343 for graduate students, requires research projects and advanced assignments. Credit will not be given for both CSE 343 and CSE 443.
Prerequisites: (CSE 404 or ECE 404) or CSE 271 or CSE 202 or CSE 342
CSE 445 WWW Search Engines 3 Credits
Study of algorithms, architectures, and implementations of WWW search engines. Information retrieval (IR) models; performance evaluation; properties of hypertext crawling, indexing, searching and ranking; link analysis; parallel and distributed IR; user interfaces. This course, a version of CSE 345 for graduate students, requires research projects and advanced assignments. Credit will not be given for both CSE 345 and CSE 445.
CSE 447 Data Mining 3 Credits
Modern data mining techniques: data cleaning; attribute and subset selection; model construction, evaluation and application. Algorithms for decision trees, covering algorithms, association rule mining, statistical modeling, model and regression trees, neural networks, instance-based learning and clustering covered. This course, a version of CSE 347 for graduate students, requires research projects and advanced assignments, and expects students to have a background in probability, statistics, and programming. Credit will not be given for both CSE 347 and CSE 447.
Prerequisites: CSE 326
CSE 449 Big Data Analytics 3 Credits
Provides working knowledge of large-scale data analysis using open source frameworks such as Apache Spark and Waikato Environment for Knowledge Analysis (Weka). Includes patterns employed in big data analytics, including classification, collaborative filtering, recommender systems, natural language processing, simulation, deep learning, and anomaly detection. Project-oriented software course; students should have substantial programming experience in one or more high-level languages. Past experience in data mining and/or machine learning expected. Credit will not be
given for both 349 and 449.
Prerequisites: CSE 109 and (CSE 326 or CSE 347)
CSE 450 Special Topics 3 Credits
Selected topics in computer science not included in other courses.
Repeat Status: Course may be repeated.
CSE 460 Mobile Robotics 3 Credits
Algorithms employed in mobile robotics for navigation, sensing, and estimation. Common sensor systems, motion planning, robust estimation, Bayesian estimation techniques, Kalman and particle filters, localization and mapping. This course, a version of CSE 360 for graduate students will require an independent project to be presented in class. Credit will not be given for both CSE 360 and CSE 460.
CSE 467 Blockchain Projects 0,3 Credits
Independent or small-group graduate-level unique projects related to blockchain-systems and/or applications. While pursuing their own project, students serve as consultants to the other teams via a once-weekly class meeting in which each team presents updates on status, progress, and open problems, and one student gives a longer prepared presentation on current research or development results in the blockchain field. Each project team has its own separate second weekly meeting with the instructor for a more in-depth project review and discussion.
Repeat Status: Course may be repeated.
CSE 471 Principles of Mobile Computing 3 Credits
Course topics include fundamental concepts and technology underlying mobile computing and current research in these areas. Examples drawn from a variety of application domains such as health monitoring, energy management, commerce, and travel. Issues of system efficiency will be studied, including efficient handling of large data such as images and effective use of cloud storage. Recent research papers will be discussed. The graduate version of CSE 371 requires additional effort. Credit will not be given for both CSE371 and CSE471.
Prerequisites: CSE 109 and CSE 202 or CSE 303
CSE 475 Principles and Practice of Parallel Computing 3 Credits
Parallel computer architectures, parallel languages, parallelizing compilers and operating systems. Design, implementation, and analysis of parallel algorithms for scientific and data-intensive computing. This is a graduate version of CSE 375. As such, it will require additional assignments. Credit is not given for both CSE 375 and CSE 475.
CSE 476 Distributed Systems 3 Credits
Exploration of theoretical and practical aspects of topics in distributed systems through a combination of readings, programming assignments, and projects. The main focal point is large distributed systems, in particular protocols to synchronize the activities of machines when operating over shared data. Techniques to ensure fault-tolerance and service-availability will also be discussed. Using distributed systems as a foundation, students gain skills in the design of complex, multilayered systems.
Credit will not be given for both CSE 376 and CSE 476.
Prerequisites: (CSE 303 or CSE 403) and (CSE 340 or CSE 440) and (CSE 241 or CSE 242 or CSE 341 or CSE 375 or CSE 404 or ECE 404 or CSE 475)
CSE 490 Thesis 1-6 Credits
Thesis.
Repeat Status: Course may be repeated.
CSE 491 Research Seminar 1-3 Credits
Regular meetings focused on specific topics related to the research interests of department faculty. Current research will be discussed. Students may be required to present and review relevant publications. Consent of instructor required.
Repeat Status: Course may be repeated.
CSE 492 Independent Study 1-3 Credits
An intensive study, with report of a topic in computer science that is not treated in other courses. Consent of instructor required.
Repeat Status: Course may be repeated.
CSE 499 Dissertation 1-15 Credits