CSE SUMMER 2023 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, Beth Yen (bsy296@lehigh.edu).  Please know not all requests can be accommodated due to capacity constraints.


FULL SUMMER SESSION (5/22/2023-8/10/2023)

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/22/2023-7/1/2023)

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 9:00-10:45 (Remote Synchronous), Professor Stephen Thomas

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


CSE 252 COMPUTERS, THE INTERNET, AND SOCIETY, STUDY ABROAD, Professor Sharon Kalafut

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.
Section information text:
Study Abroad Only-Lehigh in Barcelona 

SUMMER SESSION II (7/3/23-8/12/23)

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 260 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(260-011) and a course section for students attending in the classroom(260-010).**

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 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 FALL 2023 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 Associate Chair, Prof. Mark Erle.  Please know not all requests can be accommodated due to capacity constraints.


CSE 003 INTRODUCTION TO PROGRAMMING, PART A MW 1:35-2:50, 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 007 INTRODUCTION TO PROGRAMMING Professor Kallie Ziltz

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.

One lecture: CSE 007-010 (Lecture) M 9:20-10:35, or CSE 007-011 (Lecture) M 10:45-12:00 and one of the following recitations:

CSE 007-060 (Lab) TR 9:20-10:35

CSE 007-061 (Lab) TR 10:45-12:00

CSE 007-062 (Lab) TR 1:35-2:50

CSE 007-063 (Lab) TR 3:00-4:15


CSE 012-010 SURVEY OF COMPUTER SCIENCE, MW 3:00-4:15, TBD

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.


CSE 017 PROGRAMMING AND DATA STRUCTURES Professor Houria Oudghiri

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. Prerequisites: CSE 004 or CSE 007

 CSE 017-110 (Lecture) M 10:45-12:00, and one of the following labs:

 CSE 017-112 T (Lab) 7:55-9:10

 CSE 017-113 T (Lab) 12:10-1:25 

 CSE 017-114 T (Lab) 1:35-2:50 

 CSE 017-115 R (Lab) 7:55-9:10

 CSE 017-116 R (Lab) 12:10-1:25 

 CSE 017-117 T (Lab) 1:35-2:50


CSE 109 SYSTEMS SOFTWARE  Professor Mark Erle

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. Prerequisites: CSE 017

CSE 109-110 (Lecture) MW 1:35-2:50 and one of the following recitations:

CSE 109-111, F 1:35-2:50

CSE 109-112, F 10:45-12:00

CSE 109-113, F 7:55-9:10

CSE 109-114, F 9:20-10:35


CSE 140 FOUNDATIONS OF DISCRETE STRUCTURES & ALGORITHMS Professor Yu Yang

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. CSE 017 can be taken concurrently.

CSE 140-110 (Lecture) TR 9:20-10:35 and one of the following recitations:

CSE 140-111, M 3:00-4:15

CSE 140-112, T 12:10-1:25

CSE 140-113, W 3:00-4:15

CSE 140-114, R 12:10-1:25

 


CSE 160-010 INTRO TO DATA SCIENCE Professor Aparna Bharati

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 004, 007, 012 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). Prerequisites: CSE 004 or CSE 007 or CSE 012 or BIS 335

CSE 160-010 (Lecture) MW 1:35-2:50 and one of the following labs:

CSE 160-060, F 9:50-11:05

CSE 160-061, F 11:15-12:30

CSE 160-062, F 2:05-3:20


CSE 202 COMPUTER ORGANIZATION AND ARCHITECTURE, MW 1:35-2:50 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. Prerequisites: CSE 017

 


CSE 216-010 SOFTWARE ENGINEERING Professor Stephen Urban

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. Prerequisites: CSE 017

CSE 216-010, TR 1:35-2:50 

CSE 216-011, MW 12:10-1:25


CSE 241 DATABASE SYSTEMS AND APPLICATIONS Professor Roberto Palmieri

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

CSE 241-110 (Lecture) TR 12:10-1:25, and one of the following recitations:

CSE 241-111, F 1:35-2:50

CSE 241-112, F 3:00-4:15


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
Can be taken Concurrently: CSE 109


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

CSE 252-011, TR 12:10-1:25, Professor Eric Baumer


CSE 262 PROGRAMMING LANGUAGES Professor Corey Montella

Use, structure and implementation of several programming languages. Prerequisites: CSE 017

CSE 262-110 (Lecture) MW 12:10-1:25, and one of the following recitations:

CSE 262-111, M 1:35-2:50

CSE 262-112, W 1:35-2:50


CSE 264 WEB SYSTEMS PROGRAMMING, MW 10:45-12: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. Prerequisites: CSE 017


CSE 281-010 CAPSTONE PROJECT II, TR 3:00-4:15, (REMOTE)  Professor George Witmer

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.
Prerequisites: CSE 280


CSE 302 COMPILER DESIGNS TR 12:10-1:25 Professor Jim Femister

Principles of artificial language description and design. Sentence parsing techniques, including operator precedence, bounded-context, and syntax-directed recognizer schemes. The semantic problem as it relates to interpreters and compilers. Dynamic storage allocation, table grammars, code optimization, compiler-writing languages.
Prerequisites: (CSE 109)


CSE 303 OPERATING SYSTEM DESIGN  MW 3:00-4:15, Professor Ahmed Hassan

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.
Prerequisites: ECE 201 or (CSE 201 or CSE 202) and CSE 109


CSE 313-010/498-043 COMPUTER GRAPHICS, MW 11:15-12:30, 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.
Prerequisites: CSE 109 and (MATH 043 or MATH 205 or MATH 242)


CSE 320/420 BIOMEDICAL IMAGE COMPUTING, TR 2:05-3:20, Professor Lifang He

Biomedical image modalities, image computing techniques, and imaging informatics systems. Understanding, using, and developing algorithms and software to analyze biomedical image data and extract useful quantitative information: Biomedical image modalities and formats; image processing and analysis; geometric and statistical modeling; image informatics systems in biomedicine. Credit will not be given for both BioE 320 and BioE 420. Credit will not be given for both CSE 320 and CSE 420. Prerequisites: (MATH 205 or MATH 043) and CSE 017


CSE 326/426 FUNDAMENTALS OF MACHINE LEARNING, TR 10:45-12:00, Professor Lichao Sun

Overview of modern natural language processing techniques: text normalization, language model, part-of-speech tagging, hidden Markov model, syntactic and dependency parsing, semantics, word sense, reference resolution, dialog agent, machine translation. Design, implementation and evaluation of classic NLP algorithms. Credit will not be given for both CSE 325 and CSE 425. Prerequisites: (MATH 231 or ECO 045) and CSE 017


CSE 340 DESIGN AND 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. Prerequisites: (MATH 021 or MATH 031 or MATH 076) and CSE 140 and CSE 017

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

CSE 340-012 TR 9:20-10:35 Professor Masoud Yari


CSE 342 FUNDAMENTALS OF INTERNETWORKING MW 9:20-10:35, Professor Mooi Choo Chuah

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.
Prerequisites: CSE 109


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

Provides working knowledge of large-scale data analysis using open source frameworks such as Apache Spark and Waikato Environment for Knowledge Analysis (Weka). Includes patterns employed in big data analytics, including classification, collaborative filtering, recommender systems, natural language processing, simulation, deep learning, and anomaly detection. Project-oriented software course; students should have substantial programming experience in one or more high-level languages. Past experience in data mining and/or machine learning expected. Credit will not be given for both 349 and 449. There are in-person and remote options for both 349 and 449. Need instructor approval. 
Prerequisites: CSE 109 and (CSE 326 or CSE 347)


CSE 367/467 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-062/498-062 THEORY OF SOCIAL COMPUTING, TR 2:05-3:20 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


**NEW COURSE FOR FALL 2023** CSE 398-066/498-066 ITERATIVE METHODS, TR 11:15-12:30, Professor Arielle Carr

In this course, we will study commonly used iterative methods for efficiently solving large, sparse linear systems. We will begin with a review of basic numerical analysis in order to motivate the following topics covered in the course: Direct methods, iterative methods, Krylov subspace methods, preconditioning techniques, and multigrid methods. We will analyze the theoretical properties of each, including convergence behavior and computational and memory demands.  We will evaluate performance using numerical experimentation on various real-world applications.  Time permitting, we will extend our discussion to iterative solutions of eigenvalue problems. Students should have a strong background in linear algebra and computer programming.  The use of MATLAB will be required. 


CSE 398-073/498-073 REINFORCEMENT LEARNING IN ROBOTICS, T 2:05-5:40, Professor David Saldana

This course will cover the fundamental concepts and techniques of reinforcement learning, focusing on robotics applications. Topics covered will include multi-robot reinforcement learning, imitation learning, safe learning, and combining physics knowledge in the learning process. The course will include hands-on programming assignments and projects to help students gain practical experience implementing reinforcement learning algorithms in robotic systems. By the end of the course, students will have a deep understanding of reinforcement learning in robotics and the skills to apply these techniques to solve real-world robotics problems.
Prerequisite: CSE360


CSE 398/498-042 OPERATING SYSTEM IMPLEMENTATION, MW 12:40-1:55, Professor Michael Spear

NOTE:  This course was previously listed as CSE 403.  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. Prerequisites: CSE 303


CSE 406-010 RESEARCH METHODS, TR 9:50-11:05, 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 either the CS or CompE Ph. D. program.


CSE 411-010 ADVANCED PROGRAMMING TECHNIQUES, TR 12:40-1:55 Professor Corey Montella

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.