CSE Spring 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 004 INTRODUCTION TO PROGRAMMING, PART B MW 9:20-10:35, 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


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 9:20-10:35, 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 1:35-2:50

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

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.


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 10:45-11:35, and one of the following recitations:

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

   CSE 017-112, R (Lab) 10:45-11:35

   CSE 017-113, F (Lab) 9:20-10:10

   CSE 017-114, F (Lab) 10:45-11:35

   CSE 017-115, F (Lab) 1:35-2:25

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 10:45-11:35, and one of the following recitations:

CSE 109-111, F (Lab) 9:20-10:35

CSE 109-112, F (Lab) 10:45-12:00

CSE 109-113, F (Lab) 12:10-1:25

CSE 109-114, F (Lab) 1:35-2:50

CSE 127 SURVEY OF AI, TR 1:35-2:50, Professor Jeff Heflin

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


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) TR 9:20-10:35 and one of the following recitations:

CSE 140-111, M (Lab) 3:00-4:15

CSE 140-112, T (Lab) 10:45-12:00

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

CSE 140-114, R (Lab) 10:45-12:00

CSE 160-010 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-110 (Lecture) MW 10:45-12:00 and one of the following recitations:

CSE 160-111, M (Lab) 3:00-4:15

CSE 160-112, T (Lab) 10:45-12:00


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, MW 12:10-1:25

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

CSE 216-010 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) TR 9:20-10:35 and one of the following recitations:

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

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


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 9:20-10:35, Professor Rosemary Steup

CSE 252-011, TR 10:45-12:00, Professor Eric Baumer

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 1:35-2:50

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

CSE 264 WEB SYSTEMS PROGRAMMING, TR 12:10-1:25, Professor James Femister

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.

**NEW COURSE FOR SPRING 2024**CSE 298-010 COMPUTER SCIENCE PROJECTS, TR 12:10-1:25 Professor Matthew Onimus

Independent or small-group unique projects related to computer systems and/or applications. Students develop their own or a provided project in which they create design artifacts detailing the blackbox functionality, whitebox implementation, and nonfunctional attributes. Students serve as consultants to other teams via a once-weekly class meeting in which each team presents their progress on design, implementation, test, impediments, and risks. Each project team has a separate second weekly meeting with the instructor for an in-depth review and discussion. Prerequisites: CSE 216 and departmental approval.

CSE 303-010 OPERATING SYSTEM DESIGN, TR 1:35-2:50, Professor Michael Spear

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 307/407 STRUCTURAL BIOINFORMATICS, MW 9:50-11:05 Professor Brian Chen

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

CSE 327-010/ ARTIFICIAL INTELLIGENCE THEORY AND PRACTICE, TR 1:35-2:50, Professor Daniel Lopresti

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 327Prerequisites: CSE 017 and CSE 140


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

CSE 347/447 DATA MINING, MW 1:35-2:50, Professor Lifang He

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 348-010 AI GAME PROGRAMMING, MW 12:10-1:25, 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 360/CSE 460 INTRODUCTION TO MOBILE ROBOTICS, F 12:40-3:20, Professor David Saldana

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 10:45-12:00, 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

**NEW COURSE FOR SPRING 2024** CSE 397/497 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 behavorial sciences, business, engineering, and computer science.  Prerequisites CSE 017.

**NEW COURSE FOR SPRING 2024** CSE 398/498-018 COMPUTER VISION, TR 11:15-12:30, 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 398-018 and CSE 498-018.  Prerequisites ((MATH 205 or MATH 242) and (MATH 231 or ECO045) and CSE 017) or (DSCI 311 and DSCI 321)


Cyber-physical systems (CPS) are engineered systems built upon and dependent on the seamless integration of computational and physical components. Examples of various CPS application areas include agriculture, aeronautics, building design, civil infrastructure, energy, environmental quality, healthcare, personalized medicine, manufacturing, and transportation. Advances in CPS promise enhanced capability, adaptability, scalability, resiliency, safety, security, and usability, expanding the horizons of these critical systems. Nowadays, these advancements are closely intertwined with artificial intelligence, offering new research opportunities with significant societal implications. This course covers basic topics related to the design, implementation, and applications of various cyber-physical systems. Prerequisites: CSE 017 and (CSE 160 or CSE 326 or CSE 347)

**NEW COURSE FOR SPRING 2024** CSE 398/498-019 TRUSTWORTHY MACHINE LEARNING, TR 9:50-11:05, Professor Lichao Sun

Trustworthy Machine Learning is an advanced machine learning course, which covers the advanced trustworthiness problems in AI, such as security, privacy, etc. This carefully designed course seamlessly integrates enlightening lectures with practical projects. The students are recommended to have a basic background in machine learning, data mining, or equivalent courses.

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 440-010 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.

CSE 450-010 MEDICAL AI, MW 3:00-4:15, Professor Lifang He

This course will dive deep into the transformative potential of Artificial Intelligence (AI) and Machine Learning (ML) in the medical field. As healthcare continually evolves, the demand for enhanced patient care and more precise predictions becomes increasingly urgent. Through this course, you will gain a deeper understanding of AI-powered technologies and how you can apply them to enhance diagnostic capabilities, personalize treatment plans, and better understand disease progression.

CSE 498-040 AI CONCEPTS, ISSUES & ALGORITHMS, TR 1:35-2:50, Professor Daniel Lopresti

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 327 and this course. Prerequisites: CSE 017 and CSE 140 or permission of the instructor.



CSB COURSES – Spring 2024


Application of computer technology to business problems. Transaction processing systems which support the revenue, conversion, and expenditure cycles of manufacturing, service, and retail business organizations. Topics include process modeling, data modeling, internal controls, corporate IT governance, IT audit techniques, SAP and applications of Generalized Audit Software. Prerequisites: (ACCT 152 or ACCT 108) and (CSE 241 or CSE 341). Can be taken Concurrently: CSE 241CSE 341

CSB 311-010, R 7:15-9:55PM

CSB 311-011, T 7:15-9:55PM


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