Tentatively Planned Program Electives for 2021-2022
Spring 2022
CS4920 Information Security
- Majors: CS and SE (required for CE)
- Prereq: CE2801 or CS2711 or EE2905 or EE2931
- Structure: 3-0-3
- Instructors: Rothe, Vieau
This course provides a survey of computer security, consisting of the business case for security, principles of security, classes of vulnerabilities (e.g., buffer overrun), and the principles of cryptography. Cryptography topics are covered in depth, including secret and public key methods, stream ciphers, and related tools and standards such as Kerberos and PGP.
CS4981 GPU Programming
- Majors: CE, CS, and SE
- Prereq: CS2040 or CS3210
- Structure: 2-2-3
- Instructor: Berisha
This course provides an introduction to GPU programming. Topics include parallel programming paradigms, the CUDA programming language, profiling of CUDA C++/C code, optimization strategies, GPU libraries, and application of GPU acceleration. Students will implement linear algebra operations, image processing algorithms, and compare their implementations with Nvidia libraries.
CS4981 Robotics
- Majors: CS, and SE
- Prereq: CS3851
- Structure: 2-2-3
- Instructor: Velez
TODO
CS4981 Competitive Programming
- Majors: CE, CS, and SE
- Prereq: CS2852
- Structure: 2-2-3
- Instructor: Lembke
This course provides an exploration of algorithms and data structure with a focus on their use solving problems presented in programming competitions. A brief introduction to algorithm runtime and space complexity analysis will be given in the context of constraints presented by problems in a competitive programming environment. The course will then present how competitive programming problems can be categorized and solved by recognizing the appropriate algorithm and data structure to use. Lab sessions will consist of practice in solving problems along with writing new problems.
CS4981 Deep Learning in Signal Processing
- Majors: CE, CS, and SE
- Prereq: MA383 and (CS2040 or CS3210)
- Structure: 2-2-3
- Instructor: Durant
This elective course provides an overview of deep learning methods and models as used in digital signal processing (DSP), including key DSP concepts that appear in and adjacent to such models in both real-time and off-line applications. Key topics include training pipelines, convolutional layers of various dimensions used on both time series and time-frequency representations of data, common network architectures, mitigation of overfitting, error metrics, and performance evaluation. Topics of student interest will be addressed by special lecture topics and course projects.