Computer Science and Engineering (CSE)

Subject-area course lists indicate courses currently active for offering at the University of Louisville. Not all courses are scheduled in any given academic term. For class offerings in a specific semester, refer to the Schedule of Classes.

500-level courses generally are included in both the undergraduate- and graduate-level course listings; however, specific course/section offerings may vary between semesters. Students are responsible for ensuring that they enroll in courses that are applicable to their particular academic programs.

Course Fees

Some courses may carry fees beyond the standard tuition costs to cover additional support or materials. Program-, subject- and course-specific fee information can be found on the Office of the Bursar website.


CSE 101. Bachelor of Arts in Computer Science Campus Culture Experience1 Unit

Term Typically Offered: Fall, Spring

Prerequisite(s): Admission to the BACS program.

Description: This is a one hour required campus culture course that takes place in the first semester the student is enrolled in the Bachelor of Arts in Computer Science program.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 110. Mathematical Foundations for Computer Science3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): Math 180 or equivalent.

Description: The course covers mathematical and statistical concepts necessary for design and analysis of computer algorithms as well as developing system performance models, but visiting selected topics from number theory, vectors and matrices, combinatorics, probability, and statistics.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 120. Introduction to Programming with Python3 Units

Term Typically Offered: Fall, Summer

Description: This course presents a hands-on approach to learning Python programming. It will contain topics including basic syntax, algorithms and program development, functions, arrays and vectors, lists and dictionaries, strings, files, object-oriented programming, and practical problem solutions and applications.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 130. Introduction to C and C++ Programming Languages3 Units

Term Typically Offered: Fall, Spring, Summer

Description: This course presents computer programs design and implementation using the ANSI C language and C++. It will cover topics pertaining to program life-cycles, modularity, operators, expressions, flow control, functions, scope, recursion and iteration, pointers, memory allocation and management, structures and data files access. It includes an introduction to Object-Oriented design principles, designing and instantiating classes and developing class methods. It covers functions, arrays, I/O file streams and data files. It includes laboratory exercises on the writing and compiling of computer programs in C, C++.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 220. Object Oriented Program Design with Java3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): CSE 130.

Description: Introduction to Object Oriented Program design principal concepts and program development using Java programming language. It includes laboratory exercises on the design and implementation of computer applications in Java.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 235. Computer Systems and Organization3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): CSE 110, CSE 130.

Description: This course provides an introduction to the fundamental concepts of computer systems by exploring how computer systems execute programs and manipulate data, working from the C programming language down to the microprocessor. Topics covered include a tour of computer systems and hardware, advanced C programming techniques necessary to implement computer systems, data representation and manipulation techniques, and machine-level representations of programs in assembly language.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 288. Computer Science and Engineering Cooperative Education Seminar0 Units

Grading Basis: Pass/Fail

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): CHEM 201, ENGL 101, ENGR 102, ENGR 110, PHYS 298, student must be in Good Standing with GPA of 2.25 or higher; CSE 220, CSE 302.

Corequisite(s): CSE 220, CSE 302.

Description: Discussion of the policies and procedures for cooperative education and instruction in self- directed job search techniques, including interviewing skills, resume preparation, and guidelines for the co-op report. This is a prerequisite for each cooperative education term.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 289. Computer Science and Engineering Cooperative Education I1 Unit

Grading Basis: Pass/Fail

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): CSE 288.

Fee: An additional $300.00 is charged for this course.

Description: Full-time technical work experience related to the student's academic program.

Course Attribute(s): CBL - This course includes Community-Based Learning (CBL). Students will engage in a community experience or project with an external partner in order to enhance understanding and application of academic content.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 298. Internship Education Seminar (BACS)0 Units

Grading Basis: Pass/Fail

Term Typically Offered: Fall, Spring

Prerequisite(s): CSE 120, and CSE 130.

Description: This is a zero credit hour required career development course that takes place before the first internship work term.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 299. Internship I 1 Unit

Grading Basis: Pass/Fail

Term Typically Offered: Summer Only

Prerequisite(s): CSE 298, CSE 302, and CSE 335.

Fee: An additional $300.00 is charged for this course.

Description: Full-time technical work experience related to the student's Bachelor of Arts in Computer Science (BACS) program.

Course Attribute(s): CBL - This course includes Community-Based Learning (CBL). Students will engage in a community experience or project with an external partner in order to enhance understanding and application of academic content.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 302. Data Structures3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): CSE 130.

Description: Study of information representations and relationship between the form of representation and processing techniques. Transformations between storage media. Referencing of information as related to the structure of its representation and implications for the design of the referencing language. Engineering applications and associated designs are used to illustrate different structures.

Note: Enrollment restricted to CSE students only.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 310. Discrete Structures3 Units

Term Typically Offered: Fall, Spring, Summer

Description: Engineering applications using computer structures including algebraic computational structures, finite state machines, relational structures, propositional logic, trees, graphs, groups, machine equivalence, introduction to formal grammar. Applications of these structures to engineering problems including fluid flow, communication systems, artificial intelligence, digital logic, and algorithm evaluation. A written report is required.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 311. Ethics, Social, and Legal Aspects on the Electronic Frontier3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): Third-year standing.

Description: Examination of the legal, social and ethical issues associated with electronic information dissemination and manipulation with a focus on computer systems and networks. Topics include current issues and controversies that put the needs and desires of one group against those of other groups, including business, governmental and social interests. Students will be required to complete papers on the topics discussed and participate in class discussions. Technical writing and oral presentations are required.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 335. Introduction to Database3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): CSE 302 or concurrently.

Description: This course is intended as an introduction to database management and programming for Computer Science students, both majors in the BS and BA degrees and minors. It covers the basics of SQL for database creation and querying, including procedural extensions and language binding for database access through applications, and an introduction to database design.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 350. Introduction to Software Engineering3 Units

Term Typically Offered: Fall, Summer

Prerequisite(s): CSE 220 and CSE 302.

Description: Software engineering is an engineered discipline in which the aims is the production of software products, delivered on time and within a set budget, that satisfy the clients needs. It covers all aspects of software production ranging from the early stage of product concept to design and implementation to post-delivery maintenance. This course introduces the major concepts, techniques, and tools of software engineering so that students can prepare for their future IT and software careers. Moreover, through group curated projects, students can obtain hands-on experiences on entire phases and work-flow of the software process.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 389. Computer Science and Engineering Cooperative Education II1 Unit

Grading Basis: Pass/Fail

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): CSE 289.

Fee: An additional $300.00 is charged for this course.

Description: Full-time technical work experience related to the student's academic program.

Course Attribute(s): CBL - This course includes Community-Based Learning (CBL). Students will engage in a community experience or project with an external partner in order to enhance understanding and application of academic content.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 390. Special Topics in Undergraduate Computer Science and Engineering3 Units

Term Typically Offered: Occasionally Offered

Prerequisite(s): Consent of instructor.

Description: Devoted to undergraduate topics which usually are not treated in detail in the general courses.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 393. Independent Study in Computer Science and Engineering1-6 Units

Term Typically Offered: Fall, Spring, Summer

Description: For class offerings for a specific term, refer to the Schedule of Classes.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 399. Internship II 1 Unit

Grading Basis: Pass/Fail

Term Typically Offered: Summer Only

Prerequisite(s): CSE 299.

Fee: An additional $300.00 is charged for this course.

Description: Full time technical work experience related to the student's BACS program.

Course Attribute(s): CBL - This course includes Community-Based Learning (CBL). Students will engage in a community experience or project with an external partner in order to enhance understanding and application of academic content.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 412. Introduction to Embedded Systems3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): ECE 210 and Junior standing, or faculty consent.

Description: Introduction to embedded systems; assembly language programming, parallel and serial data transfer; polling, interrupts, and servicing of interrupts; software and hardware timing; analog-to-digital and digital-to- analog conversion. Laboratory projects on interfacing, system design, and implementation.

Note: Cross-listed with ECE 412.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 419. Introduction to Algorithms3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): CSE 302 and CSE 310.

Description: This course covers an introduction to algorithms, spanning topics ranging from computational complexity to advanced tree and graph algorithms.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 420. Design of Operating Systems3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): CSE 302 and (CSE 412 or CSE 235).

Description: The course is designed to cover basic concepts of operating systems design and implementation including processes management, memory management, input/output and file management, storage management, distributed systems, and security.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 470. Mobile Device Programming3 Units

Term Typically Offered: Spring Only

Prerequisite(s): CSE 220 or equivalent.

Description: This course covers the basic concepts in designing and implementing applications running on Apple's IOS and Google's Android operating systems.

Note: Formerly CSE 570.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 489. Computer Science and Engineering Cooperative Education III1 Unit

Grading Basis: Pass/Fail

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): CSE 389.

Fee: An additional $300.00 is charged for this course.

Description: Full-time technical work experience related to the student's academic program.

Course Attribute(s): CBL - This course includes Community-Based Learning (CBL). Students will engage in a community experience or project with an external partner in order to enhance understanding and application of academic content.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 496. BACS Capstone Design - CUE3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): Senior Standing.

Description: Prerequisites or corequisites: CSE 350, CSE 420. This course requires solving a real-world design problem in computer science. It uses software design methods and tools learned in previous coursework emphasizing teamwork, written and oral communication.

Course Attribute(s): CUE - This course fulfills the Culminating Undergraduate Experience (CUE) requirement for certain degree programs. CUE courses are advanced-level courses intended for majors with at least 90 earned credits/senior-level status., CBL - This course includes Community-Based Learning (CBL). Students will engage in a community experience or project with an external partner in order to enhance understanding and application of academic content.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 503. Survey of Computer Science and Engineering3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): CSE 130.

Description: Introduction to foundations of computer science and engineering for non-majors. Emphasis on C++ programming language, data structures and algorithms, and operating systems fundamentals. This course cannot be used to meet degree requirements for any CSE/CS degree.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 504. Automata Theory3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): CSE 310.

Description: Finite state machines and their application to engineering problems including modeling the behavior of discrete systems. Topics include theory of computing, formal language theory, and applications of cellular automata. Engineering models of digital computer hardware are covered and related to software design.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 506. Modeling and Analysis of Engineering Systems3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): ENGR 330.

Description: Representation of engineering systems, Fourier analysis, z-transforms, frequency response, state-space analysis, stability, an introduction to the basic theory of filter design, and demonstrated concepts to CAS.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 510. Computer Design3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): ECE 210.

Corequisite(s): ECE 511.

Description: Review of logic design and elementary computer organization. Design of the central processing unit, memory, control, and input-output portions of a computer. The VHDL hardware design language will be used.

Note: Cross-listed with ECE 510.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 516. Fundamentals of Computer Communications and Networks3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): ECE 360 or IE 360, and CSE 412.

Description: Data communications: The exchange of data between devices is covered. The key aspects of transmission interfacing, link control, and multiplexing are examined. Data communication networking: Examines the internal mechanisms by which communication networks provide a data transfer service for attached devices.

Note: Cross-listed with ECE 518.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 522. Performance Evaluation of Computer Systems3 Units

Term Typically Offered: Fall Only

Prerequisite(s): IE 360 and CSE 420.

Description: A study of approaches to the evaluation of computer systems. Measurement techniques and evaluation techniques are treated in detail with attention to existing commercial hardware and software monitors and simulators.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 525. Microcomputer Design4 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): ECE 412 or CSE 412 or consent of instructor.

Description: Design and construction of microcomputers with microprocessors and digital integrated circuits. Breadboarding, hardware design, and software design are emphasized. The class is separated into groups, and each group designs, breadboards, and tests a complete microcomputer system, including interfaces to peripheral devices.

Note: Cross-listed with ECE 516.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 528. Game Design and Programming3 Units

Term Typically Offered: Spring Only

Prerequisite(s): CSE 302.

Description: This course will provide an overview of Multimedia and Game programming, and teach basic computer game design techniques using state-of-the-art game engines.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 530. Design of Compilers3 Units

Term Typically Offered: Summer Only

Prerequisite(s): CSE 420.

Description: Engineering descriptions of algorithmic language. Study of syntax, semantics, ambiguities, procedures, replication, iterations, and recursion in the language. Engineering design of a compiler.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 532. Python and Data Analytics3 Units

Term Typically Offered: Spring Only

Prerequisite(s): (CSE 120 or CSE 130) and Junior standing or higher.

Description: Python is an interpreted, high-level programing language useful for rapid application development. It supports many modules and packages suitable for tasks ranging from scientific research to business software development. In recent years Python has become a fundamental tool for numerical and data analysis, as well as machine learning. This course has a dual focus of providing users with advanced Python programming skills, as well as experience processing and analyzing data with Python and its libraries. It addresses a variety of topics in a Python programming context, including file management, working with data structures, algorithms and program development, object-oriented programs, and practical problem solutions and applications.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 535. Database Systems3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): CSE 302 or equivalent.

Description: Course covers basics of database design, SQL, query processing, and optimization, transactions. The emphasis will be placed on Engineering design and implementation of relational systems. A written project is required.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 536. Data Management and Analysis3 Units

Term Typically Offered: Fall Only

Description: The goal of the course is to teach, to the students who are not Computer Science majors, the basic skills needed to organize, assess and analyze data sets. The course discusses a variety of tools (file systems, database systems, and the R environment) as well as a series of basic tasks, from generating metadata to basic filtering, organizing and enrichment of data sets. This course contributes to develop analysis, modeling and problem-solving skills.

Note: This course is intended for non-CSE majors.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 538. Graph Database and Graph Analytics3 Units

Term Typically Offered: Summer Only

Prerequisite(s): CSE 302.

Description: Our world is connected. Data representing real-world problems for analysis, however, usually are discrete and do not explicitly include connected information (relationship or link) in their data models. Graph analytics is the study and analysis of data that can be transformed into a graph representation consisting of nodes (to represent real-world entities) and edges (to represent relationships between entities). Graph analytics is built on the mathematics of graph theory, with augmentation of properties attached to nodes and edges. And graph database systems will be used to build a repository of connected graph data and query the data with a non-procedural graph query language, or an API based on a procedural programming language.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 539. Advanced industrial Software for Home Appliances (part A1)4.5 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): The student must be participating in the GE Appliance Edison program or employees at GE Appliances enrolled in the CSE program.

Description: This course provides graduate students working in the major home appliance industry with an advanced understanding of industrial software engineering and their application to technologies associated with the design, development, and production of major household appliances such as refrigerators, washers, dryers, cooking products and dishwashers. This course serves as one of the curricular elements for the GE Appliance Edison students and is limited to students participating in this program or employees at GE Appliances enrolled in the CSE program.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 540. Object Oriented Information Technology3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): Graduate standing.

Description: Survey of design and development of object oriented software. Software architectures, development environments, graphical user interfaces, and networks of distributed objects. Software design project required.

Note: CSE students cannot receive credit for CSE 440 and 540.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 542. Computer Control and Real Time Programming3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): ECE 412 or CSE 412.

Description: Programmable Logic Controllers, Human Machine interfaces, SCADA, state machines, sensors, and actuators. Study of industrial algorithms, open/closed loop real-time control, and schematics.

Note: Previously cross-listed with ECE 517.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 545. Artificial Intelligence3 Units

Term Typically Offered: Fall Only

Prerequisite(s): CSE 302 and CSE 310.

Description: This course introduces the use of predicate calculus logic, heuristic search, and knowledge representations for solving engineering and computer science problems. The course includes coverage of rule-based expert systems, intelligent agents,and machine learning.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 546. Introduction to Machine Learning3 Units

Term Typically Offered: Spring Only

Prerequisite(s): CSE 532, or IE 360 or equivalent This course provides a broad introduction to machine learning.

Description: This course will cover topics in data pre-processing, regression, classification, clustering, neural networks, ensemble methods, and deep learning. We will learn the fundamental concepts behind several machine learning algorithms without going deeply into the mathematics. We will focus on gaining practical experience applying machine learning to a range of real-world problems.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 547. Deep Learning Algorithms and Methods3 Units

Term Typically Offered: Fall Only

Prerequisite(s): CSE 532, or IE 360 or equivalent Deep Learning is an area of Artificial Intelligence and Machine Learning techniques.

Description: Its ability to represent objects without the need of extensive feature engineering or pre-defining rules makes it one of the most powerful and flexible frameworks to learn from data. This course covers basic concepts and applications of Deep Learning Techniques.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 550. Software Engineering3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): CSE 420.

Description: Engineering methods applied to the life-cycle issues in the team-oriented development of large software systems including issues of software processes, metrics, testing and quality. Documentation of the project and an oral presentation are required.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 551. Data Visualization for Data Science3 Units

Term Typically Offered: Spring Even Years

Prerequisite(s): CSE 302, CSE 532 This course is all about data visualization, the art and science of turning data into readable graphics.

Description: The course aims to introduce key design principles and techniques for interactively visualizing data. The major goals of this course are to understand how visual representations can help in the analysis and understanding of complex data, how to design effective visualizations, and how to create your own interactive visualizations with modern analytics languages.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 563. Experimental Design in Engineering3 Units

Term Typically Offered: Spring, Summer

Prerequisite(s): IE 360 OR IE 560.

Description: Design of engineering experiments and projects using theory of least squares, analysis of variance, randomized blocks, factorial experiments, nested designs, split plot designs and logistic regression techniques. Covers a combination of analysis by hand and using Minitab statistical software.Students may not obtain credit for both IE 563 and ME 611; or for IE 563 and EM 661.

Note: Cross-listed with IE 563.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 564. Introduction to Cryptography3 Units

Term Typically Offered: Summer Only

Prerequisite(s): CSE 310 and IE 360.

Description: This course gives a historical introduction to cryptology and the science of secret codes. The first part covers substitution ciphers, transposition codes, Vigenere cipher and more complex polyalphabetic substitutions including those created by rotor machines. The second part describes bit block cipher schemes such as Data Encryption Standard (DES). Public key encryption is the subject of the final part including RSA, Knapsack codes, and Diffie-Hellman key exchange.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 565. Software Security3 Units

Term Typically Offered: Spring Only

Prerequisite(s): CSE 220, CSE 564.

Description: This class offers a comprehensive view into software security practices. Students will learn how to develop software with security in mind, learn how to perform static code analysis, fuzz testing, and vulnerability assessments. It will analyze concepts of malware including viruses, adware, rootkits, and others. Students will gain a deep understanding of how software architectures and platforms as a whole must be developed to enhance security in design and development. The relationships to other aspects of cybersecurity in the software development lifecycle will be analyzed. Students will need a basic understanding of cryptography as well as some assembly and high-level (C, Java, Python) language proficiency.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 566. Information Security3 Units

Term Typically Offered: Summer Only

Prerequisite(s): CSE 420.

Description: Technical, legal and policy issues associated with information security. Authentication, trusted computer systems, information encryption, biometrics, computer forensics, and privacy issues. Written and verbal reports are required.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 568. Computer Forensics3 Units

Term Typically Offered: Summer Only

Prerequisite(s): CSE 311, CSE 420, and CSE 566, or consent of instructor.

Description: Course examines legal, legal, administrative, technical and scientific issues in computer forensics, network forensics, information security and trusted systems. Course requires class participation, lab work, team projects, writing and oral presentations.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 590. Special Topics in Computer Science and Engineering1-6 Units

Term Typically Offered: Spring Only

Description: Devoted to topics which usually are not treated in detail in the general courses.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 593. Independent Study in Computer Science and Engineering1-6 Units

Term Typically Offered: Fall, Spring, Summer

Description: Opportunity for the student, under the supervision of a sponsoring faculty member, to pursue individualized study related to research or practice that is not included in regular courses in the curriculum.

Note: Chair Approval is required.

For class offerings for a specific term, refer to the Schedule of Classes

CSE 596. CSE Capstone Design - CUE3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): Senior Standing, CSE 350, CSE 525 (or concurrently).

Description: This course requires solving a real-world design problem in computer science and engineering. It uses hardware and software design methods and tools learned in previous coursework emphasizing teamwork, written and oral communication.

Course Attribute(s): CUE - This course fulfills the Culminating Undergraduate Experience (CUE) requirement for certain degree programs. CUE courses are advanced-level courses intended for majors with at least 90 earned credits/senior-level status., CBL - This course includes Community-Based Learning (CBL). Students will engage in a community experience or project with an external partner in order to enhance understanding and application of academic content.

For class offerings for a specific term, refer to the Schedule of Classes