The request to revise the prerequisites for Computer Science Graduate courses

Date: May 20, 2013
To: College of Computing & Informatics
From: Office of Academic Affairs
Approved On: May 7, 2013
Approved by: Graduate Council
Implementation Date: Spring 2014


Note: Deletions are strikethroughs. Insertions are underlined.


Catalog Copy

ITCS 5010. Topics in Computer Science. (3) Prerequisite: Graduate standing or permission of the instructorpermission 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: Graduate Standing or permission of the instructorITCS 2215 or 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: Graduate Standing or permission of the instructorITCS 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 or permission of the instructorGraduate standing. Information visualization concepts, theories, design principles, popular techniques, evaluation methods, and information visualization applications. (Spring) (Evenings)

ITCS 5122. Visual Analytics. (3) Prerequisites: Graduate Standing and undergraduate course in statistics, or permission of the instructorSTAT 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) (Evenings)

ITCS 5123. Visualization and Visual Communication. (3) Prerequisites: Graduate Standing or permission of the instructornone. 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: Graduate Standing or permission of the instructorpermission 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: Graduate Standing or permission of the instructorITCS 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: Graduate Standing and undergraduate computer architecture course, or permission of the instructorITCS 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: Graduate Standing or permission of the instructorITCS 2214 and ITCS 3181 or 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: Graduate Standing or permission of the instructorgraduate 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: Graduate Standing and undergraduate course in linear algebra, or permission of the instructorITCS 2215 and 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: Graduate Standing or permission of the instructorPermission 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. 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: Full gGraduate standing or permission of the departmentinstructor. 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) Prerequisites: Graduate Standing and undergraduate computer architecture course, or permission of the instructorITCS 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: Graduate Standing or permission of the instructorITCS 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. 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. (Spring) (Evenings)

ITCS 5235. Game Engine Construction. (3) Prerequisite: ITCS 5120 4120 or ITCS 6120 or permission of the instructordepartment. 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 the 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 equivalentspermission of the 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 Standing or permission of the instructorpermission 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: Graduate Standing or permission of the instructorpermission 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: Graduate Standing or permission of the instructorpermission 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: Graduate Standing or permission of the instructorone 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) 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 the instructordepartment. 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 Standing or permission of the instructorpermission 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: Graduate Standing or permission of the instructorfull graduate standing. Analyzing algorithms and problems