For Students

Special Topics Classes

Fall 2017

CSC 495-01 / CSC 693-01 – Data Science

Offered by Prof. Mohanty
Mon/Wed 3:30-4:45
Prerequisite: CSC 339

In a world with ever increasing data generated both by humans and machines alike, the field of computer science has seen a transition from computation-intensive solutions to data-intensive ones. Often in such a scenario, solutions to real-world problems can be derived/learned by analyzing disparate, complex and messy datasets using Data Science methods and approaches.

This course is highly interactive, and will explore the theories, techniques, and the tools necessary to gain insights from such datasets. Using a problem-based learning philosophy, students are expected to make use of such technologies to design data solutions that can process and analyze real-world datasets for a variety of scientific, social, and environmental challenges.

The core topics addressed by the course will be:

  • Programming with Data
  • Data Mining, Munging, Wrangling
  • Statistics, Analytics, Representation, Visualtization
  • Machine-Learning on real world data-sets and its applicability

CSC 495-02 – Database System Architecture

Offered by Prof. Sadri
Mon/Wed 2:00-3:15

This class is a second semester database course (following CSC 471 or CSC 671), which is being offered as a special topics class to undergraduates. The course will look at advanced database topics such as query processing and optimization, concurrency control, and distributed database systems. This class is cross-listed with CSC 672.
Prerequisite: CSC 471 (graduate students registering for CSC 672 should have taken CSC 671)


Spring 2017

CSC 495-01 / CSC 663-01 – Network Security

Offered by Prof. Mohanty
Tues/Thurs 3:30-4:45

This course explores the topics of securing computer networks with the utilization of cryptographic authentication, communication, and transmission protocols. Students in the course will be introduced to network security models pertaining to key distribution, establishing a secure network using firewalls, traffic monitoring, intrusion detection systems, and also take a look at different attacks that are conducted by malicious entities over computer networks. The topics covered in the course will provide students with the understanding of one of the key domains of cyber-security.
Prerequisite: CSC 330 (Recommended: CSC 567).


Fall 2016

CSC 495-01 / CSC 693-01 – Software Foundations

Offered by Prof. Tate
Tues/Thurs 5:30-6:45

This course explores logic and tools used to reason about software correctness, developing student skills to produce higher quality and more robust software. By the end of the course, students will be working on small-scale projects with widely-deployed open source software, which can form the basis for future projects that are suitable for an honors project, masters project, or masters thesis. This course will also provide the background needed to work as a research assistant in an active research program, for students interested in advancing the field in this area.
Prerequisite: CSC 330 (Recommended: CSC 339 and CSC 350).

CSC 495-02 – Database System Architecture

Offered by Prof. Sadri
Mon/Wed 2:00-3:15

This class is a second semester database course (following CSC 471 or CSC 671), which is being offered to undergraduates for the first time. The course will look at advanced database topics such as query processing and optimization, concurrency control, and distributed database systems. This class is cross-listed with CSC 672.
Prerequisite: CSC 471 (graduate students registering for CSC 672 should have taken CSC 671)


Spring 2015

CSC 495-01 / CSC 680-01 – Software Security

Offered by Prof. Tate
Tues/Thurs 2:00-3:15

This course will cover common vulnerabilities in software, and how software bugs can have serious security consequences. We will consider buffer overflows, return-oriented programming, stack smashing, integer overflow, SQL injection, cross-site scripting, and other classes of vulnerabilities. We will also look at techniques for avoiding these vulnerabilities, ranging from good programming practices to the use of static analysis and other tools. The course will be experimental, with students locating, exploiting, and fixing vulnerabilities throughout the semester.
Prerequisite: CSC 330 (Recommended: CSC 339 or other experience with C, C++, or other language that supports raw pointers).

CSC 495-02 – Mobile App Development

Offered by Andrew Schaeffer
Tues/Thurs 2:00-3:15

Project-based course exploring concepts in Mobile App Development. Concepts that will be covered include: mobile programming environment, interface design, communications and connectivity, and application structure and design. We will also address limitations of Mobile Computing including memory constraints, display considerations, and limited power/battery life. The course will focus on the Android operating system.
Prerequisite: CSC 330 (CSC 340 recommended)


Spring 2012

CSC 495-01 / CSC 663-01 – Overlay Networks and Network Innovation

Offered by Mike Wilson
Overlay Networks are networks layered on top of other networks. They can run radically different protocols, routings, and services from the underlying network, and can provide a vehicle for network innovation impossible in the current Internet infrastructure. This class explores the current problems facing the Internet, the history behind them, and the difficulties of moving forward; then examines overlay networks as a mechanism for breaking the innovation logjam. Students will develop a series of projects culminating in a generic overlay hosting platform, while reading and presenting papers from current network research in this area. Special notes: this course will be taught in C++ and will use the sockets API. There is no required textbook, but W. Richard Stevens’ UNIX Network Programming is recommended. Graduate students taking this class will be expected to develop an overlay network of their own design on top of the overlay hosting platform developed in the class.Prerequisite: CSC 330 or permission of the instructor.

CSC 495-02 – Problem Solving and Programming

Offered by Prof. Tate
This class will cover computational problem-solving techniques. Part of the course will involve going through Programming Pearls by Jon Bentley, a classic and one of the best “problem solving with programming” books ever written. The rest of the course will revolve around solving programming problems similar to the challenges found in programming contests, identifying common structure and problem solving techniques. This class is the perfect way to sharpen your programming and problem-solving skills! Prerequisite: CSC 330 or permission of instructor. (Note: Graduate students who are interested in this class should talk to Prof. Tate about taking this as a directed study class.)

CSC 539 – Introduction to Compiler Design

Offered by Mike Wilson
While this is not really a “Special Topics” class, since it is a class defined in the UNCG Bulletin, we have not been able to offer this class for quite a few years. Students interested in learning how compilers work should take advantage of this rare offering of CSC 539. The description of this class in the course catalog is as follows:

Basic techniques of compiler design and implementation: lexical analysis, parsing, code generation. Sizable programming project implementing a compiler for a block-structured language with strong typing.