CSC Undergraduate Electives
Click on the semester below to see the planned classes for that semester.
SPECIAL TOPICS: There is no limit to the number of special topic sections students may use to satisfy undergraduate degree requirements, as long as each section covers a different topic.
RESERVED SEATS: Some courses have seats that are reserved for Concentration students. This means that X number of seats are reserved for students currently enrolled in a concentration and Y number are available for CSC majors without a concentration. Once the number of unreserved seats is full, students may add themselves to the waitlist. If the waitlist is full, please keep checking back for an open seat on the waitlist. The number of reserved seats will be lowered throughout the enrollment period and students on the waitlist will be enrolled first. There are no set dates for when seats will be released, so the only way to be enrolled in a previously enrolled seat is to join the waitlist.
WAIT LISTS: All courses on the lists below have a waitlist. Students who are on the waitlist will be enrolled in an available, unreserved seat automatically if they meet the requisites. Students may not be enrolled in a time conflict or over 18 hours, so use the “swap to waitlist” feature when first enrolling in a class so that your enrollment may be processed without delay.
CREDIT-ONLY, CBE, TRANFER CREDIT, & STUDY ABROAD: For classes that are only offered as credit-only (S/U), they still can be used in the appropriate category in your degree audit. These courses will have to be manually moved using the degree audit shift request form. The CSC Department limits students to a maximum of 6 hours of CSC RE and 6 hours of ORE that do not affect the GPA (credit-only, credit by exam, study abroad, transfer credit, etc.). The University limits students to a maximum of 12 hours of S to be applied to their undergraduate degree.
COURSE DESCRIPTIONS: Course descriptions and up-to-date requisite information are available on https://webappprd.acs.ncsu.edu/php/coursecat/directory.php.
CSC COURSE LEARNING OUTCOMES: https://csc.ncsu.edu/academics/ugrad-courses/
Fall 2026 (Click Here)
Other Restricted Electives (ORE)
The table below includes classes that are only Other Restricted Electives.
| Course | Topic | Notes |
|---|---|---|
| CSC 291 – 001 | Competitive Problem Solving | 1 credit hour |
| CSC 291 – 002 + 201 | Introduction to Robotics | 3 credit hours (lecture + lab) |
| CSC 293 – 001 | TA Training | 1 credit hour |
| CSC 251 – 001 | Python Applications | 3 credit hours, pre-requisite of CSC 216, for CSC majors only. |
| CSC 297 | 001: Blockchain 002: Secure Thinking 1 | 1 credit hour each (credit-only), each topic can be taken only once. |
| CSC 299 – 001 | Mentored Research in CSC | 3 credit hours (credit-only) |
| E 298 – 002 and 003 + lab | Fundamentals of Applied AI for Engineering | 3 credit hours (lecture + lab) |
CSC 291 – 002: Introduction to Robotics
Pre-requisites: PY 205 and (CSC 111 or 113 or 116 or ECE 209)
Description: This course will introduce fundamental concepts in robotics that will allow students to further study many sub-fields of robotics. The course’s topics will include rigid-body motion, robot manipulator kinematics, trajectory generation, Lagrangian mechanics, basic control theory concepts, and object-oriented programming. Course projects and exercises will utilize a high-level programming language and modern tools and environments used in robotics. Lecture and lab are required.
Seats are reserved for CSC, ME, and EE majors.
- CSC majors may count this class as ORE Group A. This will eventually be part of the Robotics Track.
- MAE majors may count this class as a technical elective. Please email Mrs. Tran to have it moved in your degree audit.
- EE majors may count this class as a technical elective or as a concentration elective for the EE Controls and Robotics concentration. Please email Mrs. Gruber to have it moved in your degree audit.
CSC Restricted Electives (CSC RE)
- CSC 236, Computer Organization and Assembly Language for Computer Scientists: Some seats will be reserved for Cybersecurity concentration students.
- CSC 342, Applied Web-based Client-Server Computing
- CSC 366, Design & Analysis of Algorithms
- CSC 401, Data and Computer Communications Networks
- CSC 408, Software Product Management
- CSC 411, Introduction to Artificial Intelligence: Some seats will be reserved for the following groups of students: AI concentration, Game Development concentration, and CSC majors with a declared Cognitive Science minor.
- CSC 414 Foundations of Cryptography: Some seats will be reserved for AI concentration students.
- CSC 422, Automated Learning and Data Analysis: Some seats will be reserved for AI concentration students.
- CSC 461, Computer Graphics: Some seats will be reserved for Game Development concentration students.
- CSC 471, Modern Topics in Cybersecurity: Some seats will be reserved for Cybersecurity concentration students.
- CSC 472, Cybersecurity Practicum: Some seats will be reserved for Cybersecurity concentration students.
- CSC 481, Game Engine Foundations: Some seats will be reserved for Game Development concentration students.
- CSC 484, Building Game AI: Some seats will be reserved for AI and Game Development concentration students.
- CSC 490, Independent Study in Computer Science: Please review the instructions on: https://csc.ncsu.edu/academics/undergrad/undergraduate-research-or-independent-study/ for information on how to enroll in this class. Offered as a full semester class or a second eight-week class for 3 hours only.
- CSC 491, Special Topics (as listed below)
- CSC 499, Independent Research in Computer Science: Please review the instructions on: https://csc.ncsu.edu/academics/undergrad/undergraduate-research-or-independent-study/ for information on how to enroll in this class. Offered as a full semester class for 3 hours only.
Fall Special Topics
All special topics are offered for 3 credit-hours and must be taken for a letter grade if being used for any category except “free elective”.
CSC 491 – 004, Control Systems for Robotics
- Pre-requisites: PY 208, MA 242, and MA 305/405
- This class can be considered in the CSC AI RE slot in the degree audit for AI Concentration students.
- Description: Introduction to dynamics and control for robotic systems tailored for computer scientists. Concepts including ordinary differential equations, kinematics, and dynamics for common air and ground robotic systems will be introduced. Feedback control via classical methods (e.g., Nyquist, Bode), PID, and state-space and observer-based design will be explored. Emphasis on implementation, and simulation on an aerial multicopter robot will help students visualize and evaluate learning and control design performance.
CSC 491 – 005, Software Engineering and AI
- Pre-requisite: CSC 230
- Description: AI presents unique challenges and opportunities when applied to software engineering. Unlike other domains, SE involves evolving requirements, human-in-the-loop decisions, and complex socio-technical ecosystems, making the integration of AI both powerful and precarious. This course will explore AI methods for SE, such as explainable AI, classification and clustering, multi-objective optimization, semi-supervised learning (useful when labeled data is scarce), theorem proving and logical reasoning, and generative methods enable code suggestion, test generation, and documentation support.
CSC 491 – 008, Human- AI Interaction
- Pre-requisite: CSC 454/554.
- Description: This course introduces theories, methods, and design practices for creating effective interactions between humans and AI systems. Students will learn how to design, prototype, and evaluate interfaces where machine outputs are dynamic, adaptive, and probabilistic rather than static or deterministic. Topics include: human-centered design principles for AI systems, explainability and transparency, mental models of AI, prompt and interaction design, multimodal interaction, uncertainty communication, and human-AI collaboration. Students will engage in hands-on projects that develop methods for designing and evaluating AI-mediated systems across diverse domains. By the end of the course, students will be able to design interactive AI experiences, integrate models into user interfaces, apply human-centered evaluation methods, and critique the social and ethical impacts of AI-assisted tools.
CSC 491 – 010, Dev Ops
- Pre-requisite: CSC 326
- Description: Modern software development organizations require entire teams of DevOps to automate and maintain software engineering processes and infrastructure vital to the organization. In this course, you will gain practical exposure to the skills, tools, and knowledge needed in automating software engineering processes and infrastructure. Students will have the chance to build new or extend existing software engineering tools and design a DevOps pipeline.
CSC 491 – 011, Animal-Centered Computing
- Pre-requisite: CSC 316 .
- This class can be considered in the CSC AI RE slot in the degree audit for AI Concentration students.
- Description: Decades of advances in human-computer interaction have produced well understood principles governing the processes, form, and function of computing systems that human users interact with on a daily basis. But what happens when users are nonhuman animals? How do we produce technology that enables nonhuman animals to interact with and through computers? How do we design these systems when users have drastically different physical and cognitive capabilities? The burgeoning field of Animal-Centered Computing (ACC) is a highly multidisciplinary practice that seeks to answer exactly these types of questions. Advances in ACC draw upon ideas from ethics, interaction design, ergonomics, applied behavior analysis, Artificial Intelligence, analytics, electrical engineering and more. This special topics course will survey the history of technologies for nonhuman animals and the field of Animal-Computer Interaction (ACI). The course format will be seminar style with regular readings of research papers and group discussions. Graduate students will also conduct a semester-long project of their own design. There may be several field trips around the triangle area, so access to transportation is strongly encouraged.
ECE-taught classes:
Classes that are taught by the ECE department will require CSC 230 and CSC 316 to usually be completed, but there may be other requirements. More information can be found here: https://my.ece.ncsu.edu/undergrad/academic-information/special-topics/
- CSC 491 – 001: Introduction to Image Processing and Computer Vision
- CSC 491 – 006: Perf/Sec Adv Microarchitechure
Fall 2026 list last updated on 3/2/2026.
Spring 2027 (Click Here)
Spring 2027 list last updated on 1/27/2026.
Other Restricted Electives (ORE)
The table below includes classes that are only Other Restricted Electives Group A (or as free electives).
| Course | Topic | Notes |
|---|---|---|
| CSC 251 – 001 | Python Applications | |
| CSC 291 | 001: Competitive Prblm Solving | 1 credit hour (letter grade) |
| CSC 293 – 001 | TA Training | 1 credit hour |
| CSC 281 – 001 | Interactive Game Design | Can alternatively be used as a Games Restricted Elective or IDP GEP. |
| CSC 297 | 001: TBD 002: TBD 003: TBD | 1 credit hour each (credit-only). Each topic can be taken only once. |
| CSC 298 – 001 | Intro to CS Research Methods | 3 credit hours (letter grade) |
| CSC 299 – 001 | Mentored Research in CSC | 3 credit hours (credit-only) |
| CSC 428** | Intr Numer Anly II** | Offered by the MA dept.** |
| DSA 200-level | Various | 1 credit hour (letter grade) |
| DSA 400/500-level** | Various | 1 credit hour (letter grade) |
| E 298 – 002 and 003 | Problem-Solving with Applied AI for Engineering | 3 credit hours (letter grade). Can alternatively be used as an AI RE. |
**Course can be used in Group A or B.
CSC Restricted Electives (CSC RE)
Spring 2027 list last updated on 1/27/2026.
- CSC 236, Computer Organization and Assembly Language for Computer Scientists: Some seats will be reserved for Cybersecurity concentration students.
- CSC 342, Applied Web-based Client-Server Computing
- CSC 401, Data and Computer Communications Networks
- CSC 402, Networking Lab
- CSC 404, Software Testing
- CSC 405, Computer Security: Some seats will be reserved for CySec concentration students.
- CSC 408, Software Product Management
- CSC 411, Introduction to Artificial Intelligence: Some seats will be reserved for the following groups of students: AI concentration, Game Development concentration, and CSC majors with a declared Cognitive Science minor.
- CSC 413, Software Engineering for Gurus
- CSC 415, Software Security: Some seats will be reserved for Cybersecurity concentration students.
- CSC 416, Intro Combinatorics: This course is offered by the math department and will be cross-listed with MA 416.
- CSC 417, Theory of Programming Languages
- CSC 418, Software Analysis and Design
- CSC 421, Generative AI for Software Engineering
- CSC 422, Automated Learning and Data Analysis: Some seats will be reserved for AI concentration students.
- CSC 429, Trustworthy and Efficient Deep Learning
- CSC 434, Human Centered Security
- CSC 440, Database Management Systems: Some seats will be reserved for AI concentration students.
- CSC 445, Software System Anatomy
- CSC 453, Intro IoT Systems
- CSC 454, Human-Computer Interaction: Some seats will be reserved for Game Development concentration students.
- CSC 455, Social Computing
- CSC 462, Advanced Computer Graphics Projects
- CSC 472, Cybersecurity Projects – Some seats will be reserved for Cybersecurity concentration students.
- CSC 482, Advanced Computer Game Projects – Some seats will be reserved for Game Development concentration students.
- CSC 486, Computational Visual Narrative – Some seats will be reserved for Game Development concentration students.
- CSC 490, Independent Study in Computer Science: Please review the instructions on: https://csc.ncsu.edu/academics/undergrad/undergraduate-research-or-independent-study/ for information on how to enroll in this class. Offered as a full semester class or a second eight-week class for 3 hours only.
- CSC 491, Special Topics (as listed below)
- CSC 499, Independent Research in Computer Science: Please review the instructions on: https://csc.ncsu.edu/academics/undergrad/undergraduate-research-or-independent-study/ for information on how to enroll in this class. Offered as a full semester class for 3 hours only.
Spring Special Topics
Spring 2027 list last updated on 1/27/2026.
All special topics are offered for 3 credit-hours and must be taken for a letter grade if being used for any category except “free elective”.
CSC 491 – 001, Self-Driving Cars:
- Pre-requisite: CSC 316. MA 305 and ST 370 are recommended.
- Recommended: programming competence in Python in Linux environment
- This class can be considered in the CSC AI RE slot in the degree audit for AI Concentration students.
- Description: This course explores the theory and practice of building self-driving cars using advanced computing technologies. It aims to provide students with opportunities to i) understand the introductory theory that enables autonomous driving and ii) gain extensive hands-on experience with various software and hardware tools. Topics include robotics software programming, sensor fusion, control theory, and introductory perception, planning, and navigation techniques using machine learning and computer vision. Over the course of the semester, students work in small groups to design and build software systems for miniaturized self-driving cars that autonomously navigate an indoor track resembling real road environments. Students demonstrate their learned skills through the final driving showcase.
CSC 491 – 002, Software System Anatomy:
- Pre-requisite: CSC 326. Co-requisite: CSC 246.
- Description: Modern software systems exhibit complex dynamic behavior resulting from the interactions between concurrently executing components. Some systems are designed primarily for one of resilience, or performance, or scalability. Application components have non-trivial interactions with operating systems, hardware, and networks — each of which is a complex dynamic system on its own. To understand modern systems, we will approach them much as one would analyze complex organisms. That is, we will examine their components and interactions, beginning with relatively simple systems built in the 1960’s for the Apollo moon landing. We will progress through the invention of Unix in the 1970’s; the proliferation of client/server systems in the 1980’s; the Web in the 1990’s; canonical “three tier” applications of the 2000’s; and finally the globe-spanning architectures run by large tech companies today. Over time, computer hardware, operating systems, and networks grew more sophisticated alongside the applications that were built on top of them. We will speculate about where ever-increasing system complexity may lead.
CSC 491 – 004, AI-powered Robotics:
- Pre-requisite: [MA 305/405] and [ST 370/371]
- This course will use Python programming. Machine Learning knowledge is recommended.
- This class can be considered in the CSC AI RE slot in the degree audit for AI Concentration students.
- Description: This course is intended to serve as an advanced overview of robotics from the perspective of computer science and artificial intelligence. The course discusses the complete autonomy loop, including perception, cognition, and action. This course covers the theories, algorithms, and computational implementations related to these topics, with focus on open discussions for how to do research to go beyond the state of the art. Students will gain hands-on experience in implementing and extending such algorithms using simulations and real robots (depends on the resource availability).
CSC 491 – 007, Cyber-Physical Systems for Biometrics:
- Pre-requisite: ECE 309 or CSC 316
- Description: Given the increasing advances of mobile and wearable technologies in people’s daily life, many biometrics and authentication techniques are being explored and developed (e.g., fingerprint lock on smartphones). This course introduces students to the theory and practice of biometric (e.g., face and voice) authentication systems. The course will cover the fundamental principles of biometrics, including physiological and behavioral characteristics (what & why), AI & Machine Learning approaches used to extract, represent, and match these characteristics (how), and system architecture (integration). Students will also learn about the newest approaches to biometrics and how they fit in its technological landscape, as well as the ethical and legal considerations surrounding the use of biometrics. The course will contain a project where students will group together to implement an authentication system prototype.
CSC 491 – 011, Human Centered Security:
- Pre-requisite: ECE 309 or CSC 316
- Strongly recommended: Some programming skill are recommended for both the topic area of usable security for developers (because this will involve programming concepts like libraries and commits) and when writing data analysis and visualization scripts. CSC 474 will be helpful with understanding the research context.
- This class can be considered in the CSC CySec RE slot in the degree audit for Cybersecurity Concentration students.
- Description: Human-Centered Security is a computer security course for graduate and advanced undergraduate students introducing the concepts and methods of human-centered cyber security research. Topics include the design, planning, execution, and statistical analysis of research studies.
CSC 491 – 012, Ubiquitous Computing & Mobile Health:
- Pre-requisite: ECE 309 or CSC 316
- Description: This course introduces how wearable and mobile systems sensors can be used to gather data relevant to understand health, how the data can be analyzed with advanced signal processing and machine learning, and the evaluation performance of these systems in terms of diagnostics and disease progression detection. The course will also touch on how to solve privacy concerns in building mobile health systems in the real world.
CSC 491 – 014, How to be a Software Engineering Guru:
- Pre-requisite: ECE 309 or CSC 316
- Description: Classes teach you all about advanced topics within CS, from operating systems to machine learning, but there’s one missed subject: proficiency with their tools. Our motto: “be quiet or I will replace you with one tiny shell script”.
ECE-taught classes:
Classes that are taught by the ECE department will require CSC 230 and CSC 316 to usually be completed, but there may be other requirements. More information can be found here: https://my.ece.ncsu.edu/undergrad/academic-information/special-topics/
Summer 2026 (Click Here)
Summer 2026 list last updated on 7/16/2025.
- CSC 299 Mentored Research in Computer Science: This is the RESEARCH section for first and second year students who are not yet prepared for CSC 490 or 499. Please review the instructions on: https://csc.ncsu.edu/academics/undergrad/undergraduate-research-or-independent-study/ for information on how to enroll in this class. This can only be used in the “Other Restricted Electives Group A” or “Free Electives” categories for CSC majors.
- CSC 401 Data and Computer Communications Networks: Offered in-person during Summer I (first 5 weeks) only.
- CSC 498 Independent Study in Computer Science: Offered as Summer I (5-week), Summer I (10-week), and Summer II (5-week) for 3 hours only. Please review the instructions on: https://csc.ncsu.edu/academics/undergrad/undergraduate-research-or-independent-study/ for information on how to enroll in this class.
- CSC 499 Independent Research in Computer Science: Offered as Summer I (5-week), Summer I (10-week), and Summer II (5-week) for 3 hours only. Please review the instructions on: https://csc.ncsu.edu/academics/undergrad/undergraduate-research-or-independent-study/ for information on how to enroll in this class.
Concentration Approved Special Topics (Click Here)
The below lists include topics approved as concentration restricted electives. Students who take these sections must fill out the Degree Audit Shift Request form in order to have it count correctly in the degree audit.
If the course is offered as CSC 491, that is appropriate for undergraduate students. If it is listed as CSC 591, it may only be taken by ABM or CSC Honors students. Undergraduate students are not permitted to take CSC 700-level courses.
CSC AI Restricted Electives (CSC AI RE)
- Accelerating Deep Learning
- Advanced Robotics
- Animal-Centered Computing (approved through Spring 2026)
- AI for Software Security
- AI of Things
- AI-powered Robotics
- Applied Artificial Intelligence
- Control Systems for Robotics (approved through Spring 2026)
- Cognitive Systems
- Deep Learning Beyond Accuracy
- EDAN 20: Study Abroad at Lund University
- Efficient Deep Learning
- Generative AI for Computer Systems
- Generative AI for Software Engineering
- Introduction to Responsible Machine Learning
- Introduction to Robot Motion Planning (now CSC 441)
- Introduction to Trustworthy and Responsible Machine Learning
- Machine Learning for User-Adaptive Systems
- Machine Learning with Graphs
- Neural Networks
- Natural Language Processing
- Real-time AI and Machine Learning Systems
- Self-Driving Cars
- Software Engineering & AI
- Trustworthy and Efficient Deep Learning
AI Restricted Electives (AI RE)
- DSA 405, 406, 412, 435
- DSA special topics:
- Exploring Digital Innovation in AI and Cybersecurity
- Dive into the World of Climate Data
- GenAI for Science: Using LLMs with your own data
- Data & AI Applications in Designing Communications
- AI for Data Science: A No-Code Introduction
- E 298 special topics:
- Fundamentals of Applied AI for Engineering
- Problem-Solving with Applied AI
- MA 326
- MAE 495 Special Topics:
- Applied Machine Learning
- Scientific Machine Learning
CSC Cybersecurity Restricted Electives (CSC CySec RE)
- Cellular and Telephone Network Security
- Cryptographic Engineering and Hardware Security
- Human Centered Security
- LLMs for Security
CSC 297 Substitutes
- DSA Special topics:
- Cybersecurity in the Age of AI
- Data Science for Cybersecurity (now DSA 235)
- Exploring Digital Innovation in AI and Cybersecurity
CSC Games Restricted Electives (CSC GRE)
- Cognitive Systems
- Computational Applied Logic
- Computational Visual Narrative
- Extended Reality and 3D Interaction
- Fundamentals of User Experience in Video Games
- Natural Language Processing
Robotics Track Electives
- Advanced Real-Time Intelligent CPS
- Advanced Robotics
- Control Systems for Robotics
- Extended Reality and 3D Interaction
Special Topics list last updated on 2/4/2026.