Spring 2017 Undergraduate & Graduate Special Topic Courses

CSC 495 - 001 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.

CSC 495/591 - 006 Privacy - Dr. Staddon

Prerequisites: CSC 316

Description: In 2006, AOL released user search logs stripped of email addresses, account holder names and other explicitly identifying information. The New York Times promptly examined the queries in the data and identified user 4417749 as a 62 year old resident of Lilburn, GA [1]. This is one of many identification attacks. More recently, researchers have shown how pseudonymous eBay users can be identified [2] and how Netflix users can be identified from their movie ratings [3]. When hearing about privacy breaches like these, it’s natural to ask what technology is available to users to protect their privacy. It’s important to consider not only the technical functionality of privacy-enhancing technologies [PETs] but also usability and the user experience -- all impact adoption. Hillary Clinton’s use of a personal email account for government business [4] demonstrates the strong influence usability can have on privacy/security choices. In this course, we will study how to use data in a principled way to understand privacy risk, attitudes and concerns. We will focus on several of the attacks, PETs and privacy measurement techniques behind this research and press, in particular:

CSC 495/591 - 010 Computational Visual Narrative - Dr. Jhala

Prerequisites: CSC 316

Description: TFocuses on discussion of recent advances in the area of visual storytelling in graphical environments. Major topics covered in this course are: intelligent camera control, shot-composition, lighting design, interactive storytelling, and computational techniques associated with these applications. Class will consist of in-class discussions, student presentations of research papers and a final student project.

CSC 495/591 - 011 Data Driven Decision Making - Mr. Streck

Prerequisites: CSC 316

Description: 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, and unstructured text analytics will be used to provide input into the decision making process. Students will learn how data can be transformed into business intelligence (BI) while participating in an action learning setting. Focus on exploring the decisions processes of Data Sciences field.

CSC 591 - 012 User Experience - Dr. Watson

Prerequisites: None

Description: As technology markets mature, products can no longer differentiate themselves by functionality alone. Instead, they must make more emotional appeals: they must be more interesting, engaging, memorable or moving. This course studies the definition, foundations, methods, application and research frontiers of user experience, which is concerned with how devices and systems create these sorts of cognitive impacts on their users. This includes current theories of high-level perception, attention, engagement, emotion, aesthetics, communication, learning and behavior; how they are impacted by a system or a product; techniques for generating products and designs with good user experience; and methods for measuring those human impacts. Because good interfaces are an essential part of good user experience, this course assumes students are already familiar with human-computer interfaces, but moves its focus from a system’s effect on productivity to its much broader effect on human experience.

CSC 591/791 - 015 Machine Learning for User-Adaptive Systems - Dr. Min Chi

Prerequisites: None

Description: Machine Learning is concerned with computer programs that enable the behavior of a computer to be learned from examples or experience rather than dictated through rules written by hand. An important scientific phenomenon in the 21st century has been the advances made possible by mining the wealth of user data available from various interactive systems. Machine learning and data mining methods can greatly improve the effectiveness and adaptiveness of interactive systems, and user-system interaction data in turn exposes new machine learning and data mining challenges.

This class is meant to teach the practical side of machine learning for mining interactive data, such as mining user log files to make predictions, discovering interesting patterns from the sequential data, or building adaptive user interactive systems. In this class, students will learn how to mine user-system interaction data and to make interactive systems more intelligent by adapting to users’ individual needs in many different situations. Students will see applications of decision-theoretic systems, Hidden Markov Models, the expectation-maximization algorithm, sequential factor analysis, Markov models for action selection, and reinforcement learning. Students will read papers that apply machine learning and data mining techniques to user adaptation. Students will also complete a project that applies these techniques to build an adaptive interactive system.

The course will be run in seminar style, with readings from the current literature and with student presentations. This class will cover three related areas:

  1. domain-specific user models
  2. predictive models and methods,
  3. the design of interactive interventions.

This course will be of interest to students who plan to conduct subsequent work on applied machine learning and data mining and/or interactive systems, and students who plan to pursue a career in interactive personalized technologies and user adaptation. Graduate students from departments other than computer science are welcome.

CSC 591/791 - 016 Internet of Things: Applications and Implementation - Dr. Dutta

Prerequisites: Solid understanding of basic network design, architecture, and operations. Good programming skills.

Description: This course will focus on advanced topics in Internet of Things (IoT). These topics will include (but are not limited to) challenges in the design of IoT infrastructure, limitations of existing protocols such as HTTP, WiFI, and ZigBee when used with IoT, Radio Frequency Identification (RFID), Security, low power sensor design considerations, applications of machine learning techniques, and existing and emerging IoT standards. The students will be required to read research publications in this area. The course will also include multiple demos, such as for fog computing, using real IoT hardware such as Intel Edison boards. The course will also cover various open source software platforms including IBM's Bluemix platform, Microsofts HomeOS and Lab of Things platforms, and Contiki. To enable students to see IoT in action, they will be required to do projects using real IoT hardware (which will be provided by the instructor) and open source software.

CSC 591/791 - 017 Software Defined Networking - Dr. Dutta

Prerequisites: Good knowledge of Internet architecture and protocols, practical Internet application programming experience, and familiarity with Linux networking, are very strongly desirable background for this course. In particular, having successfully taken CSC/ECE 573 (Internet Protocols) would be good preparation for this special topic.

Description: The newly emerged paradigm of Software Defined Networking brings together long-standing concepts with recent ones, and promises to change every aspect of the practice of networking in the decade to come. In this special topic, we will investigate the basic concepts, and discuss various architectural flavors, of SDN. We shall delve a little deeper in OpenFlow, a fairly popular open implementation of an SDN architecture. We will also study other models, and discuss the comparative role of various system components in such models. Beyond lecture material, students will be assigned reading from the research literature on the subject, and available open-source material. Students will be required to complete homework assignments based on their reading, and will also need to perform hands-on exercises, largely in virtual networking labs. Students will also need to undertake a half-semester long project in the latter part of the semester that requires them to build an SDN network targeted at specific functionality. For 700-level students, this project is required to be designed to investigate an open question in the study of SDNs, while for 500-level students, it is allowed to be a replication of a known system configuration in order to assess performance characteristics. After taking the course, students will be able to articulate the fundamental concepts behind an SDN architecture, compare and predict performance characteristics of SDN-based networks as opposed to traditional internetworks, realize an OpenFlow network to specifications. Students taking the 700-level version will in addition be able to design an SDN system experiment to investigate cutting-edge questions in SDN.

CSC591/791 - 018 Reliable Software Systems - Dr. Guoliang Jin

Prerequisites: None

Description: Modern society and economy heavily depend on software systems. Software errors have been reported to take lives and cause real-world disasters, and they cost billions of dollars annually. Meanwhile, software system is becoming more parallel/distributed to scale and more diverse to meet different needs. Therefore, making reliable software remains one of the most important problems in computer science. In this course, we will study a number of techniques that have been developed to improve system reliability, with a focus on concurrent and distributed systems.

CSC 791 - 020 Routed Network Design - Dr. Viniotis

Prerequisites: Graduate standing in Computer Networking [Computer Science or Electrical Engineering], or Computer Science

Description: