The request to revise MS program in Computer Science

Memo Date: 
Friday, January 7, 2011
To: 
College of Computing & Informatics
From: 
Clarence Greene, Faculty Governance Assistant
Approved On: December 17, 2010
Implementation Date: 2011

Note: Deletions are strikethroughs.  Insertions are underlined.


Catalog Copy

Master of Science In Computer Science

The objective of the computer science Master of Science program is to provide students advanced skills and knowledge in planning, design, implementation, testing, and management of computer systems and applications. These skills form a good foundation for doctoral study, research, or teaching in computer science.  These abilities are needed for those individuals holding related technical or managerial positions, as they provide the expertise to solve computer system problems in government, business, and industry. 

The active research areas in the Department of Computer Science include 3D HCI, Bioinformatics, Biomedical Imaging and Instrumentation, Biomedical Signal Processing, Communication Networks, Computer and Parallel Architecture, Computer Game Design, Computer Graphics, Computer System Engineering, Computer Vision, Data Mining, Evolutionary Computation, Flexible Query Processing, Grid Computing, Haptics, Heuristic Search, Image/Video Processing, Intelligent Systems, Knowledge Based Systems, Knowledge Discovery, Multimedia Databases, Music Information Retrieval, Neural Systems, Neural Networks, Robotics, Scientific and Information Visualization, Soft Computing, Virtual Reality, Vision, and Wireless Networks.

Additional Admission Requirements

In addition to the general requirements for admission to the Graduate School, students applying for this program are expected to have knowledge of two higher languages, data structures, algorithm analysis, computer organization and architecture, and two additional senior level computer science courses in systems and/or applications. Also, knowledge of calculus, discrete mathematics, and linear algebra are required. Students without all the above undergraduate prerequisites in computer science and mathematics may need additional coursework after entering the program, as determined by the Department.

A bachelor's degree in a high quality computer science program or satisfactory completion of the Advanced GRE in Computer Science may be substituted for some or all of the subject area admission requirements. Individuals who have worked at a high professional level in the computer industry may be able to substitute work experience for some of the specific subject area requirements, subject to review by the Department Graduate Committee.

Students must have an undergraduate grade point average of (or equivalent to) at least 2.8 (on a 4.0 point scale) and a junior/senior GPA of at least 3.0. A satisfactory score on the aptitude portion of the GRE is also required.

Early-Entry Program

Exceptional undergraduate students at UNC Charlotte may be accepted into the Master of Science in Computer Science and begin work toward a graduate degree before completion of the baccalaureate degree. The criteria for admission are the following:

  1. A student may be accepted into the Early-Entry Program at any time after completion of 75 semester hours of undergraduate work applicable to the appropriate degree, although it is expected that close to 90 hours will have been earned by the time the first graduate course is taken.
  2. The application process and all required documentation (e.g., test scores, transcripts, letters of recommendation) are the same for early entry students as for other applicants to the program. Admission must be recommended by the Department of Computer Science and approved by the Graduate School. The admission status will be “provisional” pending the award of the undergraduate degree.
  3. To be accepted into this program an undergraduate student must have at least a 3.2 overall GPA and a minimum 3.3 GPA in the Department of Computer Science.
  4. If an early‑entry student has not met the normal admission requirements of a 2.8 overall undergraduate GPA and a 3.0 junior‑senior GPA at the end of his/her baccalaureate degree, she/he will be dismissed from the graduate program.
  5. Students accepted into an early‑entry program will be subject to the same policies that pertain to other matriculated graduate students. Generally, it will be assumed that early‑entry students will finish their baccalaureate degrees before they complete 15 hours of graduate work.
  6. This early‑entry program is also accelerated in which up to 12 hours earned at the graduate level may be substituted for required undergraduate hours. In other words, up to 12 hours of graduate work may be "double counted" toward both the baccalaureate and graduate degrees.

Degree Requirements

The Master of Science program in Computer Science requires 30 graduate credit hours, which may optionally include 6 hours of thesis. At least 21 hours of the courses applied to the degree must be from the Department of Computer Science. 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.

I.  Core Requirement

All students must take two courses* from the Core Category:

  • ITCS 5102  Survey of  programming Languages
  • ITCS 5141  Computer Organization and Architecture–or-- ITCS 6182  Advanced Computer Architecture
  • ITCS 6112  Software System Design and Implementation
  • ITCS 6114  Algorithms & Data Structures

*The two courses taken to satisfy the core requirement must each be passed with an “A” or a “B” grade.

All students must take three courses* from the Core Category.  The following two courses are required:

  • ITCS 6112  Software System Design and Implementation
  • ITCS 6114  Algorithms & Data Structures
  • The third course may be selected from:
  • ITCS 5102  Survey of Programming Languages
  • ITCS 6182  Computer System Architecture

*The three courses taken to satisfy the core requirement must each be passed with an “A” or a “B” grade.

II.  Breadth Requirements

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

Course Categories:

  • Data Management

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 6265  Advanced Topics in Knowledge Discovery in Databases

  • Networked Systems

ITCS 5145  Parallel Computing

ITCS 5146  Grid Computing

ITCS 6132  Modeling & Analysis of Communication Networks

ITCS 6166  Computer Networks

ITCS 6167  Advanced  Networking Protocols

ITCS 6168  Wireless Communications

  • Visualization and Computer Graphics

ITCS 5120  Introduction to Computer Graphics

ITCS 5121  Information Visualization 

ITCS 5122  Visual Analytics

ITCS 5123  Visualization and Visual Communication

ITCS 6124  Illustrative Visualization

ITCS 6126  Large Scale Information Visualization

ITCS 6127  Real-time Rendering Engines

ITCS 6128  3D Display and Advanced Interfaces

ITCS 6140  Data Visualization

  • Intelligent & Interactive Systems

ITCS 5152  Computer Vision

ITCS 6050  Topics in Intelligent Systems

ITCS 6111  Evolutionary Computation

ITCS 6125  Virtual Environments

ITCS 6134  Digital Image Processing

ITCS 6150  Intelligent Systems

ITCS 6151  Intelligent Robotics

ITCS 6156  Machine Learning

ITCS 6158  Natural Language Processing

ITCS 6267  Intelligent Information Retrieval

ITCS 6500  Complex Adaptive Systems

  • Applications (includes all application area specific courses such as Medical Informatics, and Game Design)

ITCS 5133  Numerical Computation Methods & Analysis

ITCS 5230  Introduction to Game Design & Development

ITCS 5231  Advanced Game Design & Development

ITCS 5232  Game Design and Development Studio

ITCS 5235  Game Engine Construction

ITCS 5236  AI for Computer Games

ITCS 5237  Audio Processing for Entertainment Computing

ITCS 6153  Neural Networks

ITCS 6159  Intelligent Tutoring Systems

ITCS 6165  Coding and Information Theory

ITCS 6222  Biomedical Signal Processing

ITCS 6224  Biomedical Image Processing

ITCS 6226  Bioinformatics  

ITCS 6228  Medical Informatics

III.  Area of Concentration

Each student must take at least three related courses (9 hours) to form an area of concentration. The area of concentration may differ from the Course Categories; students are encouraged to have their areas of concentration aligned with faculty research areas. The three courses forming the student's area of concentration must have the written approval of the student's academic advisor. Only one breadth course can be included in the area of concentration courses. Core courses cannot be used in area of concentration. At least two of the three courses forming an area of concentration should be from the Department of Computer Science.  The three courses taken to satisfy the concentration requirement must each be passed with an “A” or a “B” grade. In addition to the nine hours of course work, a written study report on a subject in the area must be submitted to and be approved by the academic advisor to complete the concentration requirement.

Minimum Background Requirements for Admission

Applicants to MS program in Computer Science must have had a computing background equivalent to two years of undergraduate training in Computer Science, including at least an introductory course on programming, a course on data structures, and a course either in operating systems or computer architecture. In addition, background in Mathematics to include courses in Linear Algebra or Statistics, Discrete Mathematics, and at least one year of Calculus is also required. Students without sufficient background in Computer Science or Mathematics may be admitted to the Program but must complete background courses determined by the MS Program Director in the first year.

Assistantships

Financial assistance for qualified students is available on a competitive basis in the form of graduate teaching and research assistantships. Students that are awarded assistantships are expected to choose the thesis option. The deadline for graduate teaching assistantship applications is February 15 for the following academic year. For detailed and updated information, refer to the Computer Science website.

Minor in Operations Research

The Department of Computer Science participates in the program leading to an interdisciplinary graduate minor in Operations Research. See the Operations Research listing under the College of Liberal Arts & Sciences section of this Catalog for complete information and program requirements.

Courses In Computer Science

ITCS 5010.  Topics in Computer Science.  (3)  Prerequisite:  permission of department.  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: permission of department. 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: ITCS 2214 and MATH 2164 or permission of department. 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)Prerequisite: graduate standing.  Information visualization concepts, theories, design principles, popular techniques, evaluation methods, and information visualization applications.(Spring) (Evenings)

ITCS 5122. Visual Analytics. (3)Prerequisites:  any of STAT 1220, 1221, 1222, 2122, or 2223, or approval of the instructor. This course 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) (Evenings)

ITCS 5123. Visualization and Visual Communication. (3)Prerequisites: none.  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. (Spring) (Evenings)

ITCS 5128. Programming Languages and Compilers. (3)Prerequisite: permission of department. 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: ITCS 2214 and either MATH 1120 or MATH 1241. 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: ITCS 3182 or equivalent. 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)Prerequisites: ITCS 1215 and 3182 or permission of department. Types of parallel computers, programming techniques for multiprocessor and multicomputer systems, parallel strategies, algorithms, and languages.(Once every three semesters)

ITCS 5146. Grid Computing. (3)Prerequisite: ITCS 1215 or graduate standing.  Grid computing software components, standards, web services, security mechanisms, schedulers and resource brokers, workflow editors, grid portals, grid computing applications. (Once every three semesters)

ITCS 5152. Computer Vision. (3)Prerequisites: ITCS 1215 or MATH 2164, or permission of department. 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) (Evenings)

ITCS 5157. Computer-Aided Instruction. (3)Prerequisite: permission of department. 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 standing. This course explores the broad field of intellectual property and the many aspects related to computing. Topics covered 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 5181. Microcomputer Interfacing. (3)Prerequisite: ITCS 3182 or equivalent, or permission of the Department. 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:  ITCS 2215 or equivalent, or permission of the 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.  This course is a project-centered course where students explore complex gameplay and interactivity.  This course 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 class project. (Spring) (Evenings)

ITCS 5235. Game Engine Construction. (3) Prerequisite: ITCS 5120  or permission of department. 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)  Prerequisites: MATH 1242, MATH 2164, and ITCS 6114 or equivalents.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:  permission of department.  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: permission of department. Topics in intelligent systems selected to supplement the regular course offerings. May be repeated for credit as topics vary. (Spring, Even Years)

ITCS 6080. Topics in Computer Engineering. (3)Prerequisite: permission of department. Topics in computer engineering selected to supplement the regular course offerings. May be repeated for credit as topics vary.(On demand)

ITCS 6107. Formal Languages and Automata. (3)Prerequisites: one semester of discrete structures or permission of department. 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)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 department. 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 ITIS 6112.  Prerequisite: permission of department. 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)Prerequisite: full graduate standing. Introduction to techniques and structures used and useful in design of sophisticated software systems. Records; arrays; linked lists; queues; stacks; trees; graphs; storage management and garbage collection; recursive algorithms; searching and sorting; graph algorithms; time and space complexity. (Fall, Spring) (Evenings)

ITCS 6115. Advanced Topics in Algorithms and Data Structures. (3)Prerequisite: ITCS 6114. Continuation and extension of ITCS 6114. String matching; semi numerical algorithms; probabilistic algorithms; parallel algorithms; NP-completeness; computationally hard problems; approximation algorithms.(On demand)

ITCS 6120. Computer Graphics. (3)Prerequisites: full graduate standing or permission of department. 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.(On demand)

ITCS 6124. Illustrative Visualization. (3)Prerequisite: ITCS 4120 or ITCS 5120. This course focuses on advanced concepts and techniques related to the design, implementation, integration, and management of illustrative visualization and computer graphics. Topics include various advanced visualization topics: feature extraction, non-photorealistic rendering, point-based rendering, hardware-accelerated rendering, segmentation, image generation, animation, evaluation, design, and interaction. (Spring) (Evenings)

ITCS 6125.  Virtual Environments.  (3)  Prerequisite:  Graduate Standing.  This course will cover the current state of the art in the design and implementation of Virtual Environments.  Topics covered will 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)Prerequisite: ITCS 4121 or ITCS 5121 Information Visualization.  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). Prerequisite: ITCS 5120 or ITCS 6120. This course focuses on 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). Prerequisite: ITCS 4120 or ITCS 6120. The course covers 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)Prerequisite: ITCS 6120 or equivalent, or permission of department. 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 department. The objective of this course is to develop an understanding of modeling and analysis techniques for communication systems and networks. The intent is to 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. Concepts covered include validation/verification of models, workload characterization, metric selection, presentation and interpretation of results. A semester long analysis project will be undertaken.(Fall, Even years)

ITCS 6134. Digital Image Processing. (3)Cross-listed as ECGR 6118.  Prerequisite: full graduate standing or permission of department. 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: full graduate standing or permission of department. 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 department. 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 equivalent. This course focuses on 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: full graduate standing or permission of department. To introduce core ideas in 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: ITCS 1215 and MATH 2164, or permission of department. 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 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 department. Knowledge systems; knowledge discovery; association rules; query languages and operational semantics; decision systems; cooperative and collaborative systems; tree structured information systems; tree structured query languages; flexible query answering; chase algorithm based on rules; local and global ontologies; action rules; optimization problems for query answering systems. (Spring) (Evenings)

ITCS 6156. Machine Learning. (3)Prerequisite: ITCS 6150 or permission of department. 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, Odd years)

ITCS 6157. Visual Databases. (3)Prerequisites: ITCS6160 or equivalent. 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. (Even years, 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 standing or permission of the instructor.  This course 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: ITCS 6114 or permission of department. Introduction to principles of database design, and survey of alternative database organizations and structures. Logical database organization; schemas; subschemas; data description languages; hierarchical, network, and relational databases; database management systems; normal forms.(Fall, Spring) (Evenings)

ITCS 6161. Advanced Topics in Database Systems (3)Prerequisite: ITCS 6160 or equivalent. 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)Prerequisite: ITCS 6160 or permission of department. 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) (Evenings)

ITCS 6163. Data Warehousing. (3)Prerequisite: ITCS 6160 or equivalent. 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)Prerequisites: ITCS 6114 or permission of department. 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. 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)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) (Evenings).

ITCS 6167. Advanced Networking Protocols. (3)Prerequisites: ITCS 6166 or ITCS 6168. This course focuses on 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 standing in CS, SIS, ECE or Optics and a prior course in networking. The course provides an overview of mobile systems and wireless networking technologies. Emphasis will be on resource management, routing and quality of service at the MAC and networking layers for mobile systems. Students will 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. (Fall, Odd years)

ITCS 6170. Logic for Artificial Intelligence. (3)Prerequisite: ITCS 6150 or permission of department. 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 department. 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: permission of department. 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 department. 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.  Advanced Computer Architecture.  (3) Prerequisite:  ITCS 5141 or Computer Science Graduate Standing or permission of the Department.  Survey of existing and proposed architectures; pipelined, dataflow, and interconnection network architectures.  Impact of VLSI on architecture.  Computer System Architecture. (3) Prerequisite: ITCS 3181 or equivalent, Computer Science Graduate Standing, or permission of the Department. Survey of existing and proposed architectures; pipelined, dataflow, multi-bus and parallel system architecture, and interconnection network architectures. The course is project based that requires written and verbal presentation of projects.(On demand)

ITCS 6183. Computer Arithmetic. (3)Prerequisite: permission of department. Principles, architecture, and design of fast two operand adders; multioperand 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)Prerequisite: ITCS 5141. 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)Prerequisite: ITCS 5141 or equivalent or permission of department. 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 6220. Pattern Recognition. (3)Prerequisite: Graduate standing. 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 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 standing, and MATH 2164 or its equivalent. 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 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)Prerequisite: Graduate standing. This course focuses on methods and techniques used in storage, communication, processing, analysis, integration, management, and distribution of medical information. The course emphasizes the applications of telemedicine and intelligent computer-aided decision making systems in different medical and surgical systems. The course also 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)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 department. 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)  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 will be on “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 hours.  (On demand)

ITCS 6500.  Complex Adaptive Systems.  (3)  Cross-listed as ITCS 8500 and ITIS 6500/8500.  Prerequisite:  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.  This course will cover those and similar topics in an interactive manner.  Examples of our current research effort will be 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)Prerequisites: at least 18 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)Prerequisites: At least 18 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. Information Technology 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)

ITCS 7999. Master’s Degree Graduate Residency Credit. (1)See Department for Course Description. (Fall, Spring, Summer)

Also note PhD course also affected:

ITCS 8182.  Advanced Computer Architecture.  (3) Prerequisite:  ITCS 5141 or Computer Science Graduate Standing or permission of the Department.  Survey of existing and proposed architectures; pipelined, dataflow, and interconnection network architectures.  Impact of VLSI on architecture.  Computer System Architecture. (3) Prerequisite: ITCS 3181 or equivalent, Computer Science Graduate Standing, or permission of the Department. Survey of existing and proposed architectures; pipelined, dataflow, multi-bus and parallel system architecture, and interconnection network architectures. The course is project based that requires written and verbal presentation of projects.(On demand)