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. Click here for official description.
CSE 001-010, TR 7:55-9:10, Professor Shahida Parvez
CSE 001-011, MWF 9:10-10:00, Professor Daniel Lopresti

CSE 002 FUNDAMENTALS OF PROGRAMMING

Problem-solving and object-oriented programming using Java. Includes laboratory. No prior programming experience needed. Click here for official description. 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 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 002-310, MW 9:10-10:00 F (lab) 9:10-10:00, Professor Eric Fouh Mbindi
CSE 002-311, MW 9:10-10: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 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. Click here for official description.
CSE 017-010, MW 11:10-12:00 F (lab) 8:10-9: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, MW 1:10-2:00 F(lab) 12:10-1: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 10:10-11:00, Professor Jeff Helfin

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 042-010 GAME DESIGN, TR 10:45-12:00, Professor Hector Munoz-Avila

Modern topics on game design: Finite State Machines, iterative design process, systems and interactivity, designing rules for digital games, emergence in games, games of Schemas of Uncertainty, games as Information Theory Schemas, games as Information Systems, games as Cybernetic Systems. The course does not count as a technical elective for majors in Computer Science, Computer Science and Business, or Computer Engineering. Click here for official description.

CSE 109 SYSTEMS SOFTWARE, MWF 2:10-3:00 M (lab) 3:10-4:00, Professor James Femister

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. Click here for official description.

CSE 130-010 TECHNICAL PRESENTATION, R 12:10-1:00, Professor John Spletzer

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

CSE 198-010 INTRO TO DATA SCIENCE, MWF 11:10-12: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, MWF 11:10-12:00, Professor James Femister

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. Click here for official description.

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). Click here for official description.

CSE 261 DISCRETE STRUCTURES, MWF 3:10-4: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. Click here for official description.
CSE 262-010, MWF 1:10-2:00, Professor Jason Loew
CSE 262-011 MWF 10:10-11:00, Professor Jason Loew

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. Click here for official description.
CSE 303-010, TR 1:10-2:25, Professor Jason Loew
CSE 303-011, TR 9:20-10:35, Professor Michael Spear

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. Click here for official description.

CSE 336-010 EMBEDDED SYSTEMS, MWF 3:10-4:00, Professor David Decker

Use of small computers embedded as part of other machines. Limited-resource microcontrollers and state machines from high description language. Embedded hardware: RAM, ROM, flash, timers, UARTs, PWM, A/D, multiplexing, debouncing. Development and debugging tools running on host computers. Real-Time Operating System (RTOS) semaphores, mailboxes, queues. Task priorities and rate monotonic scheduling. Software architectures for embedded systems. Click here for official description.

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

CSE 342-010 FUNDAMENTALS OF INTERNETWORKING, MWF 9:10-10:00 W (lab) 12:10-1:00, Professor Liang Cheng

Architecture and protocols of computer networks. Protocol layers; network topology; data-communication principles, including circuit switching, packet switching and error control techniques; sliding window protocols, protocol analysis and verification; routing and flow control; local and wide area networks; network interconnection; client-server interaction; emerging networking trends and technologies; topics in security and privacy. Click here for official description.

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. Click here for official description.

*NEW COURSE for 2016-2017* CSE 350-011/450-011 CYBER DEFENSE & OFFENSE, TR 1:10-2:25, Professor Yinzhi Cao

This is a cybersecurity course combining both offense and defense. From the offense side, students will learn and participate in exploiting vulnerable services like hackers; From the defense side, students will learn how to fix vulnerabilities and protect against real-world exploits. The course is mixed with lectures and seminars. Students will also pursue a course research project.

*NEW COURSE for 2016-2017* CSE 350-012/450-012 SECURITY & PRIVACY ISSUES IN EMERGING TECHNOLOGIES, TR 9:20-10:35, Professor Mooi Choo Chuah

This course focuses on the security and privacy issues in various emerging technologies e.g. participatory sensing, healthcare devices, mobile applications, internet of things, and cloud computing systems. While these emerging technologies gain more popularity, there are many unresolved issues related to confidentiality, integrity and availability of data in these emerging technologies. In this course, we will examine the system model in these emerging technologies, look into the threat models and security issues related to these systems, and explore design techniques for securing such systems. Since several of these emerging systems are still in their infancy, we will mainly study the cutting edge research published in recent conferences. Students are expected to do a class project involving some programming at the end of the semester.

CSE 360-010 INTRODUCTION TO MOBILE ROBOTICS/CSE 460-010 MOBILE ROBOTICS TR 9:20-10:35, Professor John Spletzer

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. Click here for official description.

CSE 379-010 SENIOR PROJECT, T 12:10-1:00, Professor John Spletzer

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. Click here for official description.

CSE 398-010 MULTI-PARADIGM SOFTWARE DEVELOPMENT IN SCALA, TR 2:35-3:50, Professor James Femister

Scala is a programming language that elegantly combines two approaches to programming: the object-oriented paradigm with which we are all familiar and the functional paradigm which solves problems by composing functions. The functional approach has been around since the early days of computing but has particularly caught on in recent years. Scala programs compile down to Java byte codes which run on the Java Virtual Machine which makes it easy to combine Scala and Java classes in a single program. It has been adopted by LinkedIn, Twitter, FourSquare, Xerox and many other companies.

This course will not just teach the Scala language, but also a number of programming language concepts that are build into in the language such as partial functions, partially applied functions, currying, type variance, and pattern matching. When you finish the course you will have a power tool in your programming toolbox that will allow you to write programs that take half the number of lines of code than they would in Java and with fewer bugs. (Prerequisite: CSE 109).

*NEW COURSE for 2016-2017* CSE 398-011/498-011 TEXT MINNG, TR 1:10-2:25, Professor Sihong Xie

Ever wonder how computers understand your tweet, facebook posts and google search history to recommend you friends and push you advertisements? This course introduces you to the fascinating area called text mining to answer such questions. Through programming examples and projects, you will learn the cutting edge computational techniques to collect, analyze and make sense of the big text data available in digital formats. The course will progress through these 3 modules: 1) light-weighted introduction to core programming and mathematical tools; 2) statistical models for representing and handling text data; 3) real-world applications of the above tools and models. Prerequisites for CSE 398: (MATH 231 or ECO 045) and (CSE017), for CSE 498 instructor permission is required. Students from all areas with commensurate level of knowledge are also welcome. While all programming languages are welcome, Python will be used for demonstration purpose.

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

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 431-010 INTELLIGENT AGENTS, TR 10:45-12:00 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.


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.