CSE Fall 2024 Courses

NOTE: This listing represents our current plan for the semester in question. Course offerings and class times are occasionally subject to change for reasons beyond our control.


COMPUTER SCIENCE COURSE ENROLLMENT INFO FOR NON-MAJORS

Space is extremely limited in our computer science classes and we don’t often have space for students outside the program. Highly qualified non-majors can request space in these classes by contacting our Associate Chair, Prof. Mark Erle.  Please know not all requests can be accommodated due to capacity constraints.


CSE 003 INTRODUCTION TO PROGRAMMING, PART A TR 9:20-10:35, Professor Elroy Sturdivant

Covers the same material as the first half of CSE 007. No prior programming experience needed. Cannot be taken by students who have completed CSE 007.


CSE 007 INTRODUCTION TO PROGRAMMING, Professor Brian Chen

Problem-solving using the Java programming language. Data types, control flow, methods, arrays, objects, inheritance, breadth of computing. Includes laboratory. If credit is given for   CSE 007 then no credit will be given for CSE 003 nor CSE 004.  

CSE 007-110 (Lecture), MW 12:10-1:25, and one of the following labs:

CSE 007-112, R 1:35-2:50

CSE 007-113, R 3:00-4:15

CSE 007-114, F 12:10-1:25

CSE 007-115, R 9:20-10:45


CSE 012-010/398-035 INTRO TO PROGRAMMING WITH PYTHON TR 3:00-4:15, Professor Masoud Yari

This course provides a project-based exploration of fundamental concepts in computing and "computational thinking." Topics include but are not limited to networks, data visualization, information storage and retrieval, and the popular Python programming language. Each project presents applications of computing in solving real life problems. In this course you will learn to write Python code to visualize data from different sources. You will learn how information is transferred across networks and how to store and retrieve data from relational database management systems. Optional Structured Study Groups will be provided for students who express interest.


CSE 017 PROGRAMMING AND DATA STRUCTURES, Professor Kallie Ziltz

This course is a programming-intensive exploration of software design concepts and implementation techniques. It builds on the student's existing knowledge of fundamental programming. Topics include object-oriented software design, problem-solving strategies, algorithm development, and classic data structures. Prerequisites: CSE 004 or CSE 007 or (CSE 002 and (CSE 001 or CSE 012 or ENGR 010)).

CSE 017-110 (Lecture), T 9:20-10:35, and one of the following recitations:

CSE 017-112, W (Lab) 1:35-2:50

CSE 017-113, W (Lab) 3:00-4:15

CSE 017-114, R (Lab) 9:20-10:35

CSE 017-115, R (Lab) 10:45-12:00

CSE 017-116, R (Lab) 1:35-2:50


CSE 109 SYSTEMS SOFTWARE, Professor Mark Erle

Advanced programming and data structures, including dynamic structures, memory allocation, data organization, symbol tables, hash tables, B-trees, data files. Object-oriented design and implementation of simple assemblers, loaders, interpreters, compilers and translators. Practical methods for implementing medium-scale programs. Prerequisites: CSE 017

CSE 109-110, (Lecture), MW 1:35-2:50, and one of the following recitations:

CSE 109-113, W (Lab) 7:15-8:30pm

CSE 109-114, R (Lab) 7:15-8:30pm


CSE 140 FOUNDATIONS OF DISCRETE STRUCTURES ALGORITHMS, Professor Arielle Carr

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. Prerequisites: (MATH 021 or MATH 031 or MATH 051 or MATH 076) and CSE 017. CSE 017 can be taken concurrently.

CSE 140-110, (Lecture) MW 9:20-10:35 

CSE 140-115, (Lecture) MW 10:45-12:00


CSE 160-010 INTRO TO DATA SCIENCE, Professor Aparna Bharati

Interested in understanding the hype about data science, big data, or data analytics? This course introduces you to data science, a fast-growing and interdisciplinary field, focusing on the computational analysis of data to extract knowledge and insight. You will be introduced to the collection, preparation, analysis, modeling, and visualization of data, covering both conceptual and practical issues. Applications of data science across multiple fields are presented, and hands-on use of statistical and data manipulation software is included. The course is open to students from all areas of study; the only prerequisite is some programming experience (automatic if you've taken CSE 004, 007, 012 or BIS 335, or permission of the instructor is available if you can show that you've successfully completed a programming course online, in high school, or elsewhere). Prerequisites: CSE 004 or CSE 007 or CSE 012 or BIS 335

CSE 160-010, (Lecture) MW 10:45-12:00 and one of the following recitations:

CSE 160-060, F (Lab) 9:50-11:05

CSE 160-061, F (Lab) 12:40-1:55


CSE 202 COMPUTER ORGANIZATION AND ARCHITECTURE, Professor Jialiang Tan

Interaction between low-level computer architectural properties and high-level program behaviors: instruction set design; digital logics and assembly language; processor organization; the memory hierarchy; multicore and GPU architectures; and processor interrupt/exception models. Prerequisites: CSE 017

CSE 202-011, TR 10:45-12:00


CSE 216-110 SOFTWARE ENGINEERING, Professor Stephen Urban

The software life-cycle; life-cycle 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

CSE 216-110, (Lecture) MW 3:00-3:50 and one of the following recitations:

CSE 216-112, M 7:15-9:55pm

CSE 216-113, T 7:15-9:55pm


CSE 241-110 DATABASE SYSTEMS AND APPLICATIONS, Professor Roberto Palmieri

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

CSE 241-110, (Lecture) TR 1:35-2:50 and one of the following recitations:

CSE 241-111, F 1:35-2:50

CSE 241-112, F 3:00-4:15


CSE 242 BLOCKCHAIN ALGORITHMS AND SYSTEMS, MW 10:45-12:00, Professor Hank Korth

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


CSE 252-010 COMPUTERS, INTERNET AND SOCIETY

An interactive exploration of the current and future role of computers, the Internet, and related technologies in changing the standard of living, work environments, society and its ethical values. Privacy, security, depersonalization, responsibility, and professional ethics; the role of computer and Internet technologies in changing education, business modalities, collaboration mechanisms, and everyday life. (SS).

CSE 252-010, MW 12:10-1:25, Professor Dominic DiFranzo

CSE 252-011, TR 1:35-2:50, Professor Elroy Sturdivant

CSE 252-012, MW 10:45-12:00, Professor Kallie Ziltz


CSE 262-110 PROGRAMMING LANGUAGES, Professor Corey Montella

Use, structure and implementation of several programming languages. Prerequisites: CSE 017

CSE 262-110 (Lecture) MW 10:45-12:00 and one of the following recitations:

CSE 262-111, M 3:00-4:15

CSE 262-112, W 1:35-2:50


CSE 264 WEB SYSTEMS PROGRAMMING, MW 3:00-4:15, Professor Dominic DiFranzo

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 ISE 275. Prerequisites: CSE 017


CSE 265-010 SYSTEM AND NETWORK ADMINISTRATION 

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

CSE 265-010, (Lecture) TR 12:10-1:35 and the following recitation:

CSE 265-060, F 12:10-1:25


CSE 281 CAPSTONE PROJECT II, TR 3:00-4:15, Professor George Witmer

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


CSE 303-010 OPERATING SYSTEM DESIGN, MW 1:35-2:50, Professor Houria Oudghiri

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.


CSE 318/418 INTRODUCTION TO THEORY OF COMPUTATION, TR 12:10-1:25, Professor James Femister

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


CSE 320/420 BIOMEDICAL IMAGE COMPUTING AND MODELING, TR 9:50-11:05, Professor Lifang He

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


CSE 326/426 FUNDAMENTALS OF MACHINE LEARNING, TR 10:45-12:00, Professor Lichao Sun

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-010 ARTIFICIAL INTELLIGENCE THEORY AND PRACTICE, MW 11:15-12:30, Professor Jeff Heflin

Introduction to the field of artificial intelligence: Problem solving, knowledge representation, reasoning, planning and machine learning. Use of AI systems or languages. Advanced topics such as natural language processing, vision, robotics, and uncertainty. Credit will not be given for both CSE/COGS 127 and CSE/COGS 327. Prerequisites: CSE 017 and CSE 140


CSE 340 DESIGN AND ANALYSIS OF ALGORITHMS, Professor Ahmed Hassan

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

CSE 340-110 (Lecture) MW 9:20-10:35 and one of the following recitations:

CSE 340-112, F 9:20-10:35

CSE 340-113, F 10:45-12:00

CSE 340-114, F 12:10-1:25


CSE 342-010 FUNDAMENTALS OF INTERNETWORKING, MW 12:10-1:25

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


CSE 348-010 AI GAME PROGRAMMING, MW 1:35-2:50, Professor Stephen Lee-Urban

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


CSE 349/449 BIG DATA ANALYTICS, MW 2:05-3:20, Professor Daniel Lopresti

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 327)


CSE 367/467 BLOCKCHAIN PROJECTS, F 10:45-12:00, Professor Hank Korth

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. Prerequisites: CSE 242 and Department permission (to be granted only after the student has agreed with the instructor on a specific project team and agenda).


CSE 371/471 PRINCIPLES OF MOBILE COMPUTING, MW 9:20-10:35, Professor Mooi Choo Chuah

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 CSE 201) 


CSE 406-010 RESEARCH METHODS, MW 3:30-4:45, Professor Daniel Lopresti

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 411-010 ADVANCED PROGRAMMING TECHNIQUES, TR 9:50-11:05, Professor Corey Montella

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.

 

 

CSB COURSES – Fall 2024


CSB 304 TECHNOLOGY AND SOFTWARE VENTURES, TR 10:45-12:00, Professor Joshua Ehrig

Designed from the perspective of functional leaders, course provides a holistic perspective of developing successful software ventures across various industries in an interdisciplinary and experiential environment. Students develop a software-oriented idea, concurrent with module delivery containing best practices, case studies, and subject-matter experts. Examines business model fundamentals, customer discovery, translating requirements to a minimum viable product, agile development, user acquisition, and traction. ENTP Capstone. Prior programming experience or technical background not required. Open to students in any college and major. Prequisites: ENTP 101 or CSE 002 or BIS 111


CSB 313 DESIGN OF INTEGRATED BUSINESS APPLICATIONS II. TR 3:00-4:15, Professor George Witmer

Integrated Product Development (IPD) Capstone Course II. This course extends the industry-based project initiated in CSB 312 into its implementation phase. Detailed design, in-house system construction and delivery, commercial software options, and systems maintenance and support. The practical component of the course is supplemented by several classroom-based modules dealing with topics that lie at the boundary of computer science and business. Formal, oral, and written presentations to clients. Prerequisites: CSB 312


CSE Spring 2025 Courses

NOTE: This listing represents our current plan for the semester in question. Course offerings and class times are occasionally subject to change for reasons beyond our control.


COMPUTER SCIENCE COURSE ENROLLMENT INFO FOR NON-MAJORS

Space is extremely limited in our computer science classes and we don’t often have space for students outside the program. Highly qualified non-majors can request space in these classes by contacting our Associate Chair, Prof. Mark Erle.  Please know not all requests can be accommodated due to capacity constraints.


CSE 004 INTRODUCTION TO PROGRAMMING, PART B MW 12:10-1:25, Professor Elroy Sturdivant

Covers the same material as the second half of CSE 007. Cannot be taken by students who have completed CSE 007.  Prerequisites: CSE 003


CSE 007 INTRODUCTION TO PROGRAMMING, Professor Kallie Pearl

Problem-solving using the Java programming language. Data types, control flow, methods, arrays, objects, inheritance, breadth of computing. Includes laboratory. If credit is given for CSE 007 then no credit will be given for CSE 003 nor CSE 004. 

CSE 007-010 (Lecture), M 12:10-1:25, and one of the following labs:

CSE 007-060, TR 9:20-10:35

CSE 007-061, TR 10:45-12:00

CSE 007-062, TR 3:00-4:15


CSE 012/498-010 INTRO TO PROGRAMMING WITH PYTHON TR 7:15-8:30PM, Professor Joshua Issom

This course provides a project-based exploration of fundamental concepts incomputing and "computational thinking." Topics include but are not limited to networks, data visualization, information storage and retrieval, and the popular Python programming language. Each project presents applications of computing in solving real life problems. In this course you will learn to write Python code to visualize data from different sources. You will learn how information is transferred across networks and how to store and retrieve data from relational database management systems. Optional Structured Study Groups will be provided for students who express interest.


CSE 017 PROGRAMMING AND DATA STRUCTURES, Professor Houria Oudghiri

This course is a programming-intensive exploration of software design concepts and implementation techniques. It builds on the student's existing knowledge of fundamental programming. Topics include object-oriented software design, problem-solving strategies, algorithm development, and classic data structures. Prerequisites: CSE 004 or CSE 007 or (CSE 002 and (CSE 001 or CSE 012 or ENGR 010), )

 CSE 017-110 (Lecture) MW 9:20-10:10, and one of the following recitations:

   CSE 017-112, W (Lab) 1:35-2:50

   CSE 017-113, W (Lab) 3:00-4:15

   CSE 017-114, R (Lab) 9:20-10:35

   CSE 017-115, R (Lab) 10:45-12:00

   CSE 017-116, R (Lab) 1:35-2:50


CSE 098 SUCCESS IN CS F 10:45-12:00 Professor Mark Erle

Intended for students likely to major or minor in a computer-related discipline. Provides a solid foundation in computing principles and systems, introduces software engineering tools and strategies, teaches effective learning habits, and positions students to succeed in navigating the challenges of a rigorous academic program.


CSE 109 SYSTEMS SOFTWARE Professor Corey Montella

Advanced programming and data structures, including dynamic structures, memory allocation, data organization, symbol tables, hash tables, B-trees, data files. Object-oriented design and implementation of simple assemblers, loaders, interpreters, compilers and translators. Practical methods for implementing medium-scale programs. Prerequisites: CSE 017

CSE 109-110 (Lecture) TR 3:00-4:15, and one of the following recitations:

CSE 109-112, T (Recitation) 7:15-8:30PM

CSE 109-113, W (Recitation) 7:15-8:30PM


CSE 127 SURVEY OF AI, MW 9:20-10:35, TBD

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 002 or CSE 004 or CSE 007


CSE 140 FOUNDATIONS OF DISCRETE STRUCTURES & ALGORITHMS

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. Prerequisites: (MATH 021 or MATH 031 or MATH 051 or MATH 076) and CSE 017. CSE 017 can be taken concurrently.

CSE 140-110 (Lecture) MW 1:35-2:50 Professor Yang Yu

CSE 140-111 (Lecture) TR 3:00-4:15 Professor Masoud Yari


CSE 160 INTRO TO DATA SCIENCE Professor Brian Davison

Interested in understanding the hype about data science, big data, or data analytics? This course introduces you to data science, a fast-growing and interdisciplinary field, focusing on the computational analysis of data to extract knowledge and insight. You will be introduced to the collection, preparation, analysis, modeling, and visualization of data, covering both conceptual and practical issues. Applications of data science across multiple fields are presented, and hands-on use of statistical and data manipulation software is included. The course is open to students from all areas of study; the only prerequisite is some programming experience (automatic if you've taken CSE 004, 007, 012 or BIS 335, or permission of the instructor is available if you can show that you've successfully completed a programming course online, in high school, or elsewhere). Prerequisites: CSE 004 or CSE 007 or CSE 012 or BIS 335

CSE 160-010 (Lecture) MW 10:45-11:35 and one of the following recitations:

CSE 160-060, R (Lab) 9:50-11:05

CSE 160-061, R (Lab) 2:05-3:20


CSE 202 COMPUTER ORGANIZATION AND ARCHITECTURE, Professor Jialiang Tan

Interaction between low-level computer architectural properties and high-level program behaviors: instruction set design; digital logics and assembly language; processor organization; the memory hierarchy; multicore and GPU architectures; and processor interrupt/exception models. Prerequisites: CSE 017

CSE 202-010, TR 3:00-4:15

CSE 202-011, TR 1:35-2:50


CSE 216 SOFTWARE ENGINEERING Professor Elroy Sturdivant

The software life-cycle; life-cycle 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

CSE 216-110 (Lecture) MW 3:00-3:50 and one of the following recitations:

CSE 216-112, M 7:15-9:55pm

CSE 216-113, T 7:15-9:55pm


CSE 241 DATABASE SYSTEMS & APPLICATIONS, Professor Stephen Lee-Urban

The software life-cycle; life-cycle 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

CSE 241-110 (Lecture) TR 1:35-2:50 and CSE 241-111 (Recitation) F 1:35-

2:50


CSE 252 COMPUTING ETHICS Professor Kallie Pearl

An interactive exploration of the current and future role of computers, the Internet, and related technologies in changing the standard of living, work environments, society and its ethical values. Privacy, security, depersonalization, responsibility, and professional ethics; the role of computer and Internet technologies in changing education, business modalities, collaboration mechanisms, and everyday life. (SS).

CSE 252-010, MW 10:45-12:00

CSE 252-011, TR 1:35-2:50


CSE 262/498-042 PROGRAMMING LANGUAGES MW 3:00-4:15, Professor Michael Spear

Use, structure and implementation of several programming languages. Prerequisites: CSE 017


CSE 264 WEB SYSTEMS PROGRAMMING, MW 3:00-4:15, Professor Matthew Onimus

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


CSE 280 CAPSTONE PROJECT I, TR 3:00-4:15, Professor George Witmer

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: junior standing and CSE 216.


CSE 298-067 CYBERSECURITY, TR 10:45-12:00, Professor Mark Erle

In addition to a comprehensive overview of cybersecurity practices, this course delves deeply into the mathematics underpinning modern security techniques. Topics include cryptographic algorithms [which rely on complex mathematical principles such as number theory, algebra, and probability]. By understanding the mathematical foundations, students will gain insight into how encryption, secure hashing, and other security measures are designed to protect sensitive information. [This mathematical perspective is crucial for developing robust security solutions and understanding the vulnerabilities that can be exploited in various systems]. Prerequisites of CSE017 and CSE140.


CSE 302 Compiler Design  TR 12:10-1:25, Professor Jim Femister

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)


CSE 303 OPERATING SYSTEM DESIGN, MW 10:45-12:00, Professor Houria Oudghiri

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.


CSE 308 (BIOE 308)/CSE 408 (BIOE 408) Genomics MW 2:05-3:20, Professor Brian Chen

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)/CSE 410(BSTA 410) Assistive Technologies TR 10:45-12:00, Professor Vinod Namboodiri

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/413 Computer Graphics  MW 12:40-1:55, Professor Brian Chen

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 323/498 Computer Vision TR 9:50-11:05, Professor Aparna Bharati

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/425 Natural Language Processing TR 9:20-10:35, Professor Lichao Sun

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)


CSE 327 ARTIFICIAL INTELLIGENCE THEORY AND PRACTICE, MW 1:35-2:50, Professor Jeff Heflin

Introduction to the field of artificial intelligence: Problem solving, knowledge representation, reasoning, planning and machine learning. Use of AI systems or languages. Advanced topics such as natural language processing, vision, robotics, and uncertainty. Prerequisites: CSE 017 and CSE 140


CSE 331 User Interface Systems and Techniques MF 2:05-3:20, Professor Eric Baumer

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


CSE 336 (ECE 336) Embedded Systems TR 7:55-9:10, Professor Jenn Winikus

Use of small computers embedded as part of other machines. Limited-resource microcontrollers and state machines from high level 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 340 DESIGN AND ANALYSIS OF ALGORITHMS, Professor David Saldana

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

CSE 340-110 (Lecture) MW 1:35-2:50 and one of the following recitations:

CSE 340-112, F 9:20-10:35

CSE 340-113, F 10:45-12:00

CSE 340-114, F 1:35-2:50


CSE 341 Database Systems, Algorithms, and Applications MW 3:00-4:15, Professor Hank Korth

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


CSE 343/443 NETWORK SECURITY, MW 9:20-10:35, Professor Mooi Choo Chuah

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. Prerequisites: CSE 202 or CSE 271 or CSE 342


CSES 347/447 DATA MINING, MW 9:20-10:35, Professor Yang Yu

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 ECO 045 or ISE 121)


CSE 360/CSE 460 INTRRO TO MOBILEROBOTICS, TR 11:15-12:30, Professor Corey Montella

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. Prerequisites: MATH 205


CSE 367/467 BLOCKCHAIN PROJECTS, F 12:10-1:25, Professor Hank Korth

Each student in the course will work on a pre-specified project related to blockchain systems and/or applications.  The projects can be either individual or in small groups.  In addition to project work, course requirements include one 75-minute class meeting in which each project team presents updates on status, progress, and open problems, and one student is selected for a longer prepared presentation.   Each project has a second meeting each week with the course instructor for a more in-depth discussion.  Grading is based on project results and participation in presentations.  This course may be repeated for credit. Prerequisites: Department permission (to be granted only after the student has agreed with the instructor on a specific project team and agenda).


CSE 375/475 PRINCIPLES OF PRACTICE OF PARALLEL COMPUTING, MW 12:40-1:55, Professor Roberto Palmieri

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


CSE 398/498-013 DEEP & GENERATIVE LEARNING, MW 1:35-2:50, Professor Masoud Yari

This course is designed to provide a thorough exploration of the fundamental principles underlying deep and generative learning algorithms. It delves into both their theoretical foundations and real-world implementations, aiming to furnish students with a deep understanding of the latest algorithms and cutting-edge methodologies in generative artificial intelligence. In addition to exploring these foundational concepts, the course will also address emerging trends and developments in the field of deep and generative learning. Students will have the opportunity to delve into cutting-edge research papers and case studies, gaining insights into the latest innovations and breakthroughs. Through discussions and hands-on projects, students will actively engage with current challenges and opportunities in the rapidly evolving landscape of AI. Prerequisites: Successful completion of DSCI431 or instructor’s consent


CSE 398/498-024 DEEP LEARNING, TR 2:05-3:20, Professor Maryam Rahnemoonfar

This course is an introduction to deep learning, a subset of machine learning, concerned with the development and application of modern neural networks. In this course, you will learn about the theory and application of deep learning. We will cover a range of topics from basic Neural Networks, Convolutional Neural networks (CNN) and Recurrent Neural networks (RNN), Generative Adversarial Networks (GAN), and deep unsupervised learning. In addition, the students will learn how to apply the deep learning methods to solve real-world problems in several areas including computer vision, civil engineering, environmental science, remote sensing, medical, language, and AI for social good applications and develop the insights necessary to use the tools and techniques to solve any new real-world problem.


CSE 404 COMPUTER NETWORKS, MW 9:50-11:05, Professor Mushu Li

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 440 ADVANCED ALGORITHMS, MW 11:15-12:30, Professor Arielle Carr

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. Prerequisites: CSE 340 or MATH 340.


CSB COURSES – Spring 2025

CSB 242 Blockchain Concepts and Applications  Professor Hank Korth

Blockchain is the technology underlying Bitcoin, along with other digital currencies, and a data-management technology applicable broadly in finance, accounting, marketing, supply-chain, and "smart" contracts. It offers the ability to decentralize financial transactions, automate record keeping, and increase privacy. This course gives students the basis for understanding the technological foundations of blockchain and the business impact of blockchain. Prerequisites: ECO 001 and (BIS 111 or CSE 003 or CSE 007 or CSE 012) and (CSE 017 or MKT 111 or FIN 125 or SCM 186)

CSE 242-010 (Lecture) MW 1:35-2:50 and one of the following recitations:

CSE 242-011, F 9:20-10:35

CSE 242-013, F 10:45-12:00


CSB 312 DESIGN OF INTEGRATED BUSINESS APPLICATIONS. TR 3:00-4:15, Professor George Witmer

Integrated Product Development (IPD) Capstone I. Industry-based business information systems design project. Information systems design methodology, user needs analysis, project feasibility analysis of design alternatives, and integrated product development methodology. Formal oral and written presentations to clients. Prerequisites: CSB 311 and (CSE 241 or CSE 341) and CSE 216. Can be taken Concurrently: CSB 311


CSB 395 PRODUCT DEVELOPMENT & ENTREPRENEURSHIP IN TECHNOLOGY COMPUTER, Professor Burak Eskici

This course integrates computer science and business concepts, focusing on product management, entrepreneurship, and startup methodologies. Students will work in teams to identify business problems, develop innovative software solutions, create business plans, and build proof-of-concept prototypes. Through case studies, hands-on projects, and real-world applications, students will gain practical experience in bringing a technology product from ideation to market-ready stage. Prerequisites: (ACCT 108 OR ACCT 152) and (CSE 241 or CSE 341) and CSB 312 

CSB 395-010, MW 9:20-10:35

CSB 395-011, MW 3:00-4:15