CSE SUMMER 2022 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.


COMPUTER SCIENCE COURSE ENROLLMENT INFO FOR NON-MAJORS

Space is extremely limited in our computer science classes and we don’t often have space for students outside the program. Highly qualified non-majors can request space in these classes by contacting our Academic Coordinator, Heidi Wegrzyn.  Please know not all requests can be accommodated due to capacity constraints.


FULL SUMMER SESSION (5/24/2022-8/11/2022)

CSE 298 SOFTWARE SYSTEM DESIGN, PROTOTYPING AND ANALYSIS (Remote Asynchronous),  Professor Stephen Urban

This 3-credit project-based course gives exposure to and practical working knowledge of emerging opportunities enabled by cheap sensors, robust software libraries, and networked computing devices. Small projects will be conducted in teams, culminating in project presentations at the end of the term. The instructor will cover material relevant to each project, such as research methods, software engineering, teamwork, and project management. Students propose, analyze, pitch, design, and implement their project. Feedback and approval on the proposal by the instructor is required before the project can proceed. Prerequisites: CSE 017 and CSE 140.


SUMMER SESSION I (5/24/2022-6/30/2022)

CSE 003 INTRODUCTION TO PROGRAMMING PART A, MTWR 10:00-11:35 (Remote Synchronous),  Professor Kallie Ziltz

Covers the same material as the first half of CSE 007. Designed to allow more class and laboratory time for each topic. No prior programming experience needed. Cannot be taken by students who have completed CSE 007.


CSE 017 PROGRAMMING AND DATA STRUCTURES, MTWR 10:00-11:35 (Remote Synchronous), Professor Stephen Urban

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. Prerequisite: CSE 004 or CSE 007 or (CSE 002 and (CSE 001 or CSE 012 or ENGR 010))


CSE 140 FOUNDATIONS OF DISCRETE STRUCTURES & ALGORITHMS, MTWR 2:00-3:35 (Remote Synchronous), Professor Ahmed Hassan

Basic representations used in algorithms: propositional and predicate logic, set operations and functions, relations and their representations, matrices and their representations, graphs and their representations, trees and their representations. Basic formalizations for proving algorithm correctness: logical consequences, induction, structural induction. Basic formalizations for algorithm analysis: counting, pigeonhole principle, permutations. Prerequisites: (MATH 021 or MATH 031 or MATH 051 or MATH 076) and CSE 017 (co-requisite).


CSE 202 COMPUTER ORGANIZATION AND ARCHITECTURE, MTWR 10:00-11:35(Remote Synchronous), Professor Houria Oudghiri

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. Prerequisite: CSE 17

 

SUMMER SESSION II (7/5/22-8/11/22)

CSE 004 INTRODUCTION TO PROGRAMMING PART B, MTWR 10:00-11:35 (Remote Synchronous),  Professor Kallie Ziltz

Covers the same material as the second half of CSE 007. Designed to allow more class and laboratory time for each topic. Cannot be taken by students who have completed CSE 007.


CSE 109 SYSTEMS SOFTWARE, MW 4:00-6:50 (Remote Synchronous) 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. Prerequisite: CSE 17


CSE 271 PROGRAMMING IN LINUX AND WINDOWS OPERATING SYSTEMS, Remote Asynchronous,  Professor Mark Erle

Students learn Linux and Windows operating system fundamentals including features, history, organization, process management, and file system. Tools commonly available with these operating systems, such as those used for program development, text processing, scheduling jobs, and communications, are also explored. Emphasis is placed on learning Linux's BASh and Window's PowerShell scripting languages, and students should expect to work on a variety of small programming assignments. Prerequisite: CSE 017

CSE 298 FOUNDATIONS OF ROBOTICS, T 2:00-4:50 (Remote Synchronous), Professor Corey Montella

** Offered as Flex.  There is a course section for students attending remote and a course section for students attending in the classroom.**

Introduces students to the field of robotics, covering foundational mathematics and physics as well as important algorithms and tools. Topics include simulation, kinematics, control, machine learning, and probabilistic inference. The mathematical basis of each area will be covered, followed by practical application to common robotics tasks. This course is designed to be taught remotely using simulated robot platforms and sensors. Pre-requisites:  CSE 004 OR CSE 007


CSE Fall 2022 COURSES

 
COMPUTER SCIENCE COURSE ENROLLMENT INFO FOR NON-MAJORS

Space is extremely limited in our computer science classes and we don’t often have space for students outside the program. Highly qualified non-majors can request space in these classes by contacting our Academic Coordinator, Heidi Wegrzyn.  Please know not all requests can be accommodated due to capacity constraints.


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. Courses will be offered on campus unless listed otherwise.


CSE 003 INTRO. TO PROGRAMMING PART A, MWF 12:10-1:00, Professor Stephen Urban

Covers the same material as the first half of CSE 007. Designed to allow more class and laboratory time for each topic. No prior programming experience needed. Cannot be taken by students who have completed CSE 007.


CSE 007 INTRODUCTION TO PROGRAMMING

Problem-solving using the Java programming language. Data types, control flow, methods, arrays, objects, inheritance, breadth of computing. Includes laboratory. If credit is given for CSE 007 then no credit will be given for CSE 003 nor CSE 004.

CSE 007-010, MWF 12:10-1:25, Professor Sharon Kalafut

CSE 007-011, MWF 9:20-10:35, Professor Kallie Ziltz

CSE 007-012, MWF 3:00-4:15, STAFF

CSE 007-013, MWF 10:45-12:00, Professor Kallie Ziltz


CSE 012-011 SURVEY OF COMPUTER SCIENCE, MW 3:00-4:15, Professor Sharon Kalafut

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.


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:20-10:35, Professor Houria Oudghiri

CSE 017-011, TR 1:35-2:50, Professor Kallie Ziltz

CSE 017-012, MW 7:55-9:10, Professor 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 1:35-2:50, Professor Corey Montella

CSE 109-012, MWF 3:00-4:15, Professor Corey Montella


CSE 140 FOUNDATIONS OF DISCRETE STRUCTURES & ALGORITHMS

Basic representations used in algorithms: propositional and predicate logic, set operations and functions, relations and their representations, matrices and their representations, graphs and their representations, trees and their representations. Basic formalizations for proving algorithm correctness: logical consequences, induction, structural induction. Basic formalizations for algorithm analysis: counting, pigeonhole principle, permutations. Prerequisites: (MATH 021 or MATH 031 or MATH 051 or MATH 076) and CSE 017 (co-requisite).

CSE 140-010, TR 9:20-10:35, Professor Ahmed Hassan

CSE 140-011, MW 3:00-4:15, Professor Yu Yang


CSE 160 INTRO TO DATA SCIENCE

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 160-010, MW (Lecture) 1:35-2:50  F (Lab) 9:50-11:05 (Building C), Professor Brian Davison

CSE 160-011, MW (Lecture) 1:35-2:50  F (Lab) 12:40-1:55 (Building C), Professor Brian Davison


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

CSE 216-011, MW 12:10-1:25, Professor Mark Erle

CSE 216-012, MW 3:00-4:15, Professor Mark Erle


CSE 241 Data Base Systems and Applications, MW 10:45-12:00, 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 242 Blockchain Algorithms and Systems, TR 10:45-12:00, Professor Hank Korth

Blockchain system concepts, data structures, and algorithms. Cryptographic algorithms for blockchain security. Distributed consensus algorithms for decentralized control in both a public and permissioned blockchain setting. Smart contracts. Cross-chain transactions. Blockchain databases and enterprise blockchains. Prerequisites: CSE 109 or CSE 241 or CSE 341 (CSE 109 can be taken concurrently).


CSE 252 COMPUTERS, INTERNET AND SOCIETY

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 252-010, MW 12:10-1:25, Professor George Witmer

CSE 252-011, TR 1:35-2:50 Professor George Witmer


CSE 262 PROGRAMMING LANGUAGES

Use, structure and implementation of several programming languages.

CSE 262-010, MW 12:10-1:25, Professor Michael Spear

CSE 262-011 MW 1:35-2:50, Professor Michael Spear


CSE 264 WEB SYSTEMS PROGRAMMING, MW 10:45-12:00, STAFF

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 281 CAPSTONE PROJECT II, TR 3:00-4:15, Professors Brian Colville, Debra Kreider, James Mikitka, Corey Montella, Andrea Smith, George Witmer, Stephen Urban

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

CSE 303-011, MW 3:00-4:15, Professor Ahmed Hassan


CSE 313/498 COMPUTER GRAPHICS, MW 11:15-12:30 (Building C), 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.


CSE 326/426 MACHINE LEARNING, MW 9:20-10:35, Professor Sihong Xie

Bayesian decision theory and the design of parametric and nonparametric classification and regression: linear, quadratic, nearest-neighbors, neural nets. Boosting, bagging. Credit will not be given for both CSE 326 and CSE 426


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 12:10-1:25, Professor Arielle Carr

CSE 340-011, MW 3:00-4:15, Professor David Saldana


CSE 342-010 FUNDAMENTALS OF INTERNETWORKING, MW 1:35-2:50, Professor Mark Erle

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.


CSE 349/449 BIG DATA ANALYTICS, MW 2:05-3:20 (Building C), Professor Daniel Lopresti

In this 3-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.

Beyond the textbook, supplemental readings will provide additional background for each application area. During class, students will take turns 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, machine learning, or distributed computing; it assumes you already know something about these topics and/or you can pick up the necessary details on your own. Contact the instructor, Prof. Daniel Lopresti, for details. This course will be taught in Building C. Prerequiste: CSE 109 and (CSE 326 or CSE 347), or permission of the instructor.


CSE 371/CSE 471 PRINCIPLES OF MOBILE COMPUTING, MW 9:20-10:35, 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. Deep learning methods will be covered. Students will do Android programming and possibly develop Alexa/Google home skills for homework assignments and final class projects. Prerequisites: CSE 109 and (CSE 202 or ECE 201).



CSE 398/498 COMPUTER VISION, TR 2:05-3:20 (Building C), Professor Aparna Bharati

Computer Vision is the process of enabling machines (computers) to see and understand the world around us. With the recent growth in the usage of images and videos for day-to-day interaction and sensitive applications of security such as face recognition and autonomous driving, the field has become extremely important and popular. It provides us with the knowledge and tools for automated visual interpretation. This course aims to provide an introduction to how images are represented in a computer, how it can be processed to highlight certain aspects of it, and how we can extract meaningful information from them for the purposes of image matching, recognition, and reconstruction. We will cover topics such as image formation and acquisition, scene geometry, image processing (filtering and segmentation), feature extraction (handcrafted and learning-based) and matching, and classification techniques. Students will learn techniques from signal processing, pattern recognition, machine learning and deep learning that are dominantly used to process and understand visual data. The course will enable the students to build full pipelines for solutions to some classic vision problems and familiarize them with some new and challenging problem statements in the field.

Required: basic skills in Python and Matlab programming. Good to have: basics in image and signal processing, linear algebra, geometry and optics, and basic experience with OpenCV; these will help in faster adoption of the topics discussed in class and will make assignments easier.


CSE 398/498 Blockchain Projects, F 10:45-12:00, Professor Hank Korth

Each student in the course will work on a pre-specified project related to blockchain systems and/or applications.  The projects can be either individual or in small groups.  In addition to project work, course requirements include one 75-minute class meeting in which each project team presents updates on status, progress, and open problems, and one student is selected for a longer prepared presentation.   Each project has a second meeting each week with the course instructor for a more in-depth discussion.  Grading is based on project results and participation in presentations.  This course may be repeated for credit. Prerequisites: Department permission (to be granted only after the student has agreed with the instructor on a specific project team and agenda)


CSE 398/498 THEORY OF SOCIAL COMPUTING, MW 9:50-11:05 (Building C), Professor Dominic DiFranzo

The class is an introduction to the purpose and use of theory in social computing research. It will also act as a survey of many of the theoretical foundations of social computing possibly including but not limited to Feminist and Critical theory, Social Capital, Social Identity Perspective, Social Identity Theory, Uses and Gratifications Theory, Social Learning Theory, Primming,  and others. Prerequisite: CSE 252


CSE 398/498 ROBOT SWARMS, TR 2:05-3:20 (Building C), Professor David Saldaña

Robots swarms are composed of hundreds or thousands of robots. Individually robots are simple and do not have many capabilities, but as a group, they can perform complex behaviors. In this course, we study the main abstractions and control algorithms in the state of the art. We cover centralized and distributed approaches for collective behaviors, as well as resiliency against malicious attacks. Prerequisite: CSE360


CSE 398/498 ADVERSARIAL MACHINE LEARNING, MW 2:05-3:20 (Building C), Professor Lichao Sun

This course will introduce adversarial machine learning, including research areas related to security, privacy, and machine learning. The class will be a combination of lectures and paper discussions, which requires some mathematical maturity to understand the new advanced techniques and value the papers' contributions. The lectures cover the basics of evasion attacks on machine learning, detection, and defenses against adversarial attacks and potentially fairness of machine learning, etc. Paper discussions will involve reading recent top conference papers in this area. The students are recommended to have a basic background in machine learning or data mining courses. Pre-requisites: CSE326 or CSE 426 or CSE347 or CSE 447 or equivalent courses, or ask permission from the instructor.


CSE 398/498 DEEP LEARNING, TR 3:00-4:15, Professor Maryam Rahnemoonfar

This course is an introduction to deep learning, a subset of machine learning, concerned with the development and application of modern neural networks. In this course, you will learn about the theory and application of deep learning. We will cover a range of topics from basic Neural Networks, Convolutional Neural networks (CNN) and Recurrent Neural networks (RNN), Generative Adversarial Networks (GAN), and deep unsupervised learning. In addition, the students will learn how to apply the deep learning methods to solve real-world problems in several areas including computer vision, civil engineering, environmental science, remote sensing, medical, language, and AI for social good applications and develop the insights necessary to use the tools and techniques to solve any new real-world problem. Instructor permission needed.


CSE 401/ECE 401 ADVANCED COMPUTER ARCHITECTURE, TR 10:45-12:00, Professor Jieming Yin

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 9:50-11:05 (Building C), 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, MW 12:10-1:25, Professor Houria Oudghiri

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 2021

CSB 304 TECHNOLOGY & SOFTWARE VENTURES, TR 10:45-12:00, 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 3:00-4:15,  Professors Brian Colville, Debra Kreider, James Mikitka, Corey Montella, Andrea Smith, George Witmer, Stephen Urban

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.


COMPUTER SCIENCE COURSE ENROLLMENT INFO FOR NON-MAJORS

Space is extremely limited in our computer science classes and we don’t often have space for students outside the program. Highly qualified non-majors can request space in these classes by contacting our Academic Coordinator.  Please know not all requests can be accommodated due to capacity constraints.