CSE Spring 2023 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 10:45-12:00, Professor Kallie Ziltz
Covers the same material as the second half of CSE 007. Designed to allow more class and laboratory time for each topic. Cannot be taken by students who have completed CSE 007. Prerequisites: CSE 003
CSE 007 INTRODUCTION TO PROGRAMMING
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, MW 9:20-10:35, F (Lab) 9:20-10:35, Professor Kallie Ziltz
CSE 007-011, TR 1:35-2:50, F (Lab) 10:45-12:00 or 12:10-1:25, Professor Sharon Kalafut
CSE 007-012, TR 3:00-4:15, F (Lab) 10:45-12:00 or 12:10-1:25, Professor Sharon Kalafut
CSE 012-010 SURVEY OF COMPUTER SCIENCE, TR 10:45-12:00, Professor Sharon Kalafut
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
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-010 (Lecture) M 1:35-2:50, Professors Ziltz and Oudghiri and one of the following labs:
T (Lab) 7:55-9:10, Professor Houria Oudghiri
T (Lab) 9:20-10:35, Professor Houria Oudghiri
R (Lab) 7:55-9:10, Professor Houria Oudghiri
R (Lab) 9:20-10:35, Professor Houria Oudghiri
W (Lab) 1:35-2:50, Professor Kallie Ziltz
W (Lab) 12:10-1:25, Professor Kallie Ziltz
CSE 109 SYSTEMS SOFTWARE
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-010, MWF 12:10-1:25, Professor Corey Montella
CSE 109-011, MWF 3:00-4:15, Professor Mark Erle
CSE 127 SURVEY OF AI, MW 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
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-010, TR 9:20-10:35, Professor Ahmed Hassan
CSE 140-012, TR 10:45-12:00, Professor Bilal Khan
CSE 160-010 INTRO TO DATA SCIENCE
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, MW 1:35-2:50, R(Lab) 8:25-9:40 or 2:05-3:20, Professor Brian Davison
CSE 202 COMPUTER ORGANIZATION AND ARCHITECTURE
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 10:45-12:00, Professor Mark Erle
CSE 202-011, TR 1:35-2:50, Professor Mark Erle
CSE 202-012, MW 7:55-9:10, Professor Houria Oudghiri
CSE 216-010 SOFTWARE ENGINEERING
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-010, TR 9:20-10:35, Professor Stephen Urban
CSE 216-011, TR 10:45-12:00, Professor Stephen Urban
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 1:35-2:50, Professor Dominic DiFranzo
CSE 252-011, MW 9:20-10:35, Professor George Witmer
CSE 262/CSE 498-022 PROGRAMMING LANGUAGES, MW 9:20-10:35, Professor Corey Montella
Use, structure and implementation of several programming languages. Prerequisites: CSE 017
CSE 264 WEB SYSTEMS PROGRAMMING, MW 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 (REMOTE), Professors Kreider, Mikitka, Montella, Smith, Urban, 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. Prerequisite: junior standing and CSE 216.
CSE 303-010 OPERATING SYSTEM DESIGN, TR 1:35-2:50, Professor Ahmed Hassan
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/408 BIOINFORMATICS: ISSUES AND ALGORITHMS, MW 11:15-12:30, Professor Brian Chen
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. 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
CSE 320-010/420-010 BIOMEDICAL IMAGE COMPUTING, MW 1:35-2:50, 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 BioE 320 and BioE 420. Credit will not be given for both CSE 320 and CSE 420. Prerequisites: (MATH 205 or MATH 043) and CSE 017
CSE 325/425 NATURAL LANGUAGE PROCESSING, MW 9:50-11:05, Professor Sihong Xie
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) and CSE 017
CSE 327-011 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. Prerequisites: CSE 017 and CSE 140
CSE 340 DESIGN AND ANALYSIS OF ALGORITHMS, MW 1:35-2:50, Professor Masoud Yari
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 341 DATABASE SYSTEMS, ALGORITHMS AND APPLICATIONS), TR 9:20-10:35, 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-010/443-010 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 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. Prerequisites: CSE 017 and (CSE 160 or CSE 326) and (MATH 231 or ECO 045 or ISE 121)
CSE 360-010/CSE 460-010 MOBILEROBOTICS, W 11:15-1:55, 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 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 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 398/498 MEDIA FORENSICS, MW 12:40-1:55, Professor Aparna Bharati
Due to the ease of generating and editing images and videos, we find plenty of fake images and videos these days. In this class, we will discuss the process of creation of fake images and videos as well as the forensic techniques developed to detect forgeries, identify the origin, and trace the processing history of digital multimedia content. This course provides an overview of fundamental concepts of such techniques along with media forensics research and related applications. Lecture materials would be a mix of three kinds - delivered by the instructor, guest speakers and student-led paper presentations. Students will also participate in a team-based course project where they will develop an application for forensic problems based on the concepts covered in the class. Prerequisites:(MATH 205 and MATH 231) or CSE 347 or CSE 447 or CSE 326 or CSE 426.
CSE 398/498 DATA SCIENCE FOR SMART CITIES, TR 2:05-3:20, Professor Yu Yang
Empowered by rich data collected from various infrastructures in our cities and machine learning techniques, our cities are becoming “smarter”. In this course, we discuss how data science is used to innovate our cities. We cover topics such as urban sensing, data-driven modeling and analytics for smart city services, data-driven decision making, data visualization, and novel applications in various city phenomena. Students are expected to (i) read and present research papers drawn from top conferences, (ii) participate in discussions of the papers, and (iii) design, implement and present their ideas for the final class project. Prerequisites: CSE 017 and (CSE 160 or CSE 326 or CSE 347).
**NEW COURSE FOR SPRING 2023** CSE 398/498 ADVANCED TOPICS DISTRIBUTED COMPUTING, MW 2:05-3:20, Professor Roberto Palmieri
Distributed Computing pervades modern applications and services. In this seminar, we discuss the most recent topics related to distributed computing, such as heterogeneous (e.g., Cuda/GPU) and networking (C++/RDMA) programming, cutting-edge kernel designs for operating systems, and large-scale atomic computation. Related to large-scale system design, the seminar also discusses how to improve teaching and how to involve in system research students from diverse backgrounds, especially underrepresented groups.
**NEW COURSE FOR SPRING 2023** CSE 398/498 METHODS FOR UNDERSTANDING HCI, TR 9:50-11:05, Professor Eric Baumer
Covers advanced methods for conducting research and evaluation studies in HCI, possibly including but not limited to: controlled experiments, ethnography, surveys, grounded theory, field deployments, research through design, crowdsourcing, log data analysis, and others. Prerequisites: CSE 252 or CSE 331 or instructor approval.
**NEW COURSE FOR SPRING 2023** CSE 398/498 REMOTE SENSING, TR 9:20-10:35, Professor Maryam Rahnemoonfar
Remote sensing is the process of detecting, monitoring, and acquisition of information about objects, phenomena and their physical characteristics by measuring the reflected and emitted radiation at a distance. Special cameras and sensors help researchers to "sense" the phenomena from distance. In this course students will learn about the fundamentals of remote sensing, active and passive sensors such as Radar, Lidar, optical imagery, hyperspectral and multispectral sensors, and data analytics and image processing techniques to process and interpret remote sensing data for decision making.
CSE 403-010 ADVANCED OPERATING SYSTEMS, TR 1:35-2:50, Professor Ahmed Hassan
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 431-010 INTELLIGENT AGENTS, TR 2:05-3:20, Professor Jeff Heflin
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 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.
CSB COURSES – Spring 2023
CSB 242 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. 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)
CSB 311-010 COMPUTER APPLICATIONS IN BUSINESS, W 7:15-9:55pm, Professor Troy Adair
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 241, CSE 341
CSB 312 DESIGN OF INTEGRATED BUSINESS APPLICATIONS. TR 3:00-4:15, Professors Kreider, Mikitka, Montella, Smith, Urban, 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
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.