Undergraduate Catalog
2005 - 2007


 


 




 

 

 

 



 

 

 

 

 




 

 

 

COURSE DESCRIPTIONS

Computer Science 


Levels

1000     2000     3000     4000

 


ITCS 1101.  Introduction to Computer Concepts. (3)  Prerequisite or co-requisite:  MATH 1100 OR MATH 1101 OR MATH 1103 OR MATH 1120 OR MATH 1241.  Introductory course that gives an overview of computer hardware and software.  Primary emphasis is on productivity software (word processing, spreadsheet, and graphical presentation).  These applications are taught through a series of projects/assignments.  Aspects of Internet research are also covered.   (Fall, Spring, Summer)  (Internet)

ITCS 1102:  Advanced Internet Concepts. (3)  Prerequisite:  ITCS 1101.  This course is an advanced study of the Internet environment.  This course is designed for any student who is familiar with office productivity tools and a user of Internet technologies; it addresses advanced concepts of computer literacy.  Topics include:  concepts of website design and how to evaluate websites; proper use of synchronous and asynchronous communication tools (e.g. chat, email, IM…); issues of copyright and cyber-ethics; using the Internet to do research; and publishing via the Internet.  Other topics may be added to keep the content current and relevant.  Students will complete extensive Internet oriented projects to demonstrate mastery of the skills discussed in class.  (Fall, Spring) 

ITCS 1200.  Freshman Seminar  (3)  Crosslisted as ITIS 1200.  Prerequisite:  permission of department.  An introductory Information Technology course designed to assist students with the transition to college by acquainting them with the University’s resources and support, exploring opportunities in the IT field, and developing a strong sense of community within the College of IT and the University as a whole.  The development of learning skills, time management skills, and other life skills necessary for college success will be emphasized.  (Fall) 

ITCS 1214.  Introduction to Computer Science.  (3)  Prerequisite or co-requisite:  MATH 0900 or MATH 1100 or MATH 1103 or MATH 1120 or MATH 1241.  Introduction to algorithmic problem solving strategies and algorithm development; basic concepts and terminology of computers; study of data representation and number systems; use of computers to implement numerical and symbolic algorithms.  General programming concepts will be taught through the use of a high level language.  (Fall, Spring, Summer) (Evenings) (Internet) 

ITCS 1215.  Introduction to Computer Science II.  (3)  Prerequisite:  ITCS 1214 with a grade of C or better, or permission of the Department.  An advanced study of programming based on object oriented concepts.  Extends the fundamentals studied in ITCS 1214.  Includes a study of software design tools and advanced programming constructs, such as UML diagrams, decision tables, recursion, and dynamic storage allocation.  Concepts are taught be means of an in-depth study of an object oriented language.  (Fall, Spring, Summer) (Evenings) (Internet)

ITCS 2050.  Topics in Computer Science. (1-3)  Prerequisite:  Consent of the Department.  Topics in computer science selected to supplement the regular course offerings at the 2000 level.  (May be repeated for credit with the consent of the Department.  A student may register for multiple sections of the course with different topics in the same semester or in different semesters.)  (On demand) 

ITCS 2116.  C Programming.  (3)  Prerequisite: Knowledge of any other computer programming language or consent of the Department.  A study of the programming language C.  Data types, operators, functions, program structure, file I/O, storage classes, exceptions, concurrent programming, and the preprocessor.  (Summer) (Evenings) 

ITCS 2163. Introduction to File Processing. (3) Prerequisite: ITCS 1215. Concepts and techniques of structuring data on external storage devices; provides the foundation for applications of data structures and file processing techniques. (Fall, Summer) (Evenings) 

ITCS 2181.  Computer Logic and Design.  (3)  Prerequisite:  ITCS 1214 or consent of the Department.  Logic design; logic circuits; state diagrams; Karnaugh maps; memories; tristate devices; bus structures; and data control concepts.  (Fall, Spring, Summer) (Evenings)  

ITCS 2214.  Data Structures.  (3)  Prerequisite:  ITCS 1215 with a grade of C or better, or permission of the Department.  A study of the theory and implementation of abstract data types (ADTs) including stacks, queues, and both general purpose and specialized trees and graphs.  Programming emphasis is on the use of an object-oriented language to implement algorithms related to the various data structures studied including creation, searching, and traversal of ADTs.  (Fall, Spring, Summer) (Evenings) (Internet) 

ITCS 2215.  Design and Analysis of Algorithms. (3)  Prerequisites:  (MATH 1120 OR MATH 1241) AND MATH 1165 AND ITCS 2214.  Introduction to the design and analysis of algorithms.  Design techniques:  divide-and-conquer, greedy approach, dynamic programming.  Algorithm analysis:  asymptotic notation, recurrence relation, time space complexity and tradeoffs.  Study of sorting, searching, hashing, and graph algorithms.  (Fall, Spring, Summer) (Evenings) 

ITCS 2231.  Introduction to Business Programming.  (3)  Crosslisted as INFO 2231.  Pre/co-requisite: INFO 2130 or consent of the Department.  This course focuses on the examination of business problems, the extraction of the logic and business rules, and the relationship between business logic, programming constructs and technologies for decision support.  (Fall, Spring, Summer) 

ITCS 3050.  Topics in Computer Science. (1-3)  Prerequisite:  Consent of the Department.  Topics in computer science selected to supplement the regular course offerings at the 3000 level.  (May be repeated for credit with the consent of the Department.  A student may register for multiple sections of the course with different topics in the same semester or in different semesters.)  (On demand) 

ITCS 3110. Compiler Construction. (3) Prerequisites: ITCS 2215. Review of programming language structures, translation, loading, execution, and storage allocation. Compilation of simple expressions and statements. Organization of a compiler, including compile‑time and run‑time tables, lexical scan, syntax scan, object code generation, error diagnostics, object code optimization techniques, and overall design. Use of compiler writing languages and boot strapping. (Spring, Alternate years) (Evenings) 

ITCS 3112.  Design and Implementation of Object-Oriented Systems. (3)  Prerequisite: ITCS 2215.  In-depth exploration of object-oriented programming and system development.  Topics include:  evolution of object-oriented methodology; concept of the object-oriented approach; object-oriented programming languages; object-oriented analysis and design; the design of software for reuse; and incremental software development.  (Spring) (Evenings) 

ITCS 3123.  Introduction to Numerical Methods. (3)   Prerequisites:   ITCS 2214 AND (MATH 1241 or MATH 1120).  General concepts of scientific computing and their applications to such areas as non-linear equations, numerical integration, spline and polynomial interpolation, and initial value problems.  (On demand) 

ITCS 3134.  Digital Image Processing.  (3) Prerequisites: ITCS 2214, MATH 1242, and MATH 2164, with grades of C or better.  Overview of fundamentals of image acquisition, representation, enhancement, segmentation, reconstruction, analysis and recognition.  Image generation, viewing and perception; image transformations using the Fourier transform; spatial operations and filtering (spatial and frequency domain); image coding; lossless and lossy compression; boundary and region based segmentation; thresholding and classification; boundary and regional image descriptors; matching and neural networks; shape numbers.  (Fall) (Evenings) 

ITCS 3143. Operating Systems. (3) Prerequisite: ITCS 2214 or consent of the Department. Introduction to multiprogramming operating systems. Process synchronization and management of memory, devices, and files; performance evaluation. (Fall, Spring, Summer) (Evenings) 

ITCS 3145.  Introduction to Parallel Programming. (3)  Prerequisite:  ITCS 2214.  Programming parallel computers and networks of workstations, parallel strategies, algorithms, and applications.  (Fall) (Evenings) 

ITCS 3152. Symbolic Programming. (3) Prerequisite: ITCS 2214. Basic concepts of symbolic programming including selected topics in artificial intelligence, heuristic searching, symbolic algebra, language parsing, and theorem proving. (Fall) (Evenings) 

ITCS 3153. Introduction to Artificial Intelligence. (3) Prerequisite: ITCS 3152 or consent of the Department. Basic concepts of artificial intelligence. Topics include: defining the problem as a state space search, production systems; heuristic search; basic problem‑solving methods; game playing; knowledge representation using predicate logic, semantic nets, frames, and scripts; non‑monotonic reasoning, statistical and probabilistic reasoning. (Spring) (Evenings) 

ITCS 3155. Software Engineering. (3)  Crosslisted as IT IS 3155.  Prerequisite: ITCS 1215 or consent of the Department. The system development cycle is examined in detail from the aspects of software engineering. Current tools and techniques of systems design‑data dictionary, data flow diagrams, structured walkthroughs, and capacity planning will be taught and presented in conjunction with case studies and class problems. (Fall, Spring) (Evenings) 

ITCS 3160. Data Base Design and Implementation. (3) Prerequisite: ITCS 1215  or consent of the Department. Logical and physical database organization, data models, design issues, and secondary storage considerations. Emphasis on actual participation in the design and implementation of databases. (Fall, Spring) (Evenings) 

ITCS 3166. Distributed Computer Information Systems. (3) Prerequisite: ITCS 1215 or consent of the Department. Distributed vs. centralized processing. Data communications; speed; capacity, media, protocols. Network architectures. Distribution of data, computer power, and support. Evaluation of alternatives. Case studies. (Fall, Spring, Summer) (Evenings) 

ITCS 3170.  Applied Scientific Computing.  (3) Prerequisites:  MATH 2164 or its equivalent.  Topics include:  Concepts of continuous and discrete signals; continuous Fourier transform and its applications in multimedia processing; discrete Fourier transform and its applications in arts and multimedia processing; fundamentals of stochastic systems; fundamentals of ordinary differential equations; applications of  differential equations in modeling; wavelet transform and its applications in music and multimedia processing; fundamentals of fractals and their application in arts and science; classification and clustering.  (On demand) 

ITCS 3175.  Logic and Algorithms. (3)  Prerequisites:  ITCS 1214 and (MATH 1120 or MATH 1241).  Introduction to propositional calculus, predicate calculus, algorithms, logic functions, finite-state machines; logic design.  (On demand) 

ITCS 3182. Computer Organization and Architecture.  (3)  Prerequisite: ITCS 2181 or consent of the Department.  Machine level representation of data; von Neuman architecture; instruction sets and types; addressing types; assembly and machine language programming; control unit and microprogramming; alternate architectures. (Fall, Spring, Summer) (Evenings) 

ITCS 3183. Hardware System Design. (3) Prerequisite: ITCS 3182 or consent of the Department.  Design of hardwired control systems; processors and memory systems; application specific design; use of simulation tools.  Laboratory intensive course. (Spring) (Evenings) 

ITCS 3216. Introduction to Cognitive Science. (3)  Crosslisted as PSYC 3216.  Prerequisite: Consent of the Department.  Interdisciplinary introduction to the science of the mind.  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. (Spring, Alternate Years) 

ITCS 3590.  Computer Science Cooperative Education and 49ership Experience. (0)  This course is required of Co-op and 49ership students during the semester they are working.  Participating students pay a registration fee for transcript notation.  Assignments must be arranged and approved in advance.  Course may be repeated.  Evaluation is satisfactory/unsatisfactory.  For more information, contact the University Career Center.  (Fall, Spring, Summer) 

ITCS 3688. Computers and Their Impact on Society. (3) (W) Prerequisites: Junior standing and consent of the Department. A study of current topics (software piracy, hacking, professional conduct) in computer science and the impact of computers on various subsets (home, government, and education) of society. (Fall, Spring) (Evenings) 

ITCS 3690. Seminar. (1‑6) Prerequisite: Consent of the Department. May be repeated for credit. (On demand) 

ITCS 3691. Seminar. (1‑6) Prerequisite: Consent of the Department.  A continuation of ITCS 3690. May be repeated for credit. (On demand) 

ITCS 3695.  Computer Science Cooperative Education Seminar. (1)  Required of Co-op students immediately following each work assignment for presentation of reports on work done the prior semester.  (Fall, Spring, Summer) 

ITCS 3699. Senior Seminar. (1‑3) Prerequisites: Senior standing and consent of the Department. Each participant will prepare a lecture on a topic in computer science. Emphasis will be on communication of technical information as well as on content of the presentations. May be repeated for credit. (On demand) 

ITCS 4010.  Topics in Computer Science. (1-3)  Prerequisite:  Consent of the Department.  Topics in computer science selected to supplement the regular course offerings at the 4000 level.  (May be repeated for credit with the consent of the Department.  A student may register for multiple sections of the course with different topics in the same semester or in different semesters.)  (On demand) 

ITCS 4102. Programming Languages. (3) Prerequisite: ITCS 2215.  Formal definition of programming languages, including specification of syntax and semantics. Evolution of programming languages and language design principles. Structural organization, control structures, data structures and types, name visibility, binding times, parameter passing modes, subroutines, coroutines, and tasks. Functional programming, list processing, logic programming, object‑oriented programming systems. (Fall, Spring, Summer) (Evenings)

ITCS 4107.  Formal Languages and Automata. (3)  Prerequisite: MATH 1165.   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 4112. Software System Design and Implementation. (3)  Prerequisite: Consent of the 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 structural design; management of software projects; testing of software; software documentation; choosing a language for software system.(Fall, Spring) (Evenings) 

ITCS 4120.  Introduction to Computer Graphics.  (3)  Prerequisites:  ITCS 2214 and MATH 2164 or consent 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.  (Spring; Fall on demand)(Evenings) 

ITCS 4128.  Programming Languages and Compilers. (3)  Prerequisite:  ITCS 2214.  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 4130.  Computer Graphics. (3)  Prerequisite: Consent 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 4131. Simulation. (3) Prerequisites: MATH 3122 or consent of Department.  Emphasis on the design and derivation of mathematical models of dynamic systems; deterministic simulation; random events; non-deterministic simulation; discrete simulation; comparison and optimization. (On demand) 

ITCS 4141. 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.  (Fall, Spring) (Evenings) 

ITCS 4145.  Parallel Computing. (3)  Prerequisites:  ITCS 2214 and ITCS 3182.  Types of parallel computers, programming techniques for multiprocessor and multicomputer systems, parallel strategies, algorithms, and languages.  (Spring) (Alternate years) (Evenings) 

ITCS 4151. Intelligent Robotics. (3)  Prerequisites:  ITCS 2214 and MATH 2164.  General introduction to spatial descriptions and transformations, and manipulator position and motion.  More study on robot planning, programming, sensing, vision, and CAD/CAM.  (On demand) 

ITCS 4152.  Computer Vision. (3)  Prerequisites: ITCS 2215 and MATH 2164.  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.  (On demand) 

ITCS 4157. Computer-Aided Instruction. (3)  Prerequisite: Consent of the 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 4181.  Microcomputer Interfacing. (3) Prerequisite: ITCS 3182 or ECGR 3181 or permission of the Department. Signal conditioning, A/D conversion, noise, transmission line effects, signal processing, D/A conversion and serial/parallel interfaces. (Fall, Alternate years) (Evenings)

ITCS 4230.  Introduction to Game Design and Development.  (3)  Prerequisite:  ITCS 2215.  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 4231.  Advanced Game Design and Development.  (3)  Prerequisite:  ITCS 4230.  Advanced concepts and techniques for electronic game design and development.  This course is a project-centered course where students explore complex gameplay and interactivity.  The 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.

ITCS 4650.  Senior Project.  (3)  Prerequisites:  two ITCS/ITIS 3xxx/4xxx courses with a grade of C or better or consent of the Department.  An individual or group project in the teaching, theory, or application of computer science under the direction of a faculty member.  Projects must be approved by the Department before they can be initiated.  (Fall, Spring, Evenings) 

ITCS 4651.  Senior Project.  (3)  Prerequisite:  ITCS 4650.  A continuation of ITCS 4650.  (Fall, Spring, Evenings) 

ITCS 4681.  Senior Design I.  (3)  Prerequisites:  two ITCS/ITIS 3xxx/4xxx courses with a grade of C or better or consent of the Department.  An individual or group computer engineering design project under the direction of a faculty member.  Projects must be approved by the Department before they can be initiated.  (Fall, Spring, Evenings) 

ITCS 4682.  Design II.  (3)  Prerequisite:  ITCS 4681.  A continuation of ITCS 4681.  (Fall, Spring, Evenings) 

ITCS 4990.  Undergraduate Research. (3)  Prerequisite:  Permission of the Department.  This course consists of undergraduate research as part of a joint undergraduate/graduate research project using existing research laboratory facilities and materials.  Course may be repeated in subsequent terms for a maximum of 6 hours total.  (Fall, Spring)


 © 2005 UNC Charlotte | Privacy Statement  
Page Maintained by:
Academic Affairs

The University of North Carolina at Charlotte

9201 University City Blvd • Charlotte, NC 28223-0001 • (704) 687-2000


UNC Charlotte Home | A-Z Index | Calendars | Search | 49er Express | Quicklinks


Page Last Updated: 10/30/2006 02:42 PM