Navigation: CSC Department Menu

Spring 2015 Undergraduate & Graduate Special Topic Courses

CSC402-001 Networking Services – Signaling and QoS - Dr. Perros

Have you ever wondered how apps such as Facetime, Skype, and Google talk work? How do they find the person you are calling? What transpires from the moment you call somebody to the moment you see and hear the other person?

Why does the person you speak to over the Internet sounds like water babies, or, the cool movie you are watching suddenly stops at the peak of the drama with the message “Rebuffering”?

In this course, we will unravel the mysteries of the signaling protocols that enable us to connect to other people’s smart phones and computers, and the necessary mechanisms in the Internet that allow us to enjoy a movie, or a voice call without interruptions.

We will use my new textbook: “Networking Services: QoS, Signaling, Processes” - http://www.amazon.com/dp/1495437485, which is also available in Kindle. There will be a mid-term and a final exam, and several projects that will enable you to see how things work in practice.

CSC450 Web Services - Dr. Singh

This course introduces the concepts and techniques of service-oriented computing, emphasizing the crucial aspects in which they differ from traditional computing. The course introduces the essential ideas of the modeling and representation of services and of their decentralized enactment. In doing so, the course provides the necessary background in foundational concepts including semantics, transactions, processes, agents, multiagent systems, communication.

The course introduces leading standards (some in detail) that are widely employed in industry for software architecture and development, with or without services. These include RDF, OWL, UML, IEEE FIPA, AMQP, and BPMN.

This course is self-contained.

Please watch http://www.csc.ncsu.edu/faculty/mpsingh/local/SOC/ for updates throughout

CSC462-002 Game Engine Design - Dr. Healey

This course offers a more advanced discussion of topics in computer graphics, with an emphasis on rendering techniques used in computer game engine design. Students are required to implement a medium-size game program—minigolf—that includes modeling and rendering, 2D physics, and animation of dynamic objects. Students will learn about GPU basics, mathematics of transformations, visual appearance properties, texturing, global illumination, and toon shading in computer games.

The goals in CSC 462/562 are to allow you to:

  • extend your understanding of computer graphics beyond the fundamental level,
  • gain a basic knowledge of some of the techniques being used to advanced our understanding of various real-world topics in field of rendering,
  • gain confidence in your ability to design and implement a medium-sized project that investigate advances topics in graphics,
  • choose a method to extend the project, and research it in sufficient depth to to implement the extension, and
  • implement a set of assignments and a final project that combine to form a simulation of a 2D minigolf game.

CSC495-001 Visual Interface for Mobile Devices - Dr. Watson

This course provides an introduction to mobile phone technology, and experience designing and implementing graphics and user interfaces in a limited display and input environment. My goals for you are to:

  • gain an understanding of the basic hardware and software designs used in modern smartphones
  • explore graphics and interface design decisions and tradeoffs on modern smartphones
  • gain experience designing and implementing an application with significant graphics and/or UI requirements using Android OS.

The graded material of this course is a full semester project, completed by groups of 2-3 students, and a final exam. The course project will be designed and implemented for the Android OS, implemented to run on cell phones running Android.

Each group will be responsible for choosing a topic for their course project. Because this course focuses on graphics and interface for limited-capability devices and environments, your project is required to have a significant graphics or UI component. So, it would not be appropriate, for example, to propose to re-implement a simplified version of Android's contact list as your course project. Possible topics could include (but are not limited to):

  • games
  • visualization
  • improved input methods for common interactions of an existing application
  • improved interface for an existing application

CSC495/591-008 Human Machine Decisions and Analytics - Dr. Bahler

Designing, constructing, and evaluating human-machine decision making systems. Decision-making in the presence of probabilistic and other uncertain information. Common failures and pitfalls in human reasoning. Cognitive styles and biases. The nature of analytics. Hypothesis formation. Analysis of competing hypotheses. Models of decision-making under uncertainty. Guest lecturers from inside and outside the department. Real-world case studies from business, medicine, geopolitics, and other fields. Semester group project, midterm, in -class discussion and brainstorming.

CSC591/791-001 Advanced Algorithms - Dr. Samatova

Advanced algorithm design techniques for large-scale real-world problems from end-to-end perspective. Complexity Theory: randomization, approximation, fixed parameter tractability, heuristics. Processing Regimes: streaming and online, parallel and distributed, deep memory hierarchies, index-based. Optimizations and Constraints: time, space, energy, reliability, accuracy, QoS, etc. Data Types and Structures: strings, graphs, sets, etc.

CSC591-002 Game Engine Design - Dr. Healey

This course offers a more advanced discussion of topics in computer graphics, with an emphasis on rendering techniques used in computer game engine design. Students are required to implement a medium-size game program—minigolf—that includes modeling and rendering, 2D physics, and animation of dynamic objects. Students will learn about GPU basics, mathematics of transformations, visual appearance properties, texturing, global illumination, and toon shading in computer games.

The goals in CSC 462/562 are to allow you to:

  • extend your understanding of computer graphics beyond the fundamental level,
  • gain a basic knowledge of some of the techniques being used to advanced our understanding of various real-world topics in field of rendering,
  • gain confidence in your ability to design and implement a medium-sized project that investigate advances topics in graphics,
  • choose a method to extend the project, and research it in sufficient depth to to implement the extension, and
  • implement a set of assignments and a final project that combine to form a simulation of a 2D minigolf game.

CSC591/791-004 DevOps - Dr. Parnin

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. Topics include: Static analysis, build management, automatic testing, quality gates, monitoring, and configuration and release management. Students will have the chance to build new or extend existing software engineering tools.

CSC591/791-005 Spatial and Temporal Data Mining - Dr. Vatsavai

Spatial data mining is the process of discovering interesting and previously unknown, but potentially useful patterns from the spatial and spatiotemporal data. However, explosive growth in the spatial and spatiotemporal data, and the emergence of geosocial media and location sensing technologies has transformed the field in recent years. This course reviews the current state of the art in spatial, temporal, and spatiotemporal data mining and looks at real-world applications ranging from geosocial networks to climate change impacts.

Topics: spatial and spatiotemporal association rules, spatial and temporal similarity measures, various pattern families, spatial and temporal clustering, spatial classification, and spatial and temporal outlier mining, semantic classification, deep learning.

CSC591-006 User Experience - Dr. Watson

CSC591-007 Data Intensive Computing - Dr. Freeh

This project-oriented course will survey many distributed computing frameworks, such as Hadoop, BOINC, and HPCC. Each student will work in a medium-size group on a semester-long project using the above frameworks and supporting systems, such as HDFS, NoSQL (eg, MongoDB), and Hive.

CSC591/791-009 Social Computing - Dr. Singh

This course surveys the field of social computing. It provides a self-contained introduction to the key concepts, paradigms, and techniques of social computing and social analytics. Specific topics will be selected from the following list: social media, mobility and social context, social network analysis, crowdsourcing, human computation, markets, incentives, gamification, voting theory and decision aggregation, argumentation, organizational modeling, norms, sociotechnical systems, software engineering for social computing.

The course involves two take-home exams and a student-selected (solo or team) project.

Advanced undergrads are welcome. CSC 791 requires a term paper on top of CSC 591 requirements. The term paper may be a fresh start or build on your ongoing research.

Please watch http://www.csc.ncsu.edu/faculty/mpsingh/local/Social/ for updates throughout Fall.

CSC750 Service-Oriented Computing - Dr. Singh

This course introduces the concepts and techniques of service-oriented computing, emphasizing the crucial aspects in which they differ from traditional computing. The course introduces the essential ideas of the modeling and representation of services and of their decentralized enactment. In doing so, the course provides the necessary background in foundational concepts including semantics, transactions, processes, agents, multiagent systems, communication.

The course introduces leading standards (some in detail) that are widely employed in industry for software architecture and development, with or without services. These include RDF, OWL, UML, IEEE FIPA, AMQP, and BPMN.

This course is self-contained.

Please watch http://www.csc.ncsu.edu/faculty/mpsingh/local/SOC/ for updates throughout Fall.