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 (plan to hold course in Building C)
CSE 001-011, TR 1:10-2:25, Professor James Femister

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.

**INSTRUCTOR CHANGE** CSE 002-110, MW 11:10-12:00 F (lab) 11:10-12:00, Professor Arielle Carr

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

CSE 002-210, MW 12:45-2:00, Professor Sharon Kalafut

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, TR 9:20-10:35, Professor Arielle Carr

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.

**INSTRUCTOR CHANGE** CSE 002-311, TR 10:45-12:00, Professor Brian Chen

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

CSE 017-010, MW 10:10-11:00 F (lab) 10:10-11: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-012, TR 10:45-12: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 Mark Erle

CSE 109-012, MW 12:45-2:00 F (lab) 12:10-1:00, Professor Mark Erle

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 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, TR 1:10-2:25, Professor Liang Cheng

CSE 216-011, TR 9:20-10:35, Professor Liang Cheng

CSE 252-010 COMPUTERS, INTERNET AND SOCIETY, TR 9:20-10:35, Professor Brian Davison

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 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 271-010 PROGRAMMING IN C AND THE UNIX ENVIRONMENT, TR 1:10-2:25, Professor Mark Erle

C language syntax and structure. C programming techniques. Emphasis on structured design for medium to large programs. Unix operating system fundamentals. Unix utilities for program development, text processing, and communications.

CSE 281-010 CAPSTONE PROJECT II, T 10:45-12:00, Professor John Spletzer

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. Prerequisite: Senior standing and CSE 280.

*NEW COURESE FALL 2018* CSE 297-010 BLOCKCHAIN ALGORITHMS & SYSTEMS, MW 11:10-12:25, Professor Hank Korth

Blockchain system concepts, cryptographic algorithms for blockchain security, distributed consensus algorithms for decentralized blockchain control, smart contracts, blockchain databases.

*NEW COURSE FALL 2018* CSE 298-010 MOBILE APPS (ANDROID), MWF 1:10-2:00, Professor Eric Fouh Mbindi

This is a project-oriented course that explores the concepts and technologies pertaining to application development for mobile devices. This course uses Android as the platform. Topics covered include mobile software architecture, user interface design, graphics, multimedia, Location-aware software development, network-centric software development, software development for mobile device sensors (such as cameras, recorders, accelerometer, and gyroscope).

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

**COURSE CANCELLED ** CSE 303-011, TR 2:35-3:50, Professor Yinzhi Cao

CSE 303-012, TR 9:20-10:35, Professor Michael Spear

**COURSE CANCELLED** 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.

** INSTRUCTOR CHANGE & 400-LEVEL ADDED** CSE 313/CSE 498 COMPUTER GRAPHICS, TR 9:20-10:35, Professor Brian Chen

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

**COURSE CANCELLED ** CSE 320-010/420-010 BIOMEDICAL IMAGE COMPUTING, TR 2:35-3:50, 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-010 USER INTERFACE SYSTEMS & TECHNIQUES, 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.

**COURSE CANCELLED** CSE 334/434-010 SOFTWARE SYSTEM SECURITY, TR 9:20-10:35, Professor Yinzhi Cao

Survey of common software vulnerabilities: buffer overflows, format string attacks, cross-site scripting, and botnets. Discussion of common defense mechanisms: static code analysis, reference monitors, language-based security, secure information flow, and others. The graduate version differs from the undergraduate version by requiring advanced assignments and projects. Credit will not be given for both CSE 334 and CSE 434. Prerequisite: CSE 109 and CSE 262.

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 Hector Munoz-Avila

CSE 340-011, TR 2:35-3:50, Professor Arielle Carr

CSE 341 DATABASE SYSTEMS, ALGORITHMS & APPLICATIONS, MW 8:45-10:00, 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 17

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.

*NEW COURSE FALL 2018* CSE 397-010/BIOE 397-010 INTRO TO BIOMOLECULAR MODELING AND SIMULATION, MWF 11:10-12:25, Professor Wonpil Im (BIOE and CSE)

This course is designed to introduce the most basic and key concepts, methods, and tools used in biomolecular modeling and simulation. In particular, this class is a hybrid lecture/hands-on practice style using the lectures and tools in CHARMM-GUI (http://www.charmm-gui.org/lecture). Topics include (but not limited to) UNIX operating system, text editors, Python programming, scientific programming using Python, PDB (Protein Data Bank), molecular mechanics, minimization, molecular dynamics, Monte Carlo simulation. The understanding of these concepts and algorithms as well as their applications to well-defined practical examples involving currently important biological problems will be emphasized.

*NEW COURSE FALL 2018* CSE 398-013/498-013 NATURAL LANGUAGE PROCESSING, MW 12:45-2:00, 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.

**COURSE CANCELLED** 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, MW 2:35-3:50, Professor Jeff Heflin

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, MWF 11:10-12:00, Professor Michael Spear

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.


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.