The request to revise the MS in Computer Science and ITCS graduate courses

Date: April 3, 2015
To: College of Computing & Informatics
From: Office of Academic Affairs
Approved On: February 26, 2015
Approved by: Graduate Council
Implementation Date: Spring 2016


Note: Deletions are strikethroughs. Insertions are underlined.


Catalog Copy

Degree Requirements

The Master of Science program in Computer Science requires 30 graduate credit hours with a minimum 3.0 GPA, which may optionally include 6 hours of thesis. At least 21 18 hours of the courses applied to the degree must be from the Department of Computer Science and at least 24 hours must be from the College of Computing and Informatics. At least 15 hours must be 6000 level or above courses. No more than 6 hours may be in Individual Study. A maximum of 6 hours of graduate credit may be transferred from other institutions.

II. Breadth Requirements
All students must take three courses, each from a different Course Category, to satisfy the breadth requirements.

Course Categories are:

1. Data Science and Management

  • ITCS 6100 Big Data Analytics for Competitive Advantage
  • ITCS 6155 Knowledge Based Systems
  • ITCS 6157 Visual Databases
  • ITCS 6160 Database Systems
  • ITCS 6161 Advanced Topics in Database Systems
  • ITCS 6162 Knowledge Discovery in Databases
  • ITCS 6163 Data Warehousing
  • ITCS 6190 Cloud Computing for Data Analysis
  • ITCS 6265 Advanced Topics in Knowledge Discovery in Databases

6. Information Security and Privacy

  • ITIS 5221 Secure Web Application Development
  • ITIS 5250 Computer Forensics
  • ITIS 6140 Software Testing and Quality Assurance
  • ITIS 6150 Software Assurance
  • ITIS 6167 Network and Information Security
  • ITIS 6200 Principles of Information Security and Privacy (required for the security concentration)
  • ITIS 6210 Access Control and Security Architecture
  • ITIS 6220 Data Privacy
  • ITIS 6230 Information Infrastructure Protection
  • ITIS 6240 Applied Cryptography
  • ITIS 6250 Open Source Security Systems
  • ITIS 6362 Information Technology Ethics, Policy, and Security
  • ITIS 6420 Usable Security and Privacy

2014-2015 Graduate Catalog: Courses in Computer Science (ITCS)

ITCS 5010. Topics in Computer Science. (3) Prerequisite: CCI Graduate standing or permission of instructor. Topics in computer science selected to supplement the regular course offerings. A student may register for multiple sections of the course with different topics in the same semester or in different semesters. (On demand)

ITCS 5102. Survey of Programming Languages. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Study of the concepts underlying various computer languages, and comparing and evaluating various language features. History and development of various languages, such as FORTRAN, ALGOL, PASCAL, MODULA-2, C, C++, Ada, Lisp, Smalltalk, Prolog.; evaluation and comparison of various algorithms and language suitability. Selection of languages for problems/environments. Overview of various languages. (Fall, Spring)

ITCS 5120. Introduction to Computer Graphics. (3) Prerequisites: Graduate CCI Graduate standing or permission of instructor. Graphics hardware; raster algorithms; geometric transformations; 2D/3D interactive graphics; 3D viewing and perspective projections; color and lighting models; hidden surface removal; modeling hierarchies; fractals; curved surfaces. (On demand)

ITCS 5121. Information Visualization. (3) Cross-listed as HCIP 5121. Prerequisite: Graduate CCI Graduate standing or permission of instructor. Information visualization concepts, theories, design principles, popular techniques, evaluation methods, and information visualization applications. (Spring)

ITCS 5122. Visual Analytics. (3 ) Cross-listed as HCIP 5122. Prerequisites: Full graduate CCI Graduate standing and STAT 1220, STAT 1221, STAT 1222, STAT 2122, STAT 2223, or approval of the instructor. Introduces the new field of visual analytics, which integrates interactive analytical methods and visualization. Topics include: critical thinking, visual reasoning, perception/cognition, statistical and other analysis techniques, principles of interaction, and applications. (Fall, Spring) (Evenings)

ITCS 5123. Visualization and Visual Communication. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Understanding the relatively technical field of visualization from the point of view of visual communication, this course draws connections with photography, design, illustration, aesthetics, and art. Both technical and theoretical aspects of the various fields are covered, and the connections between them are investigated. (Fall)

ITCS 5128. Programming Languages and Compilers. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Introduction to the concepts and techniques used in describing, defining, and implementing programming languages and their compilers. Introduction to parsing and parser construction; LL and LR grammars; syntax directed translation; data object representations; run time structures; intermediate languages; code optimization. (On demand)

ITCS 5133. Numerical Computation Methods and Analysis. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Introduction to principles and techniques behind numerical methods and algorithms that underlie modern scientific and engineering applications. Roots of equations; linear systems (direct methods, LU/QR factorization, iterative methods); Eigen values and vectors; Interpolation, Approximation; Numerical Differentiation/Integration, ODEs and PDEs. (On demand)

ITCS 5141. Computer Organization and Architecture. (3) Prerequisite: Graduate CCI Graduate standing and undergraduate computer architecture course, or permission of instructor. Fundamentals of computer design; instruction set design, basic processor implementation techniques; pipelining; memory hierarchy; input/output. Cost/performance and hardware/software trade-offs. (On demand)

ITCS 5145. Parallel Computing. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Types of parallel computers, programming techniques for multiprocessor and multicomputer systems, parallel strategies, algorithms, and languages. (Fall, Spring)

ITCS 5146. Grid Computing. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Grid computing software components, standards, web services, security mechanisms, schedulers and resource brokers, workflow editors, grid portals, grid computing applications. (On demand)

ITCS 5152. Computer Vision. (3) Prerequisites: Graduate CCI Graduate standing and undergraduate course in linear algebra, or permission of instructor. General introduction to Computer Vision and its application. Topics include: low-level vision, 2D and 3D segmentation, 2D description, 2D recognition, 3D description and model-based recognition, and interpretation. (Odd years, Spring)

ITCS 5157. Computer-Aided Instruction. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. History of CAI; study of current CAI systems; development of man-machine dialogue; programming tools for CAI; information structures for computer-oriented learning. Advantages/disadvantages/ costs of CAI. (On demand)

ITCS 5161. Intellectual Property Aspects of Computing. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Explores the broad field of intellectual property and the many aspects related to computing. Topics include: software copyrights, software patents, trademarks and service marks, employment contracts, non-compete agreements, software licenses, software development contracts, preservation of digital evidence, protection of trade secrets, cyberspace law and the use of mediation in IP disputes. (Spring)

ITCS 5180. Mobile Application Development. (3) Cross-listed as ITIS 5180. Prerequisite: Graduate CCI Graduate standing or permission of instructor. Mobile platforms are at the center of attention of users and organizations nowadays. Most organizations and businesses are rapidly migrating toward the cloud and need to provide a fast and easy mechanism for users to stay connected to their services. Mobile applications are the top trend nowadays given the high variety of new mobile devices and platforms such as Apple’s iOS and Google’s Android. In this course, students are introduced to the foundations of mobile development and its unique requirements and constraints. Students design and build a variety of mobile applications with a hands-on and project-based approach. (On demand)

ITCS 5181. Microcomputer Interfacing. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Signal conditioning, A/D conversion, noise, transmission line effects, signal processing, D/A conversion and serial/parallel interfaces. (On demand)

ITCS 5230. Introduction to Game Design and Development. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Basic concepts and techniques for electronic game design and development. Topics include: game history and genres, game design teams and processes, what makes a game fun, level and model design, game scripting and programming including computer graphics and animation, artificial intelligence, industry issues, and gender and games. (Fall)

ITCS 5231. Advanced Game Design and Development. (3) Prerequisite: ITCS 5230. Advanced concepts and techniques for electronic game design and development. A project-centered course where students explore complex gameplay and interactivity. Explores topics from the introductory course in more depth, such as: applying software engineering techniques to developing games, advanced game programming and scripting, networking, graphics, physics, audio, game data structures and algorithms, and artificial intelligence. (Spring)

ITCS 5232. Game Design and Development Studio. (3) Prerequisite: ITCS 5120, ITCS 5231, and permission of instructor. Application of advanced concepts and techniques for electronic game design and development. Teams will use engineering techniques to incorporate game programming and scripting, networking, graphics, physics, audio, game data structures and algorithms, and artificial intelligence into an electronic game. Individuals will develop a complete portfolio of prior work and the course project. (On demand)

ITCS 5235. Game Engine Construction. (3) Prerequisite: ITCS 4120, ITCS 6120, or permission of instructor. Introduction to principles and techniques behind modern computer and console game engines. Graphics Rendering Pipeline (transformations, lighting ,shading); 2D/3D Texture Mapping; Image Based Rendering; Spatial Data Structures and Acceleration Algorithms; Level of Detail; Collision Detection, Culling and Intersection Methods; Vertex/Pixel Shaders; Pipeline Optimization; Rendering Hardware. (On demand)

ITCS 5236. Artificial Intelligence for Computer Games. (3) Prerequisite: ITCS 6150 or permission of instructor. Application of advanced concepts and techniques in artificial intelligence for electronic game design and development. An investigation of the artificial intelligence techniques necessary for an agent to act, or appear to act, intelligently in interactive virtual worlds. Topics include: uncertainty reasoning, machine learning, perception, knowledge representation, search, and planning. Emphasis will be on implementation and experimentation with the goal of building robust intelligent agents in interactive entertainment domains. Elements of multi-agent collaboration and the use of cognitive architectures in interactive computer games will also be discussed. (On demand)

ITCS 5237. Audio Processing for Entertainment Computing. (3) Prerequisite: ITCS 6114 or permission of instructor. Introduction to the principles and applications of audio (digital signal) processing focusing on entertainment domains. Topics include: analysis of signals, transforms, digital filter design techniques, audio engine development, file encoding/decoding, spatial sound rendering, optimization, and advanced audio techniques. (On demand)

ITCS 6010. Topics in Computer Science. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Topics in computer science selected to supplement the regular course offerings. A student may register for multiple sections of the course with different topics in the same semester or in different semesters. (On demand)

ITCS 6050. Topics in Intelligent Systems. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Topics in intelligent systems selected to supplement the regular course offerings. May be repeated for credit with change of topic. (Even years, Spring)

ITCS 6080. Topics in Computer Engineering. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Topics in computer engineering selected to supplement the regular course offerings. May be repeated for credit with change of topic. (On demand)

ITCS 6100. Big Data Analytics for Competitive Advantage. (3) Cross-listed as DSBA 6100 and HCIP 6103. Prerequisite: CCI Graduate standing or permission of instructor. An introduction to the use of big data as a strategic resource. A focus is placed on integrating the knowledge of analytics tools with an understanding of how companies leverage data analytics to gain strategic advantage. A case approach is used to emphasize hands-on learning and a real-world view of big data analytics. (Fall, Spring) (Evenings)

ITCS 6107. Formal Languages and Automata. (3) Prerequisites: Graduate CCI Graduate standing or permission of instructor. Detailed study of abstract models for the syntax of programming languages and information processing devices. Languages and their representation; grammars; finite automata and regular sets; context-free grammars and pushdown automata; Chomsky Hierarchy; closure properties of families of languages; syntax analysis. (On demand)

ITCS 6110. Topics in Programming Languages and Compilers. (3) Prerequisite: ITCS 5128. A continuation of material in ITCS 5128 with emphasis on advanced aspects of optimization, data flow analysis, and error discovery. (On demand)

ITCS 6111. Evolutionary Computation. (3) Prerequisite: ITCS 6114 or permission of instructor. General introduction to optimization problems. Optimization techniques: hill climbing, simulated annealing, evolution strategies, and genetic algorithms. Evolution programming techniques. (Even years, Spring) (Evenings)

ITCS 6112. Software System Design and Implementation. (3) Cross-listed as HCIP 6112 and ITIS 6112. Prerequisite: Graduate CCI Graduate standing or permission of instructor. Introduction to the techniques involved in the planning and implementation of large software systems. Emphasis on human interface aspects of systems. Planning software projects; software design process; top-down design; modular and structured design; management of software projects; testing of software; software documentation; choosing a language for a software system. (Fall, Spring) (Evenings)

ITCS 6114. Algorithms and Data Structures. (3) Cross-listed as ITCS 8114. Prerequisite: Graduate CCI Graduate standing or permission of instructor. Analyzing algorithms and problems; data abstraction and data structures; recursion and induction; time and space complexities; searching and sorting; search trees and tries; hashing; heaps; dynamic programming; graph algorithms; string matching; NP-complete problems. (Fall, Spring) (Evenings)

ITCS 6115. Advanced Topics in Algorithms and Data Structures. (3) Cross-listed as ITCS 8115. Prerequisite: ITCS 6114. Advanced study on selected topics such as NP-complete and NP-hard problems, approximation algorithms, computational geometry, multithreaded algorithms and parallel algorithms, string processing, number-theoretic algorithms, and cryptology. (On demand)

ITCS 6120. Computer Graphics. (3) Cross-listed as ITCS 8120. Prerequisite: Graduate CCI Graduate standing or permission of instructor. Introduction to the design and implementation of interactive graphics systems. Raster and vector display systems, I/O devices; graphics primitives and their attributes; raster algorithms and clipping; 2D/3D geometric transformations; 3D viewing and projections; hierarchical and procedural models; surface representation; color and lighting models; rendering algorithms; global illumination and texture mapping. (Fall)

ITCS 6124. Illustrative Visualization. (3) Cross-listed as ITCS 8124. Prerequisite: Graduate CCI Graduate standing or permission of the instructor. The state-of-the-art of illustrative visualization techniques, which transform large-scale, complex datasets to succinct, non-photorealistic visualization styles and at the same time preserve important data features. Topics include: 2D/3D stippling, interactive line drawings, animated visualization, non-photorealisitc rendering, design, and evaluation of illustrative visualization approaches. (Spring) (Evenings)

ITCS 6125. Virtual Environments. (3) Cross-listed as ITCS 8125. Prerequisite: Graduate CCI Graduate standing or permission of instructor. The current state of the art in the design and implementation of Virtual Environments. Topics include: position tracking, design of head-traced and head-mounted displays, stereoscopic display, presence in virtual environments, 3D user interface design, and applications of VEs. Previous experience in computer graphics or 3D game design is helpful but not required. (On demand)

ITCS 6126. Large Scale Information Visualization. (3) Cross-listed as ITCS 8126. Prerequisite: ITCS 4121 or ITCS 5121. Concept, theory, design principles, data processing techniques, and visual metaphors and interaction techniques for massive, multi-dimensional, multi-source, time-varying information exploration. (On demand)

ITCS 6127. Real-Time Rendering Engines. (3). Cross-listed as ITCS 8127. Prerequisite: ITCS 5120 or ITCS 6120. Advanced concepts and techniques employed in building real-time rendering systems that support a high level of realism as well as handle large geometric models. Topics include: modern graphics hardware, programmable shaders, shadow and environment mapping, image-based modeling and rendering, large data models (simplification, level of detail), high quality interactive rendering. (On demand)

ITCS 6128. 3D Display and Advanced Interfaces. (3) Cross-listed as ITCS 8128. Prerequisite: ITCS 4120 or ITCS 6120. The fundamentals of 3D display hardware and software technology. Topics include: human visual spatial perception of natural and synthetic 3D images, 3D display hardware, human computer interface algorithms for effective stereoscopic display, 3D display rendering techniques. (On demand)

ITCS 6130. Advanced Computer Graphics. (3) Cross-listed as ITCS 8130. Prerequisite: ITCS 6120 or permission of instructor. Implicit and parametric representation; cubic surfaces; advanced reflection models; global illumination models – ray tracing, radiosity; shadow algorithms, texture mapping; volumetric modeling and rendering techniques; animation; advanced modeling techniques; particle systems, fractals. (On demand)

ITCS 6132. Modeling and Analysis of Communication Networks. (3) Prerequisite: A course in communication networks or permission of instructor. The objective is to develop an understanding of modeling and analysis techniques for communication systems and networks. Enable the student to understand how to comparatively analyze the cost and performance impact of network architecture and protocol design decisions. Modeling techniques for analytical analysis, simulation based analysis, and measurement based analysis will be presented. Topics include: validation/verification of models, workload characterization, metric selection, presentation and interpretation of results. A semester long analysis project will be undertaken. (Even years, Fall)

ITCS 6134. Digital Image Processing. (3) Cross-listed as ECGR 6118. Prerequisite: Graduate CCI Graduate standing or permission of instructor. Image perception; image types/applications; image restoration and enhancement; edge/boundary detection; image transformation; image segmentation; statistical and syntactical pattern recognition; image information measures and compression. (Fall) (Evenings)

ITCS 6140. Data Visualization. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Emphasis on the methodology and application of data visualization to scientific and engineering data; data types and models; visualization methods; volume visualization; scalar, vector and tensor fields; multi-variate visualization; visualization systems and models; visualization applications; visualization software and hardware; research issues; and future trends. (On demand)

ITCS 6144. Operating Systems Design. (3) Prerequisite: ITCS 6114 or permission of instructor. Introduction to features of a large-scale operating system with emphasis on resource-sharing environments. Computer system organization; resource management; multiprogramming; multi-processing; file systems; virtual machine concepts; protection and efficiency. (On demand)

ITCS 6148. Advanced Object-Oriented Systems. (3) Cross-listed as ITIS 6148. Prerequisite: ITCS 6112 or ITIS 6112 permission of instructor. Issues related to the design, implementation, integration, and management of large object-oriented systems. Topics include: object models, object modeling, frameworks, persistent and distributed objects, and object-oriented databases. (On demand)

ITCS 6150. Intelligent Systems. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Introduces core ideas in Artificial Intelligence (AI). Heuristic versus algorithmic methods; problem solving; game playing and decision making; automatic theorem proving; pattern recognition; adaptive learning; projects to illustrate theoretical concepts. (Fall) (Evenings)

ITCS 6151. Intelligent Robotics. (3) Prerequisites: Graduate CCI Graduate standing and undergraduate course in linear algebra, or permission of instructor. General introduction to spatial descriptions and transformations, and manipulator position and motion. More study on robot planning, programming, sensing, vision, and CAD/CAM. (Odd years, Spring) (Evenings)

ITCS 6152. Robot Motion Planning. (3) Prerequisite: ITCS 6114 or permission of instructor. Introduction to algorithmic techniques for robot motion planning. Topics include: configuration space representations, roadmap methods, cell decomposition methods, potential field techniques, randomized path planning, collision detection, nonholonomic motion planning, multiple robot coordination, and manipulation planning. These techniques are motivated by applications of motion planning to mobile robots and robot manipulators, assembly planning, computer aided design, computer graphics, and bioinformatics. (On demand)

ITCS 6153. Neural Networks. (3) Prerequisites: ITCS 6114. Topics include: basic notions and models of artificial neural nets; single layer neural classifiers; multilayer one-way neural nets; single layer feedback networks; neural models of associative memory; self-organizing neural nets; translation between neural networks and knowledge bases; applications of neural networks. (On demand)

ITCS 6154. Heuristic Search. (3) Prerequisite: ITCS 6150. Heuristics and problem representation; heuristic-search procedures; formal properties and performance analysis of heuristic methods; game-searching strategies and heuristic programming; search with probabilities; knowledge-guided search. (On demand)

ITCS 6155. Knowledge-Based Systems. (3) Prerequisite: ITCS 6162 or permission of instructor. Knowledge systems; knowledge discovery; association rules; action rules, hierarchical classifiers, cascade classifiers, query languages and their semantics; cooperative and collaborative systems; ontology and metadata; flexible query answering; chase algorithms and data sanitization methods; decision support systems in medicine; and automatic indexing of music. (Spring)

ITCS 6156. Machine Learning. (3) Cross-listed as HCIP 6156. Prerequisite: ITCS 6150 or permission of instructor. Machine learning methods and techniques including: acquisition of declarative knowledge; organization of knowledge into new, more effective representations; development of new skills through instruction and practice; and discovery of new facts and theories through observation and experimentation. (Fall)

ITCS 6157. Visual Databases. (3) Prerequisite: ITCS 6160 or ITIS 6120 or permission of instructor. Topics include: representation of visual content, querying visual databases, content-based interactive browsing and navigation, system architecture, similarity models, indexing visual databases, data models and knowledge structures, image retrieval by similarity, and video retrieval by content. (Fall) (Evenings)

ITCS 6158. Natural Language Processing. (3) Prerequisite: ITCS 6150. Principles, methodologies, and programming methods of natural language processing including foundations of natural language understanding, namely: lexical, syntactic, and semantic analysis, discourse integration, and pragmatic and morphological analysis. (On demand)

ITCS 6159. Intelligent Tutoring Systems. (3) Prerequisite: Graduate CCI Graduate standing or permission of the instructor. Introduces the issues relevant to creating adaptive learning systems using artificial intelligence and includes a project to build a small Intelligent Tutoring System (ITS). Topics include: representation of knowledge and cognition, ITS design, adaptive user interfaces, design and evaluation of feedback, experimental methods, educational data mining, history of intelligent tutoring, tutor authoring, and issues for implementation. (On demand)

ITCS 6160. Database Systems. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. The modeling, programming, and implementation of database systems. Focuses on relational database systems, but may also address non-relational databases or other advanced topics. Topics include: (1) modeling: conceptual data modeling, ER diagram, relational data model, schema design and refinement; (2) programming: relational algebra and calculus, SQL, constraints, triggers, views; (3) implementation: data storage, indexing, query execution, query optimization, and transaction management; and (4) advanced: semi-structured data model, XML, and other emerging topics. (Fall, Spring) (Evenings)

ITCS 6161. Advanced Topics in Database Systems (3) Prerequisite: ITCS 6160 or ITIS 6120 or permission of instructor. Continuation of ITCS 6160. Topics include: deductive databases; semantic query processing; intelligent and cooperative query languages; distributed databases; active databases; heterogeneous databases, multimedia databases; data and knowledge interchange; multidatabase systems; very large databases. (On demand)

ITCS 6162. Knowledge Discovery in Databases. (3) Cross-listed as HCIP 6162 and ITIS 6162. Prerequisite: ITCS 6160 or ITIS 6120 or permission of instructor. The entire knowledge discovery process is covered in this course. Topics include: setting up a problem, data preprocessing and warehousing, data mining in search for knowledge, knowledge evaluation, visualization and application in decision making. A broad range of systems, such as OLAP, LERS, DatalogicR+, C4.5, AQ15, Forty-Niner, CN2, QRAS, and discretization algorithms are covered. (Fall, Spring) (Evenings)

ITCS 6163. Data Warehousing. (3) Cross-listed as HCIP 6163 and ITIS 6163. Prerequisite: ITCS 6160 or ITIS 6120 or permission of instructor. Topics include: use of data in discovery of knowledge and decision making; the limitations of relational databases and SQL queries; the warehouse data models: multidimensional, star, snowflake; architecture of a data warehouse and the process of warehouse construction; data consolidation from various sources; optimization; techniques for data transformation and knowledge extraction; relations with enterprise modeling. (Spring) (Evenings)

ITCS 6164. Design and Implementation of Online Management Information Systems. (3) Prerequisite: ITCS 6114 or permission of instructor. The fundamental concepts and philosophy of planning and implementing an online computer system. Characteristics of online systems; hardware requirements; modeling of online systems; performance measurement; language choice for online systems; organization techniques, security requirements; resource allocation. (On demand)

ITCS 6165. Coding and Information Theory. (3) Prerequisite: knowledge of probability theory or permission of instructor. Information theory; coding theory; Shannon’s theorem; Markov process; channel capacity; data transmission codes; error correcting codes; data compression; data encryption. (On demand)

ITCS 6166. Computer Communications and Networks. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Introduction to the concepts of communication networks; types of networks; wired and wireless media; communication architectures; network protocols; coding and modulation; multiplexing and multiple access; error and flow control; routing; Internet protocols; transport protocols; assignments include implementation and analysis of network protocols (Fall, Spring) (Evenings)

ITCS 6167. Advanced Networking Protocols. (3) Prerequisites: ITCS 6166 or ITCS 6168. Advanced networking concepts and protocols related to the design, implementation, integration, and management of networking and communication systems. Topics include: topology control protocols, ad hoc routing protocols, power management protocols, distributed data processing protocols for various networking systems (Internet, wireless mesh networks, ad hoc networks, sensor networks, peer-to-peer networks). (Spring) (Evenings)

ITCS 6168. Wireless Communication Networks. (3) Prerequisites: Graduate CCI Graduate standing in CS, SIS, ECE, or Optics and a prior course in networking, or permission of instructor. An overview of mobile systems and wireless networking technologies. Emphasis on resource management, routing and quality of service at the MAC and networking layers for mobile systems. Students undertake a semester long research project to survey the research literature and identify specific challenges for cellular telecommunications, wireless LANS, ad hoc networks, mesh networks or sensor networks. (Odd years, Fall)

ITCS 6170. Logic for Artificial Intelligence. (3) Prerequisite: ITCS 6150 or permission of instructor. Introduction to basic concepts of logic for artificial intelligence, including declarative knowledge, inference, resolution, non-monotonic reasoning, induction, reasoning with uncertain beliefs, distributed information systems, intelligent information systems, planning and intelligent-agent architecture. (On demand)

ITCS 6171. Logic Programming. (3) Prerequisite: ITCS 6150 or permission of instructor. Prolog programming language; programming techniques in Prolog; foundations of logic programming including computability of Horn clause logic, completeness of resolution principle, complexity of unification algorithms, and verification of logic programs; principles of implementing logic programming systems; selected topics from applications of logic programming to expert systems, intelligent database systems, and/or natural language processing. (On demand)

ITCS 6175. Computability and Complexity. (3) Prerequisite: ITCS 6114. Study of computability, unsolvability, computational complexity. Concept of effective computability; recursive functions; mathematical models of computation; universal Turing machines; unsolvable problems; time and space complexity of computations; NP-completeness problems; sub-recursive hierarchies. (On demand)

ITCS 6181. Switching and Automata Theory. (3) Prerequisite: permission of instructor. Topics include: sets, relations, lattices, Boolean algebras; functional decomposition and symmetric functions; threshold logic; multiple-valued logic; fault detection and fault tolerant design; finite state machines, incompletely specified machines, minimization; state identification and fault detection experiments; finite state recognizers. (On demand)

ITCS 6182. Computer System Architecture. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Survey of existing and proposed architectures; pipelined, dataflow, multi-bus and parallel system architecture, and interconnection network architectures. This course is project-based and requires written and verbal presentation of projects. (On demand)

ITCS 6183. Computer Arithmetic. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Principles, architecture, and design of fast two operand adders; multi-operand adders, standard multipliers, and dividers. Cellular array multipliers and dividers. Floating point processes, BCD, and excess three adders, multipliers, and dividers. (On demand)

ITCS 6184. Fault Tolerant Digital Systems. (3) Prerequisites: Graduate CCI Graduate standing and undergraduate computer architecture course, or permission of instructor. Design and analysis of fault tolerant digital systems including design techniques, qualitative and quantitative methods of evaluation, and available fault tolerant digital systems. (On demand)

ITCS 6186. Application Specifics System Design and Simulation. (3) Prerequisites: Graduate CCI Graduate standing and undergraduate computer architecture course, or permission of instructor. Project-oriented course on techniques and methodology in design and development of special purpose systems valuable for business, healthcare, and industrial community; course content includes system specifications, interface structure and data communication, interconnection architecture, and techniques for testing and debugging. (On demand)

ITCS 6190. Cloud Computing for Data Analysis. (3) Cross-listed as ITCS 8190. Prerequisites: ITCS 6114 or permission of instructor; familiarity with Java, Unix, Data Structures and Algorithms, Linear Algebra, and Probability and Statistics; good programming skills and a solid mathematical background. Introduction to the basic principles of cloud computing for data-intensive applications. Focuses on parallel computing using Google’s MapReduce paradigm on Linux clusters, and algorithms for large-scale data analysis applications in web search, information retrieval, computational advertising, and business and scientific data analysis. Students read and present research papers on these topics, and implement programming projects using Hadoop, an open source implementation of Google’s MapReduce technology, and related NoSQL technologies for analyzing unstructured data. (Fall)

ITCS 6211. Studio Lab I. (4) Cross-listed as ARCH 7211 and ITIS 6211. The Studio/Lab sequence situates students with varying backgrounds in an educational environment that allows them to develop and test innovative computational design tools, applications and settings. Each semester is jointly taught by faculty from the School of Architecture and the College of Computing and Informatics, and is organized around a topic chosen by the participating faculty. Each focused topic requires expertise both in spatial design and computational design, and results in prototypes and evaluation.

ITCS 6212. Studio Lab II. (4) Cross-listed as ARCH 7212 and ITIS 6212. The Studio/Lab sequence situates students with varying backgrounds in an educational environment that allows them to develop and test innovative computational design tools, applications and settings. Each semester is jointly taught by faculty from School of Architecture and the College of Computing and Informatics, and is organized around a topic chosen by the participating faculty. Each focused topic requires expertise both in spatial design and computational design, and results in prototypes and evaluation.

ITCS 6216. Introduction to Cognitive Science. (3) Cross-listed as PSYC 6216 and ITIS 6216. Multiple perspectives on the study of intelligent systems. Broad coverage of such topics as philosophy of mind; human memory processes; reasoning and problem solving; artificial intelligence; language processing (human and machine); neural structures and processes; and vision. Also included is participation in the cognitive science seminar. (Spring)

ITCS 6220. Pattern Recognition. (3) Prerequisite: Graduate CCI Graduate standing or permission of instructor. Topics include: pattern pre-processing and feature extraction (entropy minimization, orthogonal expansion, Fourier expansion, Karhunen-Loeve expansion, PCA); linear decision functions; orthogonal and non-orthogonal systems of functions; pattern classification by distance functions (Nearest Neighbor, K-means, ISODATA); pattern classification by likelihood functions (Bayesian classifiers, estimation of probability density function); trainable classifiers (LMSE, Perceptron, multi-layer perceptrons, fuzzy classifiers); stochastic processes; classification on categorical attributes. (On demand)

ITCS 6222. Biomedical Signal Processing. (3) Prerequisites: Graduate CCI Graduate standing. Topics include: fundamental techniques in processing, analysis, feature extraction, and classification of complex signals; origin and processing techniques for biomedical signals, including ECG, ENG, EEG, MEG, ERG, EMG, respiratory signals, blood sound, and pressure signals. (On demand)

ITCS 6224. Biomedical Image Processing. (3) Prerequisites: Graduate CCI Graduate standing and undergraduate course in linear algebra, or permission of instructor. Topics include: review of image processing and pattern recognition (2-D Fourier transforms, 2-D Wavelet transform, denoising of medical images); origin and processing of X-ray images; CT images; MRI images; ultrasonic images; PET images; thermal images; electrical impedance images; cross-registration between images of different source; stereotactic neurosurgery; stereotactic radiosurgery/radiotherapy; robot-assisted surgery. (On demand)

ITCS 6226. Bioinformatics. (3) Prerequisite: Graduate CCI Graduate standing. Topics include: brief review of molecular biology, proteins, and their classifications, DNA, RNA, and using microarrays and gene chips for sequencing; review of computational techniques for bioinformatics, expectation maximization, Bayesian classifiers, dynamic programming, information theory and entropy analysis, Markov chain models, and neural networks; computational techniques for local and multiple sequence alignment; application of Markov chains in finding genes; using information theory to estimate binding sites, start Codon prediction; RNA secondary structure prediction; computational techniques for protein function prediction; advanced signal processing techniques in feature extraction from protein sequences. (On demand)

ITCS 6228. Medical Informatics. (3) Cross-listed as HCIP 6228. Prerequisite: Graduate CCI Graduate standing or permission of instructor. Focuses on methods and techniques used in storage, communication, processing, analysis, integration, management, and distribution of medical information. Emphasizes the applications of telemedicine and intelligent computer-aided decision making systems in different medical and surgical systems. Discusses the computational methods to accept or reject a new drug or a new treatment for a given disease. (On demand)

ITCS 6265. Advanced Topics in Knowledge Discovery in Databases. (3) Prerequisite: ITCS 6162 or permission of instructor. Continuation and extension of ITCS 6162. Information visualization in data mining and knowledge discovery, predictive data mining, mining of multimedia sources, mining of unstructured data, distributed data mining, mining of Web data/information, mining complex types of data, mining of biotechnology data, applications, and trends in data mining. (On demand)

ITCS 6267. Intelligent Information Retrieval. (3) Prerequisite: ITCS 6114 or permission of instructor. Topics include: definition of the information retrieval problem, modeling the information retrieval problem, evaluation of information retrieval, query languages and operations, text processing, indexing and searching, parallel and distributed information retrieval, user interface and visualization, multimedia information retrieval, and information retrieval applications. (On demand)

ITCS 6490. Industrial Internship. (0-6) Cross-listed as HCIP 6490. Prerequisite: Completion of six hours of graduate coursework. Full- or part-time academic year internship in computer science areas complementary to the concentration area of studies and designed to allow theoretical and course-based practical learning to be applied in a supervised industrial experience. Each student’s internship program must be approved by the supervising faculty, the academic advisor, and the graduate program director. A mid-term report and a final report to be evaluated by the supervising faculty are required. Grading is on a Pass/Unsatisfactory basis by the supervising faculty in consultation with off-campus supervisor at the internship organization. The credit hours may not be part of the minimum 30 credit hours for graduation. May be repeated for credit. (On demand)

ITCS 6500. Complex Adaptive Systems. (3) Cross-listed as HCIP 6500, ITCS 8500, ITIS 6500, and ITIS 8500. Prerequisite: CCI Graduate standing or Permission of instructor. Complex adaptive systems (CAS) are networked (agents/part interact with their neighbors and, occasionally, distant agents), nonlinear (the whole is greater than the sum of its parts), adaptive (the system learns to change with its environment), open (new resources are being introduced into the environment), dynamic (the change is a norm), emergent (new, unplanned features of the system get introduced through the interaction of its parts/agents), and self-organizing (the parts organize themselves into a hierarchy of subsystems of various complexity). Ant colonies, networks of neurons, the immune system, the Internet, social institutions, organization of cities, and the global economy are a few examples where the behavior of the whole is much more complex than the behavior of the parts. Examples of current research efforts are provided. Topics include: Self-organization; emergent properties; learning; agents; localization affect; adaptive systems; nonlinear behavior; chaos; complexity. (On demand)

ITCS 6690. Computer Science Seminar. (3) Prerequisite: at least 9 graduate ITCS/ITIS hours and permission of department. Experience for the advanced M.S. student on current problems of computer design and application. (May be used by a student or small group of students to work with a professor on a topic of mutual interest. May be used to give a course on a topic announced in advance.) (On demand)

ITCS 6880. Individual Study. (1-3) Prerequisite: At least 9 graduate ITCS/ITIS hours and permission of department. With the direction of a faculty member, students plan and implement appropriate objectives and learning activities to develop specific areas of expertise through research, reading, and individual projects. May be repeated for credit. (On demand)

ITCS 6991. Computer Science Thesis. (1-3) Prerequisite: Permission of department. Graduate thesis research. Detailed exploration of an area of computer science chosen for thesis research. May be repeated for credit but no more than six hours may be applied to M.S. degree requirements. (Fall, Spring, Summer)