Skip to main content

CSC Undergraduate Restricted Electives

These are the planned classes for each semester. The CSC Department may update this list at any time. The items listed in MyPack's Enrollment Wizard will be the planned final offerings by the department, and may differ from this list.

There is no limit to the number of CSC 495 sections students may use to satisfy degree requirements, as long as each section covers a different topic.

Click on the semester below to see the planned classes for that semester. Course descriptions and up-to-date requisite information are available on https://webappprd.acs.ncsu.edu/php/coursecat/directory.php and also linked below.

A note about 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 lowered, so the best chance of becoming enrolled is to join the waitlist.

A note about waitlists: 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 in the enrollment wizard so your enrollment may be processed without delay.

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 498/499. Please review the instructions on: https://www.csc.ncsu.edu/academics/undergrad/research.php 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: Please review the instructions on: https://www.csc.ncsu.edu/academics/undergrad/research.php for information on how to enroll in this class. Offered as Summer I (5-week), Summer I (10-week), and Summer II (5-week) for 3 hours only.

CSC 499 Independent Research in Computer Science: Please review the instructions on: https://www.csc.ncsu.edu/academics/undergrad/research.php for information on how to enroll in this class. Offered as Summer I (5-week), Summer I (10-week), and Summer II (5-week) for 3 hours only.

Summer 2024 list last updated on 3/11/2024.

CSC 236 Computer Organization and Assembly Language for Computer Scientists: Some seats will be reserved for Cybersecurity concentration students.

CSC 295 – 001, Programming Competition: Contact Dr. Sturgill (and copy Ms. Marini) for more information about how to become enrolled. This course can only be used in the “Other Restricted Electives Group A” or “Free Electives” categories for CSC majors and it is only offered as 1 credit hour.

CSC 295 – 002, Python Applications: An introductory course in Python for experienced programmers exploring both structured and object-oriented programming approaches. Python fundamentals such as lists, tuples, strings, dictionaries, functions, and file I/O will be covered. Packages such as Matplotlib, NumPy, pandas, and pytest will be utilized with an emphasis on data science applications such as modeling, data manipulation, visualization and machine learning. This course is for CSC majors only and requires a grade of C or higher in CSC 216. This course can only be used in the “Other Restricted Electives Group A” or “Free Electives” categories for CSC majors and it is only offered as 3 credit hours.

CSC 297, Cybersecurity Topics: 2 – 3 sections of different topics will be offered each semester. These courses can only be used in the “Other Restricted Electives Group A” or “Free Electives” categories for CSC majors and they are only offered as 1 credit hour each. Students in the Cybersecurity concentration must take three different topics for graduation requirements.

Section 004, Trustworthy AI: The “Trustworthy AI” course provides an in-depth exploration of artificial intelligence (AI), focusing on its core components, data management, machine learning, and application development, all framed within the context of ethical standards and cybersecurity. Students will engage with the curriculum through interactive lectures, real-world examples, and hands-on projects to understand AI’s profound effects on society, employment, and technology, with a particular emphasis on cultivating trust, creativity, and responsible use. The course is designed to promote innovative thinking by incorporating GenAI tools aiming to create a synergistic relationship between human emotional intelligence and AI’s analytical prowess, ensuring the development of trustworthy AI systems (Textbook: Think Artificial Intelligence, Lecturer: Jerry Cuomo).

CSC 342 Applied Web-based Client-Server Computing

CSC 401 Data and Computer Communications Networks

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 412 Compiler Construction

CSC 414 Foundations of Cryptography: Some seats will be reserved for AI concentration students.

CSC 417 Theory of Programming Languages

CSC 422 Automated Learning and Data Analysis: Some seats will be reserved for AI concentration students.

CSC 427 Introduction to Numerical Analysis I: This course is offered by the MA department. This course can only be used in the “Other Restricted Electives Group A or B” or “Free Electives” categories for CSC majors.

CSC 440 Database Management Systems: Some seats will be reserved for AI concentration students.

CSC 455 Social Computing and Decentralized Artificial Intelligence: 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 474 Network Security: 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 498 Independent Study in Computer Science: Please review the instructions on: https://www.csc.ncsu.edu/academics/undergrad/research.php 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 499 Independent Research in Computer Science: Please review the instructions on: https://www.csc.ncsu.edu/academics/undergrad/research.php for information on how to enroll in this class. Offered as a full semester class for 3 hours only.

Fall Special Topics

CSC 495 – 001, Advanced Algorithms:

  • Pre-requisite: CSC 316
  • Description: This is a course on the design and analysis of computer algorithms. We will examine several interesting problems, devise algorithms for solving them, prove their correctness, and characterize their performances. This course focuses primarily on developing thinking abilities on both formal thinking [proof techniques and algorithm analysis] and problem solving skills [algorithm design and selection] instead of programming.

CSC 495 – 002, Software Project Management:

  • Pre-requisite: CSC 326
  • Description: This course focuses on software product management from the software engineering perspective, as well as how those principles apply to management at the individual, team, and organizational levels. Topics include challenges in product management, roadmapping, understanding and asserting business value, Objectives and Key Results (OKRs), risk management,and task prioritization. This course includes substantial reading expectations and in-class exercises. Active and consistent participation throughout the semester is required.

CSC 495 – 003, Introduction to Robot Motion Planning:

  • Pre-requisite: [MA 305/405] and [ECE 309 or CSC 316]
  • Description: This course will introduce fundamental concepts in robot motion planning with a focus on spatial manipulators utilizing simulation and, if available, real robots. The course’s topics will include rigid-body spatial transformations, forward and inverse kinematics, trajectory generation, configuration space, and sampling-based path planning. Projects and exercises will utilize the Python programming language, a Linux operating environment, and the Robot Operating System (ROS) middleware framework.

CSC 495 – 004, Software Architectures for the Cloud:

  • Pre-requisite: CSC 326
  • Description: This course will focus on the design of applications addressing challenges of modern cloud systems. The students will be exposed to trade-offs during the design decision by considering strengths and limitations associated to different architectural styles. The content of the course will also cover the best practices and guidelines for designing clean, maintainable, and scalable architectures with focus on both functional and non-functional requirements.

CSC 495 – 005, AI-powered Robotics:

  • Pre-requisite: [MA 305 or 405] and [ECE 309 or CSC 316] and [ST 370 or 371]
  • Description: This advanced robotics course provides a comprehensive exploration of robotics from the perspective of computer science and artificial intelligence. It will introduce the full autonomy loop, including robot operating system (ROS), sensing and perception, cognition, decision-making and action. The curriculum includes systems, theories, algorithms, and computational implementations relevant to these areas. Students will gain hands-on experience in implementing and extending such algorithms using simulations and real robots (depends on the resource availability).

CSC 495 – 011, Animal-Centered Computing:

  • Pre-requisite: CSC 316 .
  • 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.

CSC 495 – 012, Natural Language Processing:

  • Pre-requisite: CSC 316
  • Description: This course is self-contained and provides the essential foundation in natural language processing. It identifies the key concepts underlying NLP applications as well as the main NLP paradigms and techniques. This course combines the core ideas developed in linguistics and in artificial intelligence to show how to understand language. Key topics include regular expressions, unigrams, and n-grams; word embeddings; syntactic [phrase-structure] and dependency parsing; semantic role labeling; language modeling; sentiment and affect analysis; question answering; text-based dialogue; discourse processing; and applications of machine learning to language processing. The course provides the necessary background in linguistics and artificial intelligence. This course is suitable for high-performing undergraduates who are willing and able to learn abstract concepts, complete programming assignments, and develop a student-selected project.
  • Some seats will be reserved for Game Development and AI concentration students.

CSC 495 – 013, Human Centered Security:

  • Required Pre-requisite: CSC 316.
    • Recommended: Knowledge from CSC 474. Students might need to write (short) Python scripts.
  • Description: Computer security course covering concepts, methods, and advances of the usable security & privacy field. Topics include the design, planning, and execution of research studies, as well as foundations and important concepts of the research field.
  • Some seats will be reserved for Cybersecurity concentration students.

Fall 2024 list last updated on 3/11/2024.

CSC 236 Computer Organization and Assembly Language for Computer Scientists: Some seats will be reserved for Cybersecurity concentration students.

CSC 295 – 001, Programming Competition: Contact Dr. Sturgill (and copy Ms. Marini) for more information about how to become enrolled. This course can only be used in the “Other Restricted Electives Group A” or “Free Electives” categories for CSC majors and it is only offered as 1 credit hour.

CSC 295 – 002, Python Applications: An introductory course in Python for experienced programmers exploring both structured and object-oriented programming approaches. Python fundamentals such as lists, tuples, strings, dictionaries, functions, and file I/O will be covered. Packages such as Matplotlib, NumPy, pandas, and pytest will be utilized with an emphasis on data science applications such as modeling, data manipulation, visualization and machine learning. This course is for CSC majors only and requires a grade of C or higher in CSC 216. This course can only be used in the “Other Restricted Electives Group A” or “Free Electives” categories for CSC majors and it is only offered as 3 credit hours.

CSC 297, Cybersecurity Topics: 2 – 3 sections of different topics will be offered each semester. These courses can only be used in the “Other Restricted Electives Group A” or “Free Electives” categories for CSC majors and they are only offered as 1 credit hour each. Students in the Cybersecurity concentration must take three different topics for graduation requirements.

CSC 342 Applied Web-based Client-Server Computing

CSC 401 Data and Computer Communications Networks

CSC 402

CSC 405

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 412 Compiler Construction

CSC 415

CSC 422 Automated Learning and Data Analysis: Some seats will be reserved for AI concentration students.

CSC 433

CSC 442

CSC 453

CSC 454

CSC 456

CSC 462

CSC 472

CSC 474 Network Security: Some seats will be reserved for Cybersecurity concentration students.

CSC 484

CSC 486

Spring Special Topics

  • Intro to Mobile Robotics
  • Intro to Responsible Machine Learning
  • Robust and Efficient Deep Learning
  • Self-Driving Cars: Theory and Practice
  • Product Management
  • Software for Robotics
  • Software Systems Design
  • Testing

Spring 2025 list last updated on 3/11/2024.

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 495, that is appropriate for undergraduate students.

If it is listed as CSC 591, it may only be taken by ABM or CSC Honors students.

CSC AI Restricted Electives

  • Accelerating Deep Learning
  • Animal-Centered Computing
  • AI for Software Security
  • Deep Learning Beyond Accuracy
  • Generative AI for Software Engineering
  • Introduction to Robot Motion Planning
  • Machine Learning for User-Adaptive Systems
  • Machine Learning with Graphs
  • Neural Networks
  • Natural Language Processing
  • Real-time AI and Machine Learning Systems

CSC Cybersecurity Restricted Electives

  • Cellular and Telephone Network Security
  • Cryptographic Engineering and Hardware Security
  • Human Centered Security
  • LLMs for Security

CSC Games Restricted Electives

  • Natural Language Processing

Special Topics list last updated on 3/18/2024.