Special Topics
CSC 191
The Department offers Computer Science courses under Special Topics that are not covered in regular courses or that give special practice in skills used in other courses. These courses are not to be counted toward the bachelor of science in Computer Science. May be repeated for up to six hours if the topic changes.
Students will learn the fundamentals of data visualization software, its applications and limitations, and potential security risks. Starting from data cleaning to the ETL (extract, transform, load) procedure to data visualization, students will learn the complete pipeline for conducting business intelligence (BI) and producing polished reports and dashboards. Additionally, students will gain exposure to various BI software tools, such as Power BI, Tableau, and Google Data Studio. While students learn the value of these tools, emphasis on their limitations and differences will also be taught. There will be discussions on best practices for maintaining secure applications, as well as on the ethics of data visualization. The main assignment for the course will be a final project in which students build a dashboard from scratch by completing each step of the pipeline, and culminate in a presentation of their final BI solution. (3 credit hours). P— POI; Recommended: CSC 102 or CSC 111
New technologies are on the horizon and quickly becoming part of our lives. Generative AI can write text, produce pictures, and even generate code with a simple prompt. Deepfakes can create increasingly convincing fake videos. Brain-computer interfaces promise new possibilities of thought and perception, and the metaverse could fabricate new realities. What can we do to ensure that these technologies emerge in ways that benefit humanity? Students will develop an ethical toolkit to diagnose the ethical implications of emerging technologies and seek ways to craft a more ethical future. Our ultimate goal will be to chart a path for several technologies that preserves their promise while avoiding their potential pitfalls.
An introduction to the foundations of interconnected systems and parallel computing. Students will have the opportunity to gain hands-on experience using WFU’s own supercomputer, DEAC. Topics covered in the course will be the architecture of supercomputing clusters, the SLURM job scheduler, data management, parallel computing using OpenMPI and OpenMP with Python, and GPU computing using NVIDIA’s CUDA platform. Topics are approached at a level that is accessible to students across multiple disciplines. Students will gain practical hands-on experience with each topic and will learn how to think in parallel.
Students enrolled in this course are NOT expected to have any prior programming experience. This course does not satisfy any divisional requirements, but is recommended for any student interested in performing research at Wake Forest University using DEAC.
Introduction to the basic concepts of programming and problem solving in MATLAB. Students should gain the skills to write moderately complex MATLAB programs to solve mathematical, scientific, and/or engineering problems.
Study of command line execution in the Linux operating system, use of system tools, and shell programming. Appropriate background material on the C programming language will be covered for students without previous exposure. P— CSC 111 and POI; Recommended: CSC 112
CSC 391
The Department offers Computer Science courses under Special Topics that are not studied in regular courses or which further examine topics covered in regular courses. May be repeated if the topic changes.
This course is a survey of algorithms and methods for bioinformatics approached from a computational viewpoint. Topics covered include: Sequence Comparison (dynamic programming), Motif Finding (combinatorial algorithms stochastic heuristic search algorithms, suffix trees), Gene Prediction (Hidden Markov Models), RNA structure prediction (stochastic context free grammar, dynamic programming), Gene Network/Pathway Analysis (graph algorithms). No prior biology background is required.
This course is an introduction to the topic of computer vision. You will explore the world of visual data analysis and the fundamental principles enabling computers to make sense of images and videos. You will gain insight into applications such as facial recognition, object detection for autonomous vehicles and remote sensing.
Examination of major cloud computing providers, such as Amazon, Google, and Microsoft. Hands-on examples and exercises cover virtual machines, containers, and serverless technologies. Students will build and leverage cloud native applications and services using Amazon Web Services and Google Cloud Platform.
P— any 200-level CSC course and POI
How do we ensure that computing technologies align with human values? This course contends that ethical computing stems from the moral stewardship of individual computer scientists. Through personal reflection, in-class discussion, critical analysis, and engagement with real-world case studies, this course aims to equip students with a toolkit for navigating ethical issues that can arise in the development and deployment of computing technologies. By interweaving theory and practice, the course prompts students to develop greater awareness of the social impacts of their work, cultivate virtues of character that are both personally relevant and aligned with the computing profession, and become better communicators. As they progress, students will be encouraged to think deeply about their role, not just as competent technicians, but as ethical leaders in a rapidly evolving digital landscape. P— any 200-level CSC course and POI
An introduction to Natural Language Processing (NLP), which studies computing systems that can process, understand, or communicate in human language. The course will discuss major NLP tasks, algorithms for solving them, and methods for evaluating their performance. The primary focus will be on statistical and neural-network learning algorithms, and students will work individually and in groups, to implement some of these algorithms or experiment with existing implementations. The motivating themes for this year’s edition of the course are leadership and character in computer science, and students will learn how to use NLP to identify their own and public perception about them, analyze their trends, and detect tensions, in different collections of written texts.
P— CSC 201, CSC 250, and POI
The aim of this course is to introduce students to the realm of reinforcement learning, a dynamic research sub-domain within machine learning. The focus of reinforcement learning is on constructing algorithms that can learn to anticipate and make decisions within stochastic environments, based on previous interactions. The spectrum of applications for reinforcement learning is wide-ranging, spanning from fundamental control issues like optimizing power plants and managing dynamic systems, to domains like gaming, inventory management, and various other fields. Importantly, reinforcement learning has also yielded highly compelling models for understanding how animals and humans learn. Throughout this course, we will delve into both the theoretical properties and practical use cases of reinforcement learning. Our primary reference will be the second edition of the classic textbook by Sutton Barto (accessible online for free or through MIT Press), complemented by supplementary readings and materials as required.
Undergraduate Resources
Course Information
Special Programs
CS Degree Programs
The Department of Computer Science offers the following programs for undergraduate and graduate students: