The following undergraduate Special Topics courses will be offered in the Spring 2021 :
CSC 5930-001: Quantum Computing
Th 2:20 - 5:05pm Kristin Obermyer
Quantum computing is coming – will you be ready?
This course will provide a foundation in quantum computing through hands-on exercises. We’ll learn a bit of physics and math that underlie the strange and surprising world of qubits (quantum bits), entanglement and superposition. Quantum algorithms that rely on these core concepts will be explored and implemented using two different approaches from Microsoft (QDK/Q#) and IBM (Qiskit).
We’ll use what you already know about classical computers (i.e., the ones we’re all using today) as a bridge to understanding how quantum computers work. We’ll see what NISQ (Noisy Intermediate-Scale Quantum) computers can do in the near-term, and we’ll look ahead to the exciting applications of fault-tolerant quantum computers in the future. We’ll analyze Google’s 2019 claim of reaching “quantum supremacy.” If you’re curious about quantum computing, this practical approach will help you be prepared to join the quantum workforce and to pursue new opportunities in this rapidly evolving field.
Prerequisites: CSC 1052 and CSC 1300
CSC 5930-002 TOP: Applied Machine Learning
T-Th 11:00- 12:25 Kathleen Malone
This course introduces students to machine learning through projects that demonstrate how machine learning algorithms are deployed in a diverse range of areas from stock market trading to robotics. Projects will implement decision trees, Q-learners, and other widely used algorithms in Python. The course also covers issues faced when learning from big data like data biases, overfitting, and causation vs correlation.
Prerequisites: CSC 1052 and CSC 1300
The following undergraduate Special Topics courses will be offered in the Fall of 2020:
CSC 5930-001: Software Studio
T - Th 1:00 - 2:15pm Professor Kristin Obermyer
CSC 5930-002: Software Studio
T - Th 2:30 - 3:45pm Professor Kristin Obermyer
Prerequisite: CSC 1052 or ECE 2620
This hands-on course is for students who like to be elbow-deep in code! Through targeted lectures, expert guidance and a studio-like environment, we will explore the art and science of creating reliable and maintainable code. Come discover this unique opportunity to acquire and refine skills used daily by professional software engineers.
Topics will include:
- test-driven development
- distributed version control
- continuous integration
- code coverage
- code quality metrics
- cultivating an expressive coding style
- professional tools
- code reviews
- software craftsmanship
- defensive programming
- risk-conscious maintenance
- pair programming
- software experimentation and myth-busting
CSC 5930-003: Introduction to Data Science
W 3:00 - 5:45pm Dr. Lillian Cassel
Data Science is an inherently interdisciplinary subject, requiring components of computer science, statistics, and some domain to provide the data and the problems to solve. In this course, we focus on the computer science components of data science. We will use the Python programming language and libraries that support managing datasets, libraries such as pandas, numpy, and scikit-learn for machine learning. We will work with a variety of large datasets.
Topics will include data cleaning, data wrangling (reorganizing datasets), visualization, time series, machine learning fundamentals. Students will select a project to complete during the semester to exercise a good collection of these elements. The course will be graded based on frequent quizzes, weekly programming assignments, and the final project.
CSC 5930-004: Parallel Programming - The Road to High Performance Computing
TTh 10:00 - 11:15am Dr. Michael Robson
Prerequisite: CSC 2400 or ECE 2402
This course will cover both theoretical and, especially, practical models of parallel computing and their application; topics will include shared memory (e.g. OpenMP), distributed (e.g. MPI), and GPU (e.g. CUDA) programming. We will review the design of various modern parallel machines and architectures in order to better understand the current parallel computing environment. We also explore measures of parallel performance including speedup and scalability in order to measure the impact of our work and semester project.
New topics covered in this course this semester include reconfigurable hardware (e.g. FPGAs), Clouds, (e.g. AWS) and Containers (e.g. Docker) all in the context of parallel programming. This is a hands-on project oriented course where we will learn by doing.