Special Topics Courses

Special topics courses provide an opportunity for in-depth study of topics not offered elsewhere and of topics of current significance.  

  • CIS4930 for undergraduate students
  • CIS6930 for graduate students

Brief descriptions and expected prerequisites can be found below.

Spring 2026

CIS 4930 Competitive Programming

Instructor: Zhang

Prerequisites/Co-requisites: COP 3530 Data Structures and Algorithm with a minimum grade of B

Description: Introducing techniques for attacking and solving challenging computational problems. Topics including search, divide and conquer, dynamic programming, graph, string processing, and computational geometry\

CIS 4930: Fullstack IoT

Expected background: Course Prerequisite: COP3503 Prog. Fundamentals 2

Description: The Internet of Things is driving change in our society in many areas, such as healthcare, agriculture, environmental monitoring, and natural resource management. This course will introduce students to the concepts involved in creating an end-to-end IoT system. We will explore trade-offs and challenges at every level of the IoT stack, including devices, communication, web development, and ML Cloud integration. Students will gain hands-on experience with simulation and physical devices.

CIS 4930 Internet Programming

Instructor: Ritzhaupt

Expected background: Completion of COP 3503 with a passing grade or instructor permission.

Description: Course topics focus on software development and problem-solving applied to real-world problems with solutions designed and implemented in various languages. Topics include operating system concepts (e.g., Linux), mark-up languages (e.g., HTML), style sheets (e.g., CSS), client-side scripting (e.g., JavaScript), software libraries (e.g., jQuery), server side-scripting (e.g., PHP), relational databases (e.g., MySQL), web services and application programmer interfaces (e.g., JSON), software diagrams (e.g., ERDs), agile development principles (e.g., SCRUM), and other related technologies (e.g., regular expressions) used in full-stack web development. Prior programming experience is assumed and required. Students will extend course topics via programming assignments, concept quizzes, and a culminating web application group project extending across the duration of the semester.

CIS 4930 Intro to Deep Learning (UFO)

Instructor: Zhe Jiang

Description: With the wide availability of huge amount data being collected in multiple sectors, our society is transitioning from a data poor era to a data rich era. An imminent need exists to turn such data into useful information and knowledge. Data science is a field across multiple disciplines such as computer science, statistics, and business analytics that studies how to automatically extract useful patterns and make predictions from a large amount of data. The objective of the course is to introduce fundamental concepts & techniques in data science. The course will primarily focus on the data science foundations and the advantages and disadvantages of various methods for different data characteristics.

Topics to cover include data preprocessing, data exploration, classification/prediction, clustering, deep learning, etc. There will also be invited speakers on various data science applications. The specific topics are subject to adjustments throughout the semester by the instructor.

Expectations and Goals: The course is suitable for undergraduate students with solid statistics knowledge and Python programming skills, who are strongly interested in learning deep learning. The goal is to learn how various deep learning techniques work and practice the techniques in lab programming assignments.

CIS 4930/6930 Internet Storage Systems

Instructor: Kavalan

Description: Design and analysis of storage systems in the Internet from application’s point of view. Major effort is devoted on application natures, and their impact on high-level protocols at the application and transport layer.

CIS 4930/6930 Introduction to Virtual Reality

Instructor: Alexandre Gomes de Siqueira

Expected background: None

Description: This course explores the theory and practice necessary to develop effective immersive virtual environments as a medium to solve real-world problems and convey impactful messages. It discusses techniques for achieving real-time, dynamic generation of synthetic audio, visual, and haptic stimuli. It includes hands-on experience with head-mounted displays and other VR technologies. By the end of the course, as a final project, students will have designed and built a fully functional virtual environment.

CIS 6930 Computer Engineering Machine Learning and Deep Neural Networks

Instructor: Jingwei Sun

Prerequisite: Students are expected to have the necessary object-oriented programming experience (e.g., C++, Python) and be familiar with linear algebra and computer architecture fundamentals prior to taking this course.

Description: This course explores a range of computer engineering approaches used in the development of machine learning and deep neural network models. Emphasis is placed on strategies for enhancing training and inference performance, including improvements in model accuracy, size, and runtime. Students will examine and apply techniques widely studied in academia and employed in industry. Hands-on programming exercises will be conducted with extensive use of the PyTorch framework.

Objectives:

This course aims to improve your ability to:

  1. Comprehend the mechanisms, applications, and limitations of techniques commonly used for training and inference in machine learning and deep neural networks.
  2. Formulate hypotheses and design experiments that employ these techniques.
  3. Analyze experimental results—both from the literature and your own work—and draw conclusions supported (or not supported) by the data.
  4. Synthesize and communicate findings through clear oral explanations, figures/graphs, captions, and written result narratives.
  5. Apply sound engineering practices to develop novel ML algorithms and deep neural network models.
  6. Propose new engineering approaches to improve training and inference performance.

CIS 6930: Introduction to Neural Network Verification

Description: Why is neural network verification? Deep learning (DL) models are crucial in solving a myriad of real-world challenges, including image classification, natural language processing, and robotics. However, it is imperative to acknowledge that these models are vulnerable to adversarial attacks, where even minor changes in input can result in unexpected outputs. This vulnerability underscores the necessity of verifying learning-enabled systems (LES) built on DL technology, particularly in safety-critical domains such as autonomous vehicles and cancer diagnosis. Recent years have seen significant research efforts focused on overcoming the challenges associated with verifying deep neural networks and ensuring the reliability of neural network control systems.

CIS 6930 Special Topics: Data Engineering

Instructor: Christan Grant

Description: Data are the fundamental units in Artificial Intelligence (AI) and Machine Learning (ML) systems. Effectively harnessing this data is the responsibility of software engineers and data scientists. In this course, we will survey a landscape of AI/ML applications to understand how data flows through the systems. We will look at the engineer’s responsibilities for developing performant systems ethically and responsibly. Students will learn how to design, build, and evaluate data pipelines. We will cover the theoretical underpinnings of fairness and bias throughout data systems. Students will produce a comprehensive project using systems that integrate best practices.

Topics include:

  1. Data and data types (Image, Visual, Logs)
  2. Cleaning/Labeling Data
  3. Crowdsourcing
  4. Prompt Engineering
  5. Benchmarks, Metrics, Evaluation
  6. Continuous Integration and Testing
  7. Ethics and Fairness
  8. Visualizing Data
  9. Large Language Models