CSE 001 BREADTH OF COMPUTING

Broad overview of computer science, computer systems, and computer applications. Interactive Web page development. Includes laboratory. Not available to students who have taken CSE 12 or ENGR 010.
CSE 001-010, TR 2:35-3:50, Professor Daniel Lopresti
CSE 001-011, MWF 1:10-2:00, Professor Eric Fouh Mbindi

CSE 002 FUNDAMENTALS OF PROGRAMMING

Problem-solving and object-oriented programming using Java. Includes laboratory. No prior programming experience needed. All sections will offer Guided Study Groups.
CSE 002-110, MW 11:10-12:00 F (lab) 11:10-12:00, Professor Brian Chen

Problem-solving and object-oriented programming using Java. Includes Laboratory. No prior programming experience needed.
CSE 002-210, TR 7:55-9:10, Professor Shahida Parvez

Problem-solving and object-oriented programming using Java. Includes laboratory. No prior programming experience needed. Laboratory for this section are held during the Thursday lecture time.
CSE 002-310, MW 10:10-11:00 F (lab) 10:10-11:00, Professor Eric Fouh Mbindi

Problem-solving and object-oriented programming using Java. Includes laboratory. No prior programming experience needed.

CSE 017 Programming & 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.
CSE 017-010, MW 9:10-10:00 F (lab) 9:10-10:00, Professor Eric Fouh Mbindi

There will be weekly mandatory online quizzes and/or homework. One programming is assigned each week. Programming assignments are presented and discussed in-class during lecture. Each assignment covers one of the major topics in the course. There are two 50-minute exams during the semester, and a comprehensive 2-hour final exam at the end of the course.
CSE 017-011, MWF 11:10-12:00, Professor Jeff Heflin
CSE 017-012, MWF 10:10-11:00, Professor Jeff Heflin

The best way to learn programming is to do it frequently. As such, students will be assigned 10-12 programs to complete throughout the semester. Students are given between 5 and 10 days to finish each assignment, based on the expected difficulty of the task. Before each class, students are expected to read 10-15 pages of the text book, and are evaluated on their comprehension via occasional pop quizzes. There are two 50-minute exams during the semester, and a comprehensive 2-hour final exam at the end of the course.

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.
CSE 109-011, MWF 10:10-11:00 F (lab) 11:10-12:00, Professor Jason Loew
CSE 109-012, MWF 1:10-2:00 F (lab) 12:10-1:00, Professor Jason Loew

CSE 130-010 TECHNICAL PRESENTATION, R 12:10-1:00, Professor Mooi Choo Chuah

Oral and written communication of information in computer science. Technical writing; structure, style, and delivery of oral presentations; use of visual aids.

CSE 160-010 INTRO TO DATA SCIENCE, MWF 10:10-11:00, 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 1, 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).

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.
CSE 216-010, WF 11:10-12:25, Professor Michael Spear
CSE 216-011, TR 9:20-10:35, Professor Liang Cheng

CSE 252-010 COMPUTERS, INTERNET AND SOCIETY, TR 2:35-3:50, Professor Ronald Crane

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 261 DISCRETE STRUCTURES, MWF 9:10-10:00, Professor Mark Skandera

Topics in discrete structures chosen for their applicability to computer science and engineering. Sets, propositions, induction, recursion, combinatorics; binary relations and functions; ordering, lattices and Boolean algebra; graphs and trees; groups and homomorphisms. Various applications. Click here for description.

CSE 262 PROGRAMMING LANGUAGES

Use, structure and implementation of several programming languages.
CSE 262-010, MWF 2:10-3:00, Professor James Femister
CSE 262-011 MWF 11:10-12:00, Professor James Femister

CSE 303 OPERATING SYSTEM DESIGN

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.

CSE 303-010, TR 1:10-2:25, Professor Jason Loew
CSE 303-011, MW 8:45-10:00, Professor Yinzhi Cao

CSE 307-010/407-010 STRUCTURAL BIOINFORMATICS, MWF 1:10-2:00, 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.

CSE 313 COMPUTER GRAPHICS, TR 9:20-10:35, Professor Xiaolei Huang

Computer graphics for animation, visualization, and production of special effects: displays, methods of interaction, images, image processing, color, transformations, modeling (primitives, hierarchies, polygon meshes, curves and surfaces, procedural), animation (keyframing, dynamic simulation), rendering and realism (shading, texturing, shadows, visibility, ray tracing), and programmable graphics hardware. Prerequisite: CSE 109 and (MATH 043 or MATH 205 or MATH 242).

CSE 320-010/420-010 BIOMEDICAL IMAGE COMPUTING, TR 1:10-2:25, Professor Miaomiao Zhang

This course focuses on an in-depth study of advanced topics and interests in image data analysis. Student will learn about hardcore imaging techniques and gain mathematical fundamentals needed to build their own models effective for problem solving. Topics of deformable image registration, numerical analysis, probabilistic modeling, data dimensionality reduction, and convolutional neural networks for image segmentation will be covered. The main focus might change from semester to semester. Credit will not be given for both CSE 320 and CSE 420. Prerequisite: (MATH 205 or MATH 43) and CSE 017, or consent of instructor.

CSE 331 USER INTERFACE SYSTEMS & TECHNIQUE, MW 12:45-2:00, 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. Prerequisite: CSE 017 or consent of the instructor.

CSE 340 DESIGN & ANALYSIS OF ALGORITHMS

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.
CSE 340-010, TR 10:45-12:00, Professor Hank Korth
CSE 340-011, TR 2:35-3:50, Professor Hector Munoz-Avila

CSE 347-010/447-010 DATA MINING, TR 10:45-12:00, Professor Ting Wang

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.

CSE 375-010/475-010 PRINCIPLES AND PRACTICE OF PARALLEL COMPUTING, MWF 10:10-11:00, Professor Roberto Palmieri

It's the era of data, and having knowledge on how to design and develop correct high performance algorithms and applications for computing data is a fundamental requirement for prospective successful software engineers and designers. CSE-375/475 focuses on that, covering both theoretical and practical aspects, providing students with the sufficient knowledge to implement and reason about parallel applications. A particular focus is given to concurrency, which often represents a barrier for many developers given its complexity in providing correct computation due to the presence of simultaneous accesses on shared data. In this regard, the course covers the traditional lock-based programming, and also state-of-the-art (software and hardware) solutions to code concurrent applications without expositing locks to programmer.

CSE 379-010 SENIOR PROJECT, T 12:10-1:00, Professor Mooi Choo Chuah

Design, implementation, and evaluation of a computer science capstone project conducted by student teams working from problem definition to testing and implementation; written progress reports supplemented by oral presentations.

*NEW COURSE FOR 2017-2018* CSE 398-013/498-013 NATURAL LANGUAGE PROCESSING, TR 1:10-2:25, Professor Sihong Xie

Wondering how Google translates English into Chinese, how IBM Watson beat humans in Jeopardy and how Grammarly correct your essays? This course introduces you to natural language processing (NLP) that empowers many fascinating applications like the above. The course will study, in both depth and detail, the fundamental statistical models and their computational implementations in NLP. You will learn how to model texts on the level of word, sentence, and paragraph using tools such as trees, graphs, and automata.

The following techniques will be covered:text normalization, language model, part-of-speech tagging, hidden Markov model, syntactic and dependency parsing, semantics and word sense, reference resolution, dialog agent, machine translation.

Two class projects to design, implement and evaluate classic NLP models will enable the students to have hands-on NLP experience. Programming experience (CSE 17) and probability and statistics (MATH 231 or ECO 045) will be required. Credit will not be given for both CSE 398 and CSE 498.

*NEW COURSE for 2017-2018* CSE 398-014/498-014 SEMINAR IN DATA-SYSTEMS RESEARCH, MW 8:45-10:00, Professor Hank Korth

Discussion of a recent research paper in most class meetings. Everyone reads the paper in advance, students rotate roles in leading discussion. The papers relate to systems aspects of database system internals (i.e. not applications) chosen from recent operating system and database research conferences.

*NEW COURSE for 2017-2018* CSE 398-015/498-015 DEEP LEARNING, TR 1:10-2:25, Professor Xiaolei Huang

In this course, we will learn the core principles behind neural networks and deep learning. We will start with simple neural networks with a handful of layers, and then move on to study deep neural networks with tens or even hundreds of layers. We will learn about and compare different neural network architectures including Convolutional Neural Networks, Generative Adversarial Networks, and Recurrent Neural Works. For applications, we will look at handwritten digit recognition, object recognition, computer-aided diagnosis, and natural language understanding. Prerequisites: For undergraduate students, CSE 109 and MATH 231; For graduate students, no prerequisite for CSE MS or PhD students; for all other students, permission by department/instructor required.

CSE 406-010 RESEARCH METHODS, TR 9:20-10:35, Professor Brian Davison

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 PROGRAMING TECHNIQUES, TR 2:35-3:50, Professor James Femister

Deeper study of programming and software engineering techniques. The majority of assignments involve programming in contemporary programming languages. Topics include memory management, GUI design, testing, refactoring, and writing secure code.

CSE 498-016 DATA ANALYTICS FOR SMART CITIES, TR 4:30-5:45, Professor Mooi Choo Chuah

With the emergence of powerful smartphones, wearables, and affordable internet of things, much data can be collected about human interactions, traffics, urban dynamics, environment. All such data (sensor data, videos, texts) can be analyzed using deep learning techniques to infer human activities, smart cities infrastructure planning, smart health management or planning autonomous car driving. Deep learning algorithms have proven to be useful for analyzing such big data streams. This course covers some basics of mobile computing, deep learning algorithms followed by discussions of most recent research papers in relevant areas. Students are expected to give presentations of assigned research papers, write summaries of deep learning based approaches taken by researchers to address smart cities related problems. Students will work on a few homework assignments followed by a class project at the end of the semester. Requirements: Graduate students need to be good in C, python (and possibly Java programming) and have some computer system background.


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.