Summer and Fall 2019 Courses

 

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


SUMMER SESSION I (5/21/19-6/27/19)

 

CSE 002 FUNDAMENTALS OF PROGRAMMING, MTWR 10:00-11:35,  Professor Arielle Carr

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


CSE 017 Programming & Data Structures, MTWR 12:00-1:35, Professor Arielle Carr

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 109 SYSTEMS SOFTWARE, TR 9:00-12: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.



CSE 264 WEB SYSTEMS PROGRAMMING, TR 1:00-3:50, 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.


SUMMER SESSION II (7/1/19-8/8/19)

 

CSE 017 Programming & Data Structures, MTWR 8:00-9:35, Professor Corey Montella

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 109 SYSTEMS SOFTWARE, MTWR 10:00-11:45, Professor Corey Montella

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 241 DATABASE SYSTEMS AND APPLICATION, MTWR 2:00-3:35, 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. Not available to students who have credit for CSE 341 or IE 224.


Fall 2019

CSE 001 BREADTH OF COMPUTING, MWF 9:20-10:10, Professor Hank Korth

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 002 FUNDAMENTALS OF PROGRAMMING

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

** NEW FACULTY MEMBER** CSE 002-110,  TR 7:55-9:10,  Professor Houria Oudghiri

Laboratory for this section is held during the Thursday lecture time.

CSE 002-210, MW 3:00-4:15, Professor Sharon Kalafut

Laboratory for this section is held during the Wednesday lecture time.

** NEW FACULTY MEMBER** CSE 002-310, TR 1:35-2:50, Professor Houria Oudghiri

Laboratory for this section is held during the Thursday lecture time.

CSE 002-311, MW 10:45-11:35 F (LAB) 10:45-11:35, Professor Brian Chen


CSE 012 SURVEY OF COMPUTER SCIENCE, MW 12:10-1:25, Professor Sharon Kalafut

Fundamental concepts of computing and "computational thinking": problem analysis, abstraction, algorithms, digital representation of information, and networks. Applications of computing and communication that have changed the world. Impact of computing on society. Concepts of software development using a scripting language such as Python, Perl, or Ruby. Not available to students who have taken CSE 015 or CSE 001.


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

CSE 017-011, MWF 3:00-3:50, Professor Arielle Carr

** NEW FACULTY MEMBER** CSE 017-012, TR 10:45-12:00, Houria Oudghiri


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:45-12:00, Professor Mark Erle

CSE 109-012, MWF 3:00-4:15, Professor Mark Erle



CSE 160 INTRO TO DATA SCIENCE, MWF 1:35-2:50, 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).


*NEW COURSE FALL 2019* CSE 198/COGS 198 SURVEY OF ARTIFICIAL INTELLIGENCE, TR 10:45-12:00, Professor Jeff Heflin

An introduction to artificial intelligence (AI) intended for non-majors. AI concepts, systems, and history. Credit will not be given for both CSE/COGS 127 and CSE/COGS 327. Prerequisite: CSE 002. (Course will become CSE 127/COGS 127)


** NEW FACULTY MEMBER ** CSE 202 COMPUTER ORGANIZATION AND ARCHITECTURE,  TR 1:35-2:50, Professor William Phillips

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.  Credit will not be given for both CSE 201 and CSE 202.


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:35-2:50, Professor Liang Cheng

CSE 216-011, TR 3:00-4:15, Professor Liang Cheng


CSE 241 Data Base Systems and Applications, MW 9:20-10:35, Professor Sihong Xie

Design of large databases: Integration of databases and applications using SQL and JDBC; transaction processing; performance tuning; data mining and data warehouses. Not available to students who have credit for CSE 341 or IE 224.


CSE 252 COMPUTERS, INTERNET AND SOCIETY, MW 3:00-4:15, 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 12:10-1:00, Professor Corey Montella

CSE 262-011 MWF 1:35-2:25, Professor Corey Montella


** NEW FACULTY MEMBER** CSE 264 WEB SYSTEMS PROGRAMMING, MWF 12:10-1:00, Professor Dominic DiFranzo

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 PROGRAMMING IN C & THE UNIX ENVIRONMENT, MW 1:35-2:50, 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 CAPSTONE PROJECT II, F 3:00-4:15, Professor Corey Montella, Professor William Phillips

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.


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, MW 1:35-2:50, Professor Michael Spear

CSE 303-012, MW 3:00-4:15, Professor Michael Spear


CSE 307/407 STRUCTURAL BIOINFORMATICS, MWF 12:10-1: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 331 USER INTERFACE SYSTEMS & TECHNIQUES, MW 12:40-1:55, 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 336/ECE 336 EMBEDDED SYSTEMS, MW 3:00-4:15, Professor Yahong Zheng

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.


** NEW COURSE FOR FALL 2019 ** CSE 337/437 REINFORCEMENT LEARNING, TR 7:55-9:10, Professor Hector Munoz-Avila

Algorithms for automated learning from interactions with the environment to optimize long-term performance. Markov decision processes, dynamic programming, temporal-difference learning, Monte Carlo reinforcement learning methods. Credit will not be given for both CSE 337 and CSE 437.


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, MW 10:45-12:00, Professor Arielle Carr

CSE 340-011, TR 10:45-12:00, Professor Hank Korth



**NEW COURSE FALL 2019** CSE 371/CSE 498 PRINCIPLES OF MOBILE COMPUTING, MW 1:35-2:50, Professor Mooi Choo Chuah

Lecture/seminar course covering the fundamental concepts and technology underlying mobile computing and its application as well as current research in these areas. Examples drawn from a variety of application domains such as health monitoring, energy management, commerce, and travel. Issues of system efficiency will be studied, including efficient handling of large data such as images and effective use of cloud storage. Research coverage will be drawn from the best publications in the recent research conferences.


CSE 375/475 PRINCIPLES & PRACTICE OF PARALLEL COMPUTING, MWF 9:50-10:40, 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 2019* CSE 398-010/CSE 498-011 SOCIAL COMPUTING, TR 9:50-11:05, Professor Eric Baumer

Covers the application of computational techniques to understanding human social behavior. Most techniques discussed in the class come from machine learning, natural language processing, data mining, social network analysis, and/or related areas. Assumes familiarity with relevant statistical methods on which these techniques are based.


CSE 398-013/498-013 NATURAL LANGUAGE PROCESSING, MW 12:40-1:55, 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.


CSE 401/ECE 401 ADVANCED COMPUTER ARCHITECTURE, TR 10:45-12:00, 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 406 RESEARCH METHODS, TR 2:05-3:20, 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 CS program.


CSE 411 ADVANCED PROGRAMING TECHNIQUES, MWF 11:15-12:05, Ahmed Hassan

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.


CSB COURSES – FALL 2019

CSB 304 TECHNOLOGY & SOFTWARE VENTURES, TR 12:10-1:25, Professor Joshua Ehrig

Designed from the perspective of a functional leader, this course provides students with a holistic perspective of developing a successful software venture in an interdisciplinary and experiential environment. Students will develop a software-oriented idea concurrent with module delivery that will contain best practices, case studies, and subject-matter experts. Examination will include business model fundamentals, customer discovery, translating requirements to a minimum viable product, agile development, user acquisition, and traction. Prior programming experience preferred, but, not required. Open to any major.


CSB 313 DESIGN OF INTEGRATED BUSINESS APPLICATIONS II, TR 12:10-1:25 Professors Sharon Kalafut, George Witmer, and Edwin Yeakel

Integrated Product Development (IPD) Capstone I. Industry-based business information systems design project. Information systems design methodology, user needs analysis, project feasibility analysis of design alternatives, and integrated product development methodology. Formal oral and written presentations to clients. Click here for official description.



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.