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.