Navigation: CSC Department Menu

Spring 2016 Undergraduate & Graduate Special Topic Courses

CSC 495 - 001 Visual Interface For Mobile Devices - Dr. Watson

Prerequisites: CSC 316 and CSC 454 or CSC 461

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 or an existing application
  • Improved interface for an existing application

CSC 495 - 002 Computability - Dr. Doyle

Prerequisite: CSC 333

Description: Grad school in your plans, or just love math?  Many graduate programs in computer science expect applicants to exhibit familiarity with the fundamental ideas of the theory of computability and uncomputability, in part because these topics shape how we think about difficult questions in all areas of computer science, and in part because the skills of mathematical writing and proof developed to answer questions about computability carry over to careful studies of other questions.

This course assumes familiarity with the notions of finite and pushdown automata studied in CSC 333, and examines the theory of computability and uncomputability as a mathematical and physical subject.  The center of the course concerns the hierarchy of Turing-computable and uncomputable functions, with brief examinations of analog hypercomputation and quantum computation at the end of the course.  Work throughout the course will aim at developing skills in finding and writing mathematical proofs as answers to questions.


CSC 495/591 - 005 Intelligent Game-Based Learning - Dr. James Lester / Dr. Brad Mott

Prerequisite: Senior Standing

Description: By fusing the inferential capabilities and adaptive reasoning techniques from artificial intelligence with new media and game technologies,  intelligent game-based learning environments offer significant potential for delivering motivating interactions that maximize students’ learning gains and improve problem-solving abilities. This course presents the foundations of intelligent game-based learning environments. It introduces the principles and methods underlying the design of intelligent game-based learning environments with an emphasis on creating learning environments that address the dual objectives of sound pedagogy on the one hand and engaging learning experiences on the other.


CSC 591 - 006 User Experience - Dr. Watson


CSC 591 - 007 Game Engine Design - Dr. Chris 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 implement the extension
  • Implement a set of assignments and a final project that combine to form a simulation of a 2D minigolf game

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

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 - 002 Reliable Software Systems - Dr. Guoliang Jin

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 591/791 - 003 Algorithms for Data Guided Business Intelligence - Dr. Samatova

Prerequisites: CSC 522 - Automated Learning and Data Analysis (or its equivalent), Python programming language, and undergraduate level knowledge of probability, statistics, and linear algebra

Description: Algorithmic design principles and best practices underlying data guided Business Intelligence (BI) will be taught through a set of hands-on use cases. Analytic pipelines for solving BI problems will be introduced from the end-to-end, practical guide (i.e., cookbook) perspective. These pipelines will be implemented through a series of mini-projects covering recommender systems, sentiment analytics, online advertisement, cybercrime and online fraud detection, Internet of Things analytics, social media analytics, web logs analytics, and supply chain analytics. The space of algorithms will include but will not be limited to deep learning, information fusion from dynamic heterogeneous and attributed graphs, and causal network inference. Tutorials and projects that teach students how to handle Big Data issues will utilize Spark on top of lambda architectures.


CSC 591/791 - 004 Internet of Things: Applications and Implementation - Dr. Shahzad

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 791 - 001 Reasoning under Uncertainty - Dr. Bahler

CSC 791 is an advanced course in approaches to handling uncertainty in intelligent reasoning and decision systems as well as mainstream computer science. Topics include the sources and types of uncertainty; historical approaches to uncertainty; fuzzy set theory and fuzzy logic; certainty factors; evidence combination; probabilistic graphical models; decision-making under uncertainty; and causality. Students will participate in collaborative class presentations and complete semester projects.

Most tasks require a person or an automated intelligent system to reason: that is to say, to take the available information and reach conclusions, both about what might be true and about how to act. At the same time, the world contains a considerable amount of inescapable uncertainty. Uncertainty can arise from several sources: our observations of the world are necessarily partial; observations may be subject to noise; most natural categories have no crisp boundaries; and most relationships in the world are indeterminate. In short, uncertainty arises because of limitations in our ability to observe the world, limitations in our ability to model the relationships in the world, inherent imprecision in most linguistic categories, and possibly even because of innate nondeterminism of the universe itself.