University Catalog

Computer Science and Engineering - Undergraduate Programs

Requirements for a Bachelor of Science Degree in Computer Science

The University Core Curriculum consists of 42 credit hours from University Core Curriculum.

General Education Courses24
PROFESSIONAL AND TECHNICAL COMMUNICATION FOR SCIENCE AND ENGINEERING
GOVERNMENT OF THE UNITED STATES
STATE AND LOCAL GOVERNMENT
History Electives (6 hours) 2
Social & Behavioral Sciences (IE 2308 or ECON 2305)
Approved Language, Philosophy and Culture elective 2
Approved Creative Arts elective 2
Program Requirements
Pre-Professional Courses 1
UNIV 1131STUDENT SUCCESS1
or ENGR 1101 ENTRANCE TO ENGINEERING FOR TRANSFER STUDENTS
ENGL 1301RHETORIC AND COMPOSITION I3
MATH 1426CALCULUS I (fulfills common core)4
MATH 2425CALCULUS II4
PHYS 1443GENERAL TECHNICAL PHYSICS I4
PHYS 1444GENERAL TECHNICAL PHYSICS II4
CSE 1106INTRODUCTION TO COMPUTER SCIENCE AND ENGINEERING1
CSE 1310INTRODUCTION TO COMPUTERS & PROGRAMMING3
CSE 1320INTERMEDIATE PROGRAMMING3
CSE 1325OBJECT-ORIENTED PROGRAMMING3
CSE 2312COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING3
CSE 2315DISCRETE STRUCTURES3
CSE 3318ALGORITHMS & DATA STRUCTURES3
Professional Courses 3
IE 3301ENGINEERING PROBABILITY3
or MATH 3313 INTRODUCTION TO PROBABILITY
CSE 3302PROGRAMMING LANGUAGES3
CSE 3310FUNDAMENTALS OF SOFTWARE ENGINEERING3
CSE 3314PROFESSIONAL PRACTICES3
CSE 3315THEORETICAL CONCEPTS IN COMPUTER SCIENCE AND ENGINEERING3
CSE 3320OPERATING SYSTEMS3
CSE 3330DATABASE SYSTEMS AND FILE STRUCTURES3
CSE 3380LINEAR ALGEBRA FOR CSE3
or MATH 3330 INTRODUCTION TO LINEAR ALGEBRA AND VECTOR SPACES
CSE 4308ARTIFICIAL INTELLIGENCE3
CSE 4316COMPUTER SYSTEM DESIGN PROJECT I3
CSE 4317COMPUTER SYSTEM DESIGN PROJECT II3
CSE 4344COMPUTER NETWORK ORGANIZATION3
Select one of the following:3
COMPUTER GRAPHICS
COMPILERS FOR ALGORITHMIC LANGUAGES
AUTONOMOUS ROBOT DESIGN AND PROGRAMMING
Select one of the following:3
INFORMATION SECURITY
INFORMATION SECURITY II
SECURE PROGRAMMING
Approved Mathematics elective 23
Approved Technical electives 215
Total Hours123
1

All pre-professional courses must be completed with a C or better before enrolling in professional courses

2

A list of acceptable electives is available from the departmental office or Web site.

3

All prerequisites for professional courses must be completed with a C or better

Note: Total hours will depend upon prior preparation and academic qualifications.  Also, students who do not have two units of high school foreign language will be required to take modern and classical language courses in addition to the previously listed requirements.

Refer to the College of Engineering section of this catalog for information concerning the following topics: Preparation in High School for Admission to the College of Engineering, Admission to the College of Engineering, Admission to the Professional Program, Counseling, College of Engineering Academic Regulations, Transfer Policies, College of Engineering Probation, Repeating Course Policy and Academic Honesty.

Recommended Core Curriculum

Computer Science and  Engineering students will satisfy the university core curriculum requirement by completing all General Education courses specified under “Requirements for a Bachelor of Science Degree in Computer Science” along with ENGL 1301, MATH 1426, MATH 2425, PHYS 1443 and PHYS 1444, which are within the Pre-Professional Program.  The university core curriculum allows each degree plan to designate a component area to satisfy three hours of the core requirement.  For the Computer Science degree plan, the designated component area is Mathematics and MATH 2326 is selected to satisfy the requirement.

Requirements for a Bachelor of Science Degree in Computer Engineering

The University Core Curriculum consists of 42 credit hours from University Core Curriculum.

General Education Courses24
PROFESSIONAL AND TECHNICAL COMMUNICATION FOR SCIENCE AND ENGINEERING
GOVERNMENT OF THE UNITED STATES
STATE AND LOCAL GOVERNMENT
History Electives (6 hours) 2
Social & Behavioral Sciences (IE 2308 or ECON 2305)
Approved Language, Philosophy and Culture elective 2
Approved Creative Arts elective 2
Program Requirements
Pre-Professional Courses 1
UNIV 1131STUDENT SUCCESS1
or ENGR 1101 ENTRANCE TO ENGINEERING FOR TRANSFER STUDENTS
ENGL 1301RHETORIC AND COMPOSITION I3
MATH 1426CALCULUS I4
MATH 2425CALCULUS II4
PHYS 1443GENERAL TECHNICAL PHYSICS I4
PHYS 1444GENERAL TECHNICAL PHYSICS II4
CSE 1106INTRODUCTION TO COMPUTER SCIENCE AND ENGINEERING1
CSE 1310INTRODUCTION TO COMPUTERS & PROGRAMMING3
CSE 1320INTERMEDIATE PROGRAMMING3
CSE 1325OBJECT-ORIENTED PROGRAMMING3
CSE 2312COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING3
CSE 2315DISCRETE STRUCTURES3
CSE 2440CIRCUIT ANALYSIS4
CSE 2441DIGITAL LOGIC DESIGN I4
CSE 3318ALGORITHMS & DATA STRUCTURES3
Professional Courses 3
IE 3301ENGINEERING PROBABILITY3
or MATH 3313 INTRODUCTION TO PROBABILITY
CSE 3313INTRODUCTION TO SIGNAL PROCESSING3
CSE 3314PROFESSIONAL PRACTICES3
CSE 3320OPERATING SYSTEMS3
CSE 3323ELECTRONICS3
CSE 3341DIGITAL LOGIC DESIGN II3
CSE 3380LINEAR ALGEBRA FOR CSE3
or MATH 3330 INTRODUCTION TO LINEAR ALGEBRA AND VECTOR SPACES
CSE 3442EMBEDDED SYSTEMS I4
CSE 4316COMPUTER SYSTEM DESIGN PROJECT I3
CSE 4317COMPUTER SYSTEM DESIGN PROJECT II3
CSE 4323QUANTITATIVE COMPUTER ARCHITECTURE3
CSE 4342EMBEDDED SYSTEMS II3
Approved Mathematics elective 23
Approved Science elective 24
Approved Technical elective 29
Total Hours124
1

All pre-professional courses must be completed with a C or better before enrolling in professional courses

2

A list of acceptable electives is available from the departmental office or Web site.

3

All prerequisites for professional courses must be completed with a C or better

 Note: Total hours will depend upon prior preparation and academic qualifications.  Also, students who do not have two units of high school foreign language will be required to take modern and classical language courses in addition to the previously listed requirements.

 Refer to the College of Engineering section of this catalog for information concerning the following topics: Preparation in High School for Admission to the College of Engineering, Admission to the College of Engineering, Admission to the Professional Program, Counseling, College of Engineering Academic Regulations, Transfer Policies, College of Engineering Probation, Repeating Course Policy and Academic Honesty.

Recommended Core Curriculum

Computer Science and  Engineering students will satisfy the university core curriculum requirement by completing all General Education courses specified under “Requirements for a Bachelor of Science Degree in Computer Engineering” along with ENGL 1301, MATH 1426, MATH 2425, PHYS 1443 and PHYS 1444, which are within the Pre-Professional Program.  The university core curriculum allows each degree plan to designate a component area to satisfy three hours of the core requirement.  For the Computer Engineering degree plan, the designated component area is Mathematics and MATH 2326 is selected to satisfy the requirement.

Requirements for a Bachelor of Science Degree in Software Engineering

The University Core Curriculum consists of 42 credit hours from University Core Curriculum.

General Education Courses24
PROFESSIONAL AND TECHNICAL COMMUNICATION FOR SCIENCE AND ENGINEERING
GOVERNMENT OF THE UNITED STATES
STATE AND LOCAL GOVERNMENT
History Electives (6 hours) 2
Social & Behavioral Sciences (IE 2308 or ECON 2305)
Approved Language, Philosophy and Culture elective 2
Approved Creative Arts elective 2
Program Requirements
Pre-Professional Courses 1
UNIV 1131STUDENT SUCCESS1
or ENGR 1101 ENTRANCE TO ENGINEERING FOR TRANSFER STUDENTS
ENGL 1301RHETORIC AND COMPOSITION I3
MATH 1426CALCULUS I4
MATH 2425CALCULUS II4
PHYS 1443GENERAL TECHNICAL PHYSICS I4
PHYS 1444GENERAL TECHNICAL PHYSICS II4
CSE 1106INTRODUCTION TO COMPUTER SCIENCE AND ENGINEERING1
CSE 1310INTRODUCTION TO COMPUTERS & PROGRAMMING3
CSE 1320INTERMEDIATE PROGRAMMING3
CSE 1325OBJECT-ORIENTED PROGRAMMING3
CSE 2312COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING3
CSE 2315DISCRETE STRUCTURES3
CSE 3318ALGORITHMS & DATA STRUCTURES3
Professional Courses 3
IE 3301ENGINEERING PROBABILITY3
or MATH 3313 INTRODUCTION TO PROBABILITY
CSE 3302PROGRAMMING LANGUAGES3
CSE 3310FUNDAMENTALS OF SOFTWARE ENGINEERING3
CSE 3311OBJECT-ORIENTED SOFTWARE ENGINEERING3
CSE 3314PROFESSIONAL PRACTICES3
CSE 3315THEORETICAL CONCEPTS IN COMPUTER SCIENCE AND ENGINEERING3
CSE 3320OPERATING SYSTEMS3
CSE 3330DATABASE SYSTEMS AND FILE STRUCTURES3
CSE 3380LINEAR ALGEBRA FOR CSE3
or MATH 3330 INTRODUCTION TO LINEAR ALGEBRA AND VECTOR SPACES
CSE 4316COMPUTER SYSTEM DESIGN PROJECT I3
CSE 4317COMPUTER SYSTEM DESIGN PROJECT II3
CSE 4321SOFTWARE TESTING & MAINTENANCE3
CSE 4322SOFTWARE PROJECT MANAGEMENT3
CSE 4361SOFTWARE DESIGN PATTERNS3
CSE 4380INFORMATION SECURITY3
Approved Mathematics elective 23
Approved Science elective 24
Approved Technical electives 29
Total Hours124
1

All pre-professional courses must be completed with a C or better before enrolling in professional courses

2

A list of acceptable electives is available from the departmental office or Web site.

3

All prerequisites for professional courses must be completed with a C or better

Note: Total hours will depend upon prior preparation and academic qualifications.  Also, students who do not have two units of high school foreign language will be required to take modern and classical language courses in addition to the previously listed requirements

Refer to the College of Engineering section of this catalog for information concerning the following topics: Preparation in High School for Admission to the College of Engineering, Admission to the College of Engineering, Admission into the Professional Program, Advising, College of Engineering Academic Regulations, Transfer Policies, College of Engineering Probation, Repeating Course Policy and Academic Honesty.

Recommended Core Curriculum

Computer Science and  Engineering students will satisfy the university core curriculum requirement by completing all General Education courses specified under “Requirements for a Bachelor of Science Degree in Software Engineering” along with ENGL 1301, MATH 1426, MATH 2425, PHYS 1443 and PHYS 1444, which are within the Pre-Professional Program.  The university core curriculum allows each degree plan to designate a component area to satisfy three hours of the core requirement.  For the Software Engineering degree plan, the designated component area is Mathematics and MATH 2326 is selected to satisfy the requirement.

Minor in Computer Science

To receive a minor in Computer Science, a student must not be receiving his/her major degree from the department and must complete all courses listed with a grade of C or better in each course. Any substitutions must be approved in advance by the department chairperson.

Requirements for a Minor in Computer Science

To receive a minor in Computer Science, a student must complete the following courses with a grade of C or better in each:

CSE 1320INTERMEDIATE PROGRAMMING3
CSE 1325OBJECT-ORIENTED PROGRAMMING3
CSE 2315DISCRETE STRUCTURES3
CSE 3318ALGORITHMS & DATA STRUCTURES3
Any two 3000 or 4000 level courses with a grade of C or better in each as well as all required prerequisites for the chosen courses6
Total Hours18
1

Grade of C or better in each, as well as all required prerequisites for the chosen courses.

Undergraduate Certificate in Cyber Security

Program Objective

The Certificate in Cyber Security is offered through the Computer Science  and Engineering Department and will educate undergraduate students in the knowledge and skills required to identify and proactively mitigate potential cyber security risks.  Students will learn about cryptographic techniques and public key infrastructure, secure programming techniques, and computer network security including intrusion detection devices and firewalls.  This program aims at the dual goal of providing industry with a knowledgeable, locally available workforce while developing career opportunities for its participants.  The Certificate in Cyber Security will be awarded concurrently with an undergraduate degree.

Admission Requirements

The certificate is open to all degree-seeking students.

Academic Requirements

Students must complete 12 hours of coursework as outlined below.  A combined GPA of 3.0 or better must be earned on all courses used to satisfy the certificate requirements.

Required classes
CSE 4344COMPUTER NETWORK ORGANIZATION3
or CSE 4352 IOT AND NETWORKING
CSE 4380INFORMATION SECURITY3
CSE 4381INFORMATION SECURITY II3
CSE 4382SECURE PROGRAMMING3
Total Hours12

*Any course substitution has to be approved beforehand by the certificate coordinator.

COURSE DESCRIPTIONS

CSE 4344 COMPUTER NETWORK ORGANIZATION

Design and analysis of computer networks. Emphasis on the OSI architecture but discusses other schemes (e.g., ARPAnet). Data link control, local networks, protocols/architectures, network access protocols, transport protocols, internetworking, and ISDN. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3320.

CSE 4352 IOT AND NETWORKING

Study of Ethernet stacks and layers, full implementation of an Ethernet stack and a basic low-latency, small footprint IoT protocol on bare metal embedded devices and embedded Linux systems. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3442.

CSE 4380 INFORMATION SECURITY

Hands-on introduction to the basics of security. Includes system security, buffer overflows, a high-level overview of cryptography, firewalls and intrusion detection/prevention, malware, penetration testing, forensics, and system administration. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3320.

CSE 4381 INFORMATION SECURITY II

Deeper study of the fundamentals of security, including symmetric key cryptography, public key cryptography, cryptographic protocols, malware design, network attacks and defenses, data security, privacy, and wireless security. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3320 and C or better in CSE 4344 (or concurrently).

CSE 4382 SECURE PROGRAMMING

This course is an introduction to methods of secure software design and development. Students will learn about the major security problems found in software today. Using this knowledge, they will work in teams to find these bugs in software, fix the bugs, and design software so that it has fewer security problems. Static analysis tools will be a core part of the class, but students will also be exposed to black box testing tools. Topics will include input validation, buffer overflow prevention, error handling, web application issues, and XML. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3320.

Undergraduate Certificate in Unmanned Vehicle Systems

Program Objective

The Certificate in UVS (Unmanned Vehicle Systems) is offered through the Computer Science and  Engineering Department and will educate undergraduate students in the knowledge and skills required for design, development and operation of UVS including UAS (Unmanned Aircraft Systems), UGS (Unmanned Ground Systems), and UMS (Unmanned Maritime Systems). The certificate program will emphasize the common aspects of UVS such as sensors, actuators, communications, and more importantly, decision-making capabilities (autonomy).  This program aims at the dual goal of providing the UVS industry with a knowledgeable, locally available workforce and developing career opportunities for its participants. To this end, the Certificate in UVS will be awarded concurrently with an undergraduate degree.    More information about this program is available on the College of Engineering website.

Admission Requirements

The certificate is open to all degree-seeking students.

Academic Requirements

Students must complete 15-16 hours of coursework as outlined below that include 6 hours of a core curriculum that is interdisciplinary and forms the basis of a common core in UVS Certificate and 9 hours of discipline specific curriculum. A combined GPA of 3.0 or better must be earned on all courses used to satisfy the certificate requirements.

For Computer Science majors:

Required classes
CSE 4378INTRODUCTION TO UNMANNED VEHICLE SYSTEMS3
CSE 4379UNMANNED VEHICLE SYSTEM DEVELOPMENT3
CSE 4308ARTIFICIAL INTELLIGENCE3
CSE 4360AUTONOMOUS ROBOT DESIGN AND PROGRAMMING3
3 credit hours from the following list3
FUNDAMENTALS OF MACHINE LEARNING
FUNDAMENTALS OF COMPUTER VISION
Total Hours15

*Any course substitution has to be approved beforehand by the certificate coordinator.

For Computer Engineering  majors:

Required classes
CSE 4378INTRODUCTION TO UNMANNED VEHICLE SYSTEMS3
CSE 4379UNMANNED VEHICLE SYSTEM DEVELOPMENT3
CSE 3313INTRODUCTION TO SIGNAL PROCESSING3
CSE 3442EMBEDDED SYSTEMS I4
3 credit hours from the following list3
EMBEDDED SYSTEMS II
AUTONOMOUS ROBOT DESIGN AND PROGRAMMING
ARTIFICIAL INTELLIGENCE
Total Hours16

*Any course substitution has to be approved beforehand by the certificate coordinator.

COURSE DESCRIPTIONS

CSE 4378 Introduction to Unmanned Vehicle Systems

Introduction to UVS (Unmanned Vehicle Systems) such as UAS (Unmanned Aircraft Systems), UGS (Unmanned Ground System) and UMS (Unmanned Maritime System), their history, missions, capabilities, types, configurations, subsystems, and the disciplines needed for UVS development and operation. UVS missions could include student competitions sponsored by various technical organizations. This course is team-taught by engineering faculty. Prerequisite: Admission to a professional engineering or science program.

CSE 4379 Unmanned Vehicle System Development

Introduction to the technologies needed to create an UVS (Unmanned Vehicle System). Integration of these technologies (embodied as a set of sensors, actuators, computing and mobility platform sub-systems) into a functioning UVS through teamwork. UVS could be designed to compete in a student competition sponsored by various technical organizations or to support a specific mission or function defined by the instructors. This course is team-taught by engineering faculty. Prerequisite: B or better in CSE 4378 and admission to the UVS certificate program.

CSE 4308 Artificial Intelligence

An introduction to the field of artificial intelligence studying basic techniques such as heuristic search, deduction, learning, problem solving, knowledge representation, uncertainty reasoning and symbolic programming languages such as LISP. Application areas may include intelligent agents, data mining, natural language, machine vision, planning and expert systems. Prerequisite: Admitted into an Engineering Professional Program. C or better in each of the following: CSE 3318 and (IE 3301 or MATH 3313).

CSE 4360 Autonomous Robot Design and Programming

An introduction to robotics and the design and programming of autonomous robot systems. Topics include basic kinematics, dynamics, and control, as well as sensors, knowledge representation, and programming techniques. Course work includes individual and group projects involving the building and programming of simulated and real robots. Prerequisite: Admitted into an Engineering Professional Program. C or better in each of the following: CSE 3318, CSE 3320 and CSE 3380 (or MATH 3330).

CSE 4309 Fundamentals of Machine Learning

This course offers an introduction to machine learning. Topics include naive Bayes classifiers, linear regression, linear classifiers, neural networks and backpropagation, kernel methods, decision trees, feature selection, clustering, and reinforcement learning. A strong programming background is assumed, as well as familiarity with linear algebra (vector and matrix operations), and knowledge of basic probability theory and statistics. Prerequisite: Admitted into an Engineering Professional Program. C or better in each of the following: CSE 3318, IE 3301 or MATH 3313, and CSE 3380 or MATH 3330.

CSE 4310 Fundamentals of Computer Vision

This course introduces students to basic concepts and techniques in computer vision. The topics covered include morphological operations, connected component analysis, image filters, edge detection, feature extraction, object detection, object recognition, tracking, gesture recognition, image formation and camera models, calibration, and stereo vision. A strong programming background is assumed, as well as familiarity with linear algebra (vector and matrix operations), and knowledge of basic probability theory and statistics. Prerequisite: Admitted into an Engineering Professional Program. C or better in each of the following: CSE 3318, IE 3301 or MATH 3313, and CSE 3380 or MATH 3330.

CSE 3313 Introduction to Signal Processing

Examines models for presentation and processing of digital signals. Sampling theorem, correlation and convolution, time and frequency analysis of linear systems, Fourier transform, Z-transform, design of digital filters structures for discrete time systems. Prerequisite: C or better in each of the following: CSE 3318 and either CSE 3380 or MATH 3330.

CSE 3442 – Embedded Systems I

Design of microcontroller-based systems, including microprocessor programming, component and system architectures, memory interfacing, asynchronous and synchronous serial interfaces, timer-based peripherals, analog to digital (A/D) and digital to analog (D/A) converters, and typical applications.  Prerequisites: C or better in each of the following: CSE 2312, CSE 2440 and CSE 2441.

CSE 4342 – Embedded Systems II

Advanced course in design of microcontroller-based systems. Emphasis is on the application of microcontrollers to real-time problems. Topics include the study of the differences in bare metal and embedded Linux implementations, developing applications including PID controllers, and system aspects such as bootloader design and watchdog supervision.  Prerequisites: C or better in each of the following: CSE 3323, CSE 3442, and CSE 3313.

Undergraduate Certificate in Embedded Systems

Program Objective

The Undergraduate Certificate in Embedded Systems is offered through the Computer Science and Engineering Department and will educate undergraduate students in the knowledge and skills required to design and test embedded systems, using microcontrollers, system-on-chip, and FPGA devices.  Topics include multi-threaded programming on bare-metal, custom real-time operating systems, and embedded Linux systems; implementation of IP stacks for computer networking; network and wireless protocol development for Internet of Things devices; design of real-time operating systems; implementation of RISC processors in FPGA devices; design of advanced digital logic systems; analysis and design of microprocessor systems; and control of systems with electromechanical actuators and sensors.  The Certificate in Embedded Systems will be awarded concurrently with an undergraduate degree.

This certificate is managed by:

  • Jason Losh, Program Coordinator
  • Linda Barasch, Undergraduate Advisor

Admission Requirements

The certificate is open to all degree-seeking students.

Academic Requirements

Students must complete 16 hours of coursework as outlined below.  A combined GPA of 3.0 or better must be earned on all courses used to satisfy the certificate requirements.

Course Requirements

The course requirements for the Embedded Systems certificate are:

CSE 3442EMBEDDED SYSTEMS I4
CSE 4342EMBEDDED SYSTEMS II3
and 3 of the following courses:9
DIGITAL LOGIC DESIGN II
IOT AND NETWORKING
REAL-TIME OPERATING SYSTEMS
ELECTROMECHANICAL SYSTEMS AND SENSORS
SYSTEM ON CHIP (SOC) DESIGN
RISC PROCESSOR DESIGN
WIRELESS COMMUNICATION SYSTEMS
Total Hours16

*Any course substitution has to be approved beforehand by the certificate coordinator.

Faculty

The UTA Faculty contributing to this certificate program are:

  • Jason Losh, Director of Undergraduate Computer Engineering Program
  • Bill Carroll

Other faculty members of CSE will be contributing to the certificate programs through the existing courses included in this certificate program.

Laboratory information can be found via cse.uta.edu under the Faculty Research heading.

Course Descriptions

CSE 3341 – Digital Logic Design II

Hierarchical organization, design, simulation, implementation, and testing of digital systems. Industrial standard computer-aided design tools including hardware description languages (HDLs), field-programmable gate arrays (FPGAs), and other prototyping hardware and software will be employed. Design of arithmetic and other algorithmic processes will be covered. A term project will be required. Prerequisite: C or better in CSE 2441.

CSE 3442 – Embedded Systems I

Design of microcontroller-based systems, including microprocessor programming, component and system architectures, memory interfacing, asynchronous and synchronous serial interfaces, timer-based peripherals, analog to digital (A/D) and digital to analog (D/A) converters, and typical applications.  Prerequisites: C or better in each of the following: CSE 2312, CSE 2440 and CSE 2441.

CSE 4342 – Embedded Systems II

Advanced course in design of microcontroller-based systems. Emphasis is on the application of microcontrollers to real-time problems. Topics include the study of the differences in bare metal and embedded Linux implementations, developing applications including PID controllers, and system aspects such as bootloader design and watchdog supervision.  Prerequisites: C or better in each of the following: CSE 3323, CSE 3442, and CSE 3313.

CSE 4352 – IoT and Networking

Study of protocol stacks and layers, implementation of an Ethernet protocol stack, and design of a basic low-latency, small footprint IoT protocol on bare metal embedded devices and embedded Linux systems.  Prerequisite: C or better in CSE 3442.

CSE 4354 – Real-time Operating Systems

Implementation of a real-time operating system with cooperative and preemption context switching, priority scheduling, semaphores, message queues, and inter-process communications on bare metal microcontrollers.  Prerequisite: C or better in CSE 3442.

CSE 4355 – Electromechanical Systems and Sensors

Applications of electronics and microcontrollers to the control of electromechanical systems. Topics include driving brushless motors (including stepper motors), brushed permanent magnet motors, and other mechanical actuators; the use of the sensors including IMU, LIDAR, RADAR, GPS, capacitive/inductive sensing, laser distance, thermocouples, strain, pressure, optical encoders, and Hall devices; and control applications.  Prerequisite: C or better in CSE 3323 and CSE 3442.

CSE 4356 – System on Chip (SoC) Design

Programming and implementation of FPGA-based system on chip solutions, including processor subsystems, FPGA fabric, processor to FPGA bridges, and device drivers.  Prerequisite: C or better in CSE 3442.

CSE 4372 – RISC Processor Design

Design of a RISC processor, based on RISC V and custom instruction set architectures with implementation on an FPGA target for test and verification. Prerequisite: C or better in CSE 3442.