CSC Restricted Electives - Fall 2018

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.

CSC 401 - 001   Data and Computer Communications Networks - Dr. Battestilli

Prerequisites: ST 370 and CSC 246

Description: Basic concepts of data communication networking and computer communications architectures, including packet/circuit/virtual-circuit switching, layered communication architecture and OSI layers, general description of DLC, network and transport layers, some detailed protocol study of Ethernet, ATM and TCP/IP. Credit is not allowed for both CSC 401 and ECE 407.

Class Time: M/W 11:45 am - 1:00 pm

CSC 422 - 001   Automated Learning and Data Analysis - Dr. Chi

Prerequisites: ST 370 and MA 305, and a grade of C- or better in either CSC 226 or LOG 201

Description: Introduction to the problems and techniques for automated discovery of knowledge in databases. Topics include representation, evaluation, and formalization of knowledge for discovery; classification, prediction, clustering, and association methods.Selected applications in commerce, security, and bioinformatics. Students cannot get credit for both CSC 422 and CSC 522.

Class Time: M/W 3:00 - 4:15 pm

CSC 440 - 001   Database Management Systems - Dr. Anyanwu Ogan

Prerequisites: CSC 316

Description: Introduction to database concepts. This course examines the logical organization of databases: the entity-relationship model; the relational data model and its languages. Functional dependencies and normal forms. Design, implementation, and optimization of query languages; security and integrity, concurrency control, transaction processing, and distributed database systems.

Class Time: T/H 11:45 am - 1:00 pm

CSC 442 - 001   Introduction to Data Science - Dr. Chirkova

Prerequisites: [MA 305 or MA 405] and [ST 305 or ST 312 or ST 370 or ST 372] and [CSC 111 or CSC 112 or CSC 113 or CSC 116 or ST 114 or ST 445]

Description: Overview of data structures, data lifecycle, statistical inference. Data management, queries, data cleaning, data wrangling. Classification and prediction methods to include linear regression, logistic regression, k-nearest neighbors, classification and regression trees. Association analysis. Clustering methods. Emphasis on analyzing data, use and development of software tools, and comparing methods.

Class Time: M/W 8:30 - 9:45 am

CSC 450 - 001   Web Services - Dr. Singh

Prerequisites: CSC 316 - 001

Description: Concepts, theories, and techniques for Web services. This course examines architectures for Web applications based on the classical publish, find, and bind triangle. It considers the description, discovery, and engagement of Web services. It emphasizes Web service composition. Key topics include semantics, transactions, processes, agents, quality of service, and compliance.

Class Time: M/W 1:30 - 2:45 pm

CSC 454 - 001   Human-Computer Interaction - Dr. Oduor

Prerequisites: CSC 316

Description: A survey of concepts and techniques for user interface design and human computer interaction. Emphasizes user-centered design, interface development techniques, and usability evaluation.

Class Time: T/H 6:00 - 7:15 pm

CSC 455 - 001   Social Computing - Dr. Singh

Prerequisites: Junior or Senior standing

Description: This course surveys the field of social computing, introducing its key concepts, paradigms, and techniques. Specific topics are selected from the following list: social media and social network analytics, sociological underpinnings, crowdsourcing and surveys, human computation, social mobilization, human decision making, voting theory, judgment aggregation, prediction markets, economic mechanisms, incentives, organizational modeling, argumentation, contracts, norms, mobility and social context, sociotechnical systems, and software engineering with and for social computing. This course incorporates ideas from diverse disciplines [including sociology, psychology, law, economics, political science, logic, statistics, philosophy, business] to provide essential background for future computer science careers in industry and research.

Class Time: M/W 3:00 - 4:15 pm

CSC 461 - 001   Computer Graphics - Dr. Watson

Prerequisites: Prerequisite: MA 305, CSC 230 and CSC 316

Description: Principles of computer graphics with emphasis on two-dimensional and aspects of three-dimensional raster graphics. Topics include: graphics hardware devices, lines and polygons, clipping lines and polygons to windows, graphical user interface, vectors, projections, transformations, polygon fill. Programming projects in C or C++.

Class Time: T/H 11:45 am - 1:00 pm

CSC 474 - 001   Network Security - Dr. Reaves

Prerequisites: CSC 230

Description: Basic concepts and techniques in information security and management such as risks and vulnerabilities, applied cryptography, authentication, access control, multilevel security, multilateral security, network attacks and defense, intrusion detection, physical security, copyright protection, privacy mechanisms, security management, system assurance and evaluation, and information warfare. Coverage of high-level concepts such as confidentiality, integrity, and availability applied to hardware, software, and data. Credit not allowed for both CSC 474 and CSC 574.

Class Time: T/H 4:30 - 5:45 pm

CSC 481 - 001   Game Engine Foundations - Dr. Roberts

Prerequisites: CSC 316

Description: An introduction to game engines, the technologies underlying computer and console game development. This course will cover engine components, architectures, and designs. Topics include asset management, resource management, event management, memory management, timelines, multithreading, network architectures, and game object models. A sequence of programming assignments will lead students through the implementation of their own game engine, which they will use to design their own game.

Class Time: T/H 4:30 - 5:45 pm

CSC 495 - 001   Software Security - Dr. King

Prerequisites: CSC 316


This course has an additional co-requisite of CSC 326. Students may have taken it before, for a passing grade, or be co-enrolled.

This class is the undergraduate version of CSC 515.

Introduces students to the discipline of designing, developing, and testing secure and dependable software-based systems. Students will learn about risks and vulnerabilities, and effective software security techniques. Topics include common vulnerabilities, access control, information leakage, logging, usability, risk analysis, testing, design principles, security policies, and privacy.

By the end of the course, you should be able to do the following:

Class Time: T/H 10:15 - 11:30 am

CSC 495 - 003   Cloud Computing - Dr. Dreher

Prerequisites: CSC 246

Description: The course will cover basic cloud computing principles and architectures. Topics will include types of cloud services, public, private and hybrid cloud computing. The course will analyze cloud computing performance, and cover topics of cloud security, cost, usability, and utility of cloud computing solutions for various cloud implementations "as a service." Students will learn how to critically evaluate cloud solutions, including the economic and legal aspects of deploying cloud computing solutions. The course will also include hands-on work with building a cloud computing system using the NC State VCL software.

Class Time: T/H 3:00 - 4:15 pm

CSC 495 - 004   Compiler Theory - Dr. Shen

Prerequisites: CSC 316 and CSC 333


This is the undergraduate version of CSC 512.

This course covers the basic topics in constructing compilers for programming languages, which include: Overview of Compilation, Scanning, Parsing, Context‐Sensitive Analysis, Intermediate Representations, Procedure Abstraction, Code Shape, Introduction to Code Optimization, Code Generation, and Several Advanced Topics in Program Optimization.

By the end of the course, students should be able to design and implement algorithms for scanners, parsers, semantic analyzers; to critique different implementation choices and analysis approaches; to understand the fundamental theory on regular expression, DFA, NFA, context-free and context-sensitive grammars; to reiterate basic algorithms for register allocation, instruction scheduling, instruction selection; and to comprehend the challenges in code optimizations.

Class Time: T/H 3:00 - 4:15 pm

CSC 495 - 008   Computational Visual Narrative - Dr. Jhala

Prerequisites: CSC 316 (required), CSC 461 (recommended)


This class is an approved CSC Games Restricted Elective.

An intensive study of advanced development processes, software, and various computer platforms used in the creation of computational media in an interdisciplinary setting in tandem with ADN 460 class in the Department of Art and Design.  Course principles will be applied in a number of individual assignments related to design and development of computational media and an interdisciplinary team-based semester-long project. Student activities in the course will include ideation, storyboarding, project pitches, development tools, prototyping, and final polish for projects. Classes will primarily be student working group meetings involving project
review with the instructor, but will also include a mix of lecture format, student
presentations and guest presentations from computational media designers. 

Class Time: M/W 1:30 - 2:45 pm

CSC 495 - 010   Data Driven Decision Making - Dr. Kowolenko

Prerequisites: CSC 316

Description: This section is cross-listed with CSC 591 - 010.

This course will provide the students with an understanding of the criteria required in decision-making including quantifying stakeholder value, dealing with uncertainty and risk, and critical problem-solving methodologies. Understanding and qualifying data sources, use of structured and unstructured data, unstructured text analytics, decision-making and machine learning algorithms will be used to design an application that can be used for business intelligence (BI) while participating in an action learning setting. Focuses on exploring the decisions processes based on the output of Data Sciences methodologies.

Class Time: T/H 1:30 - 2:45 pm

CSC 495 - 011   Cryptography - Dr. Scafuro

Prerequisites: CSC 226 and CSC16

Description: This section is cross-listed with CSC 591 - 011.

Cryptography is everywhere in our everyday life. Whenever we connect to Facebook, shop on Amazon, call Lyft, our device runs a sequence of cryptographic protocols that enable for secure communication over a public network such as the Internet. In this class you will learn the concepts and the algorithms behind such cryptographic protocols. You will learn how to formally define security properties such as confidentiality and integrity of data; you will be able to formally prove that a cryptographic protocol achieves a certain security property; and you will be able to identify the cryptographic tools needed in real world protocols [such as SSL, Bitcoin].

You will also discover that cryptography has a much broader range of applications. It solves absolutely paradoxical problems such as proving knowledge of a secret without ever revealing the secret [zero knowledge proofs], or computing the output of a function without ever knowing the input of the function [secure computation].

Note that in this course we do not focus on implementation, neither programming of cryptographic schemes.

Class Time: M/W 4:30 - 5:45 pm

CSC 495 - 012   Educational Technology - Dr. Lynch

Prerequisites: CSC 316

Description: This section is cross-listed with CSC 591 - 012.

This course will be a seminar and project-based course that will provide an overview of educational technology.
Specifically: tutoring systems, educational data mining, and educational guidance.
Students in the course will be introduced to the relevant topics via regular readings with presentations. They will also be required to locate and present at least one research paper over the course of the semester, and they will be required to complete a team project. 
Undergraduate students will be able to complete a smaller project and a shorter paper presentation.

Class Time: T/H 8:30 - 9:45 am