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) 10:10-11:00, Professor Brian Chen

Problem-solving and object-oriented programming using Java. Includes laboratory. No prior programming experience needed.
CSE 002-111, 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-010, 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-011, TR 10:45-12:00, 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 012-010 SURVEY OF COMPUTER SCIENCE, MW 1:10-2:00 F (lab) 1:10-2:00, Professor Eric Fouh Mbindi

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. Guided Study Groups will be offered in this course.

CSE 017 DATA STRUCTURES & PROGRAMMING

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, 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 017-011, MWF 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-012, MWF 2:10-3: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 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-010, MWF 11:10-12:00 F (lab) 12:10-1:00, Professor James Femister
CSE 109-011, MWF 9:10-10:00 W (lab) 10:10-11:00, Professor Jason Loew

*NEW COURSE for 2015-2016* CSE 198-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 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.
CSE 202-010, TR 9:20-10:35, Professor Jason Loew
CSE 202-011, TR 1:10-2:25, Professor Jason Loew

CSE 216-010 SOFTWARE ENGINEERING, TR 1:10-2:25, Professor Liang Cheng

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 241-010 DATABASE SYSTEMS, TR 10:45-12:00, Professor Hank Korth

Design of large databases: Integration of databases and applications using SQL and JDBC; transaction processing; performance tuning; data mining and data warehouses.

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

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 261-010, TR 2:35-3:50, Professor Xiaolei Huang
CSE 261-011, TR 1:10-2:25, Professor Shadhia Parvez

CSE 264-010 WEB APPLICATIONS, TR 2:35-3:50, 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.

CSE 265-010 SYSTEM AND NETWORK ADMINISTRATION

The maintenance and deployment of computer systems in production environments requires significant effort. This course distills decades of experience into operational principles that apply across technologies. This course is intended for undergraduate students and will provide the fundamentals of system administration under Linux, with emphasis on principles that apply to all environments. Topics are expected to include: system installation, configuration, administration, and maintenance; security principles; ethics; network, host, and user management; standard services such as electronic mail, DNS, and WWW; file systems; backups and disaster recovery planning; troubleshooting and support services; automation, scripting; infrastructure planning.
CSE 265-110, MF 1:10-2:00 W (Lab) 1:10-3:00, Professor Brian Davison
CSE 265-111, MF 1:00-2:00 W (Lab) 3:10-5:00, Professor Brian Davison

CSE 271-010 PROGRAMMING IN C AND THE UNIX ENVIRONMENT, MW 12:30-1:45, 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 308-010/408-010 BIOINFORMATICS, MWF 1:10-2:00, 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 CSE 308 and CSE 408. No prior background in biology is assumed.

CSE 318-010 INTRODUCTION TO THE THEORY OF COMPUTATION, MWF 2:10-3:00, Professor James Femister

Formal study of theoretical computational models: finite automata, pushdown automata, and Turing machines. Study of formal languages: regular, context-free, and decidable languages.

CSE 326-010/426-010 PATTERN RECOGNITION, TR 9:20-10:35, Professor John Spletzer

Bayesian decision theory and the design of parametric and nonparametric classifiers: linear (perceptrons), quadratic, nearest-neighbors, neural nets. Machine learning techniques: boosting, bagging. High-performance machine vision systems: segmentation, contextual analysis, adaptation. Students carry out projects, e.g. on digital libraries and vision-based Turing tests.

CSE 327-011 ARTIFICIAL INTELLIGENCE OF THEORY AND PRACTICE, TR 1:10-2:25, Professor Jeff Heflin

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.

CSE 334-010/434-010 SOFTWARE SYSTEM SECURITY, TR 10:45-12:00, Professor Gang Tan

Cancelled

CSE 341-010 DATABASE SYSTEMS, ALGORITHMS AND APPLICATIONS, TR 1:10-2:25, Professor Hank Korth

Design of large databases; normalization; query languages (including SQL); transaction-processing protocols; query optimization; performance tuning; distributed systems.

*NEW COURSE for 2015-2016* CSE 350-010/450-010 PRIVACY AWARE DATA ANALYTICS, TR 2:35-3:50, Professor Ting Wang

With the tremendous success of data-driven services and applications (e.g., personalized recommendation, customized news, targeted ads) follows their immense threat to the privacy of people's sensitive information. This course discusses how to design and implement data analytical methods and systems that respect individuals' data privacy while still enabling high-quality analysis results. Main topics covered in the course include: privacy-aware data publishing, privacy-aware data mining, privacy-aware mobile services, privacy-aware web services, and secure multiparty computation. The course will be a combination of lectures and paper presentations by the students. Students will also pursue a course research project. The final outputs of the project include a presentation and a short report.

*NEW COURSE for 2015-2016* CSE 350-010/450-010 MOBILE COMPUTING, TR 10:45-12:00, Professor Mooi Choo Chuah

This is a combined lecture/seminar course where emphasis will be placed on reading research papers on recent developments in mobile computing. This includes how to use sensors within smartphones or WiFi signals to build useful apps for our lives e.g. measuring our sleeping patterns, heart rate monitoring and how to design scalable mobile data systems e.g. offloading functions to mobile cloudlets, designing energy efficient apps for image retrieval. Last but not least, we will also address security and privacy issues for mobile sensing. A course project is expected. Android-based mobile devices will be used.

CSE 375-010/475-010 PRINCIPLES AND PRACTICE OF PARALLEL COMPUTING, TR 9:20-10:35, Professor Michael Spear

This class focuses on the principles and practice of parallel and concurrent programming. On the "practice" side, we will learn structured patterns for parallel programming, and employ them by writing C++ code using Intel's Threading Building Blocks. We will also learn structured patterns for concurrent programming, and employ them by writing C++ and Java code. On the "principles" side, we will learn theoretical concepts that assist in reasoning about the correctness of concurrent programs, and we will analyze classic parallel algorithms to gain an understanding of how to craft efficient parallel solutions to real-world problems. We will also explore advanced topics in the creation of scalable systems. Click here for official course description.

*NEW COURSE for 2015-2016* CSE 398-010/CSE 498-010 BIG DATA ANALYTICS, T 10:45-12:00, Professor Daniel Lopresti

In this 2-credit project course, we will gain a practical working knowledge of large- scale data analysis using the popular open source Apache Spark framework. Spark provides a powerful model for distributing programs across clusters of machines and elegantly supports patterns that are commonly employed in big data analytics, including classification, collaborative filtering, and anomaly detection, among others.

Working from the course textbook, we will study and program solutions for problems including: music recommender systems; predicting forest cover with decision trees; anomaly detection in network traffic with K-means clustering; understanding Wikipedia with Latent Semantic Analysis; analyzing co-occurrence networks with GraphX; geospatial and temporal data analysis on the New York City Taxi Trips data; estimating financial risk through Monte Carlo simulation; analyzing genomics data and the BDG project; and analyzing neuroimaging data with PySpark and Thunder.

Supplemental readings will provide additional background for each application area, but most of the work in the course will involve implementing, studying, and enhancing the programming examples from the textbook. During class, students will take turns presenting their own solutions and helping to lead the discussion. A final project will be required.

Enrollment in this course is limited and requires permission of the instructor. Please note that this is not a basic course on data mining, cluster computing, or programming in Scala; it assumes you already know something about these topics and/or you can learn them quickly on your own. Contact the instructor, Prof. Dan Lopresti, for details.

CSE 401-010 ADVANCED COMPUTER ARCHITECTURE, MW 4:00-5:15, Professor Xiaochen Guo

Design, analysis and performance of computer architectures; high-speed memory systems; cache design and analysis; modeling cache performance; principle of pipeline processing, performance of pipelined computers; scheduling and control of a pipeline; classification of parallel architectures; systolic and data flow architectures; multiprocessor performance; multiprocessor interconnections and cache coherence.

CSE 403-010 ADVANCED OPERATING SYSTEMS, TR 1:10-2:25, Professor Yinzhi Cao

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.

CSE 441-010 ADVANCED ALGORITHMS, MW 11:10-12:25, Professor Lisa Zhang

Algorithms for searching, sorting, manipulating graphs and trees, scheduling tasks, finding shortest path, matching patterns in strings, cryptography, matroid theory, linear programming, max-flow, etc., and their correctness proofs and analysis of their time and space complexity. Strategies for designing algorithms, e.g. recursion, divide-and-conquer, greediness, dynamic programming. Limits on algorithm efficiency are explored through NP completeness theory. Quantum computing is briefly introduced. Credit will not be given for both CSE 340 (MATH 340) and CSE 441 (MATH 441).


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.