CSE Spring 2020 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.


Problem-solving and object-oriented programming using Java. Includes laboratory. No prior programming experience needed. Click here for official description.

CSE 002-110, TR 7:55-9:10, Professor Houria Oudghiri

CSE 002-210, MWF (10:45-11:35, Professor Brian Chen

CSE 002-211, MW 1:35-2:50, Professor Arielle Carr


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. Click here for official description.

CSE 012-010, MW 3:00-4:15, Professor Sharon Kalafut

CSE 012-011, MW 12:10-1:25, Professor Sharon Kalafut


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. Click here for official description. Prerequisites: CSE 002 and (CSE 001 or CSE 012 or ENGR 010). Can be taken Concurrently: CSE 001, CSE 012, ENGR 010

CSE 017-010, MW 7:55-9:10, Professor Houria Oudghiri

CSE 017-011, TR 9:20-10:35, Professor Houria Oudghiri

CSE 017-012, TR 10:45-12:00, Professor William Phillips

CSE 098 WOMEN IN TECHNOLOGY & INNOVATION (1 credit), F 2:05-3:20, Professor Daniel Lopresti (Course runs only first half of semester, Mountaintop Campus)

This class looks at the transformative role women play in promoting prosperity and human progress through technology and innovation.  The class will shine a light on the remarkable women who are building companies and technologies that transform the way we live and work, and who are paving new paths for female entrepreneurship and gender equality.  It will also look at the challenges that women in tech continue to face, including sexism, gender discrimination, unconscious bias, impostor syndrome and more.  This one credit class will explore the issues over eight sessions, meeting once weekly.  The class will feature a number of guest lectures with Q&A by female tech leaders speaking from Silicon Valley locations who will offer points of view on the issues, and share their experiences as a guidepost for success.  Grading will be via class participation and a final paper.  Prerequisites:  permission of the instructor.


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. Click here for official description. Prerequisites: CSE 017

CSE 109-010, MWF 9:20-10:35, Professor Corey Montella

CSE 109-011, MWF 3:00-4:15, Professor Corey Montella


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. Click here for official description. Prerequisites: (MATH 021 or MATH 031 or MATH 051 or MATH 076) and (CSE 001 or CSE 002 or CSE 012)

CSE 140-010, TR 1:35-2:50, Professor Arielle Carr

CSE 140-012, MW 1:35-2:50, Ahmed Hassan

CSE 160-010 INTRO TO DATA SCIENCE, MWF 1:35-2:25, 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 2, 12, 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). Click here for official description.


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. Click here for official description. Prerequisites: CSE 017

CSE 202-010, TR 10:45-12:00, Professor Mark Erle

CSE 202-011, TR 1:35-2:50, Professor Mark Erle


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. Click here for official description. Prerequisites: CSE 017

CSE 216-010, MW 12:10-1:25, Professor Liang Cheng

CSE 216-011, TR 9:20-10:35, Professor Mark Erle


Design of large databases: Integration of databases and applications using SQL and JDBC; transaction processing; performance tuning; data mining and data warehouses. Click here for official description. Prerequisites: CSE 017

CSE 241-010, MW 9:20-10:35, Professor Roberto Palmieri

CSE 241-011, MW 7:55-9:10, Professor Sihong Xie

CSE 252-010 COMPUTERS, INTERNET AND SOCIETY, MW 1:35-2:50, Professor Eric Baumer

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) Click here for official description.

CSE 280-010 CAPSTONE PROJECT I, TR 3:00-4:15, Professors Corey Montella and William Phillips

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. Prerequisite: junior standing and CSE 216. Click here for official description.

CSE 303-010 OPERATING SYSTEM DESIGN, MW 7:55-9:10, Professor William Phillips

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. Click here for official description. Prerequisites: ECE 201 or (CSE 201 or CSE 202) and CSE 109

CSE 318-010 INTRODUCTION TO THE THEORY OF COMPUTATION, MW 10:45-12:00, Professor Arielle Carr

Formal study of theoretical computational models: finite automata, pushdown automata, and Turing machines. Study of formal languages: regular, context-free, and decidable languages. Click here for official description. Prerequisites: CSE 261 or MATH 261 or CSE 140

CSE 327-011 ARTIFICIAL INTELLIGENCE THEORY AND PRACTICE, TR 1:35-2:50 (held on lower campus), 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. Click here for official description. Prerequisites: CSE 017 and CSE 140


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. Click here for official description. Prerequisites: CSE 017

CSE 343-010/443-010 NETWORK SECURITY, MW 1:35-2:50, 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. Click here for official description. Prerequisites: CSE 265 or CSE 303 or CSE 342

** NEW INSTRUCTOR 2019-2020** CSE 347/447 DATA MINING, MW 3:00-4:15, 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. Click here for official description. Prerequisites: CSE 017 and (CSE 160 or CSE 326) and (MATH 231 or ECO 045 or ISE 121)

** NEW INSTRUCTOR 2019-2020** CSE 360/460-010 INTRODUCTION MOBILE ROBOTICS, MW 8:25-9:40, Professor David Saldaña

This course gives an overview of the fundamental algorithms for mobile robotics. On the theory side, it covers the mathematical modeling and abstraction for navigation, localization, planning, and mapping. On the practical side, it covers the implementation of the mathematical concepts on simulated and actual robots. Different types of mobile platforms are studied, including wheeled robots and aerial robots.  Click here for official description. Prerequisites: MATH 205 or MATH 023 or MATH 231

** NEW COURSE FOR 2019-2020** CSE 398 APPLYING AI FOR SOCIAL GOOD (1 credit), F 2:05-3:20, Professor Daniel Lopresti (Course runs only second half of semester, Mountaintop Campus)

AI is transforming our world, but at the same time tech companies have received criticism for focusing more on profits and ignoring societal impact.  To counter this, an “AI for Social Good” movement has arisen within the field of computer science.  In this one-credit seminar course, we will survey recent work that falls under this theme, focusing on problems that are both technically challenging and important to society.  Weekly readings will be assigned, and class participation will be graded.  A final paper will also be required.  For those who are interested, a small-scale project can take the place of the final paper.  Prerequisites:  permission of the instructor.

**NEW COURSE FOR 2019-2020** CSE 398/498-014 SOFTWARE VERIFICATION, MW 2:05-3:20, Professor Michael Spear

Recent innovations in interactive and machine checked proofs have led to remarkable accomplishments in the construction of verified software, including the seL4 kernel, the CompCert compiler, and the CertiKOS operating system framework.  At the same time, companies like Facebook, Google, and Microsoft have begun to employ software verification tools (Infer, ErrorProne, and Everest/Z3) to catch complex bugs as part of their automated code review processes.

The focus of this class is on the foundations of interactive and machine checked proofs.  We will employ the Coq interactive theorem prover to craft machine-checkable proofs about properties of functional programs, and then as our skills mature, we will move on to study separation logic and its application to proving the correctness of imperative programs written in C. Prerequisite for CSE 398: CSE 140 and CSE 262.

CSE 403-010 ADVANCED OPERATING SYSTEMS, TR 9:50-11:05, Professor Roberto Palmieri

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 428 SEMANTIC WEB TOPICS, MW 9:50-11:05, Professor Jeff Heflin

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 440-010 ADVANCED ALGORITHMS, TR 2:05-3:20, Professor Hector Munoz-Avila

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 2020

CSB 298 BLOCKCHAIN CONCEPTS & APPS, TR 1:35-2:50, 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.

Prerequisite: ECO 001 AND (BIS 111 or CSE 001 or CSE 002 or CSE 012) AND (CSE 017 or MKT 111 or FIN 125 or SCM 186) . This course is open to all students with these prerequisites regardless of their college. Students should check with their advisors on how the course would count towards their degree programs. In CSB this counts as a professional elective but not as an approved CSE elective. It does not count towards the CS minor.

CSB 311-010 COMPUTER APPLICATIONS IN BUSINESS, TR 12:10-1:25, Professor James Hall

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. Click here for official description. Prerequisites: (ACCT 152 or ACCT 108) and (CSE 241 or CSE 341)
Can be taken Concurrently: ACCT 152, ACCT 108, CSE 241, CSE 341

CSB 312 DESIGN OF INTEGRATED BUSINESS APPLICATIONS, TR 3:00-4:15, Professor Sharon Kalafut, Professor George Witmer, Professor Edwin Yeakel

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. Click here for official description. Prerequisites: CSE 241, CSB 311 and CSE 241 and CSE 216
Can be taken Concurrently: CSB 311

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.