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-10, MW 3:10-4:00 F (lab) 3:10-4:00, Professor James Femister
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 9:20-10:35, 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, MWF 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-012, MWF 2:10-3: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-010, MWF 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-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 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 10:10-11:00 F (lab) 11:10-12:00, Professor Jason Loew

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

*NEW COURSE for 2016-2017* CSE 198-011 INTRO TO THE INTERNET OF THINGS, T 7:10-9:00PM, Professor Darryl Jones

This course will give and end to end introduction to the Internet of Things (IoT) from both a technical and business perspective. It will cover technical solutions, data and analytics, as well as business implications and overall economic impacts. At the end of the course, students will have an understanding of the current state and trends within IoT, the market opportunities available, and the emerging technologies that make IoT possible. Student will also have first hand experience converting IoT data into consumable Insights that drive business value.

Areas introduced will include IoT Hardware and Devices, Interoperability and Compatibility, IoT Big Data Architecture, Data Science in IoT, Monetization Strategies, Business Models, Vertical Industry Disruption, and User Experience. Note that this is an evening course and some kind of programming experience is pre-requisite (CSE 002 or CSE 012 or BIS 335).

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

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

Design of large databases: Integration of databases and applications using SQL and JDBC; transaction processing; performance tuning; data mining and data warehouses.
CSE 241-010, TR 10:45-12:00, Professor Hank Korth
CSE 241-011, TR 2:35-3:50, Professor Sihong Xie

CSE 252-010 COMPUTERS, INTERNET AND SOCIETY, TR 2:35-3: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)

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.
CSE 261-010, TR 2:35-3:50, Professor Xiaolei Huang
CSE 261-011, TR 9:20-10:35, Professor Ting Wang

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 271-010 PROGRAMMING IN C AND THE UNIX ENVIRONMENT, MW 12:45-2:00, 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 318-010 INTRODUCTION TO THE THEORY OF COMPUTATION, TR 10:45-12:00, Professor Hector Munoz-Avila

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

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

CSE 343-010/443-010 NETWORK SECURITY, MW 8:45-10:00, 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.

CSE 345-010/445-010 WWW SEARCH ENGINES, MWF 1:10-2:00, Professor Brian Davison

Study of algorithms, architectures, and implementations of WWW search engines; Information retrieval (IR) models; performance evaluation; properties of hypertext crawling, indexing, searching and ranking; link analysis; parallel and distributed IR; user interfaces.

CSE 350-010/450-010 MOBILE COMPUTING, MW 12:45-2: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 398/498-010 BIG DATA ANALYTICS, T 2:35-3:50, 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.

*NEW COURSE for 2016-2017* CSE 398-013/498-014 SERVICES COMPUTING, MWF 11:10-12:00, Professor Liang Cheng

Principles and practice of services computing. SOA (service oriented architecture), middleware, services computing management, P2P (peer-to-peer) service systems, cloud computing, ubiquitous computing, and services computing performance, security and privacy. Case studies include Google service platforms (GSP), Amazon web services (AWS), and Blockchain/Bitcoin. Prerequisite: CSE 303 or 202 previously or concurrently, or consent of the instructor.

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 409-010 THEORY OF COMPUTATION, TR 10:45-12:00, Professor Hector Munoz-Avila

Finite automata. Pushdown automata, Relationship to definition and parsing of formal grammars. Credit will not be given for both CSE 318 and CSE 409.

CSE 441-010 ADVANCED ALGORITHMS, TR 2:35-3:50, Professor Hector Munoz-Avila

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.