Computer Science
Computer
Science
Kennedy
Bldg 201
704-687-6374
http://www.cs.uncc.edu
Degree
M.S.
Coordinator
Dr.
Zbigniew W. Ras
Graduate
Faculty
C. Michael Allen, Professor
Keh-Hsun Chen, Associate Professor
Teresa Dahlberg, Assistant
Professor
Essam El-Kwae, Assistant Professor
Jianping Fan, Assistant Professor
Junsheng Long, Associate Professor
Zbigniew Michalewicz, Professor
Taghi Mostafavi, Associate
Professor
Kayvan Najarian, Assistant
Professor
Zbigniew Ras, Professor
Min Shin, Assistant Professor
K.R. Subramanian, Associate Professor
Barry Wilkinson, Professor
Xintao Wu, Assistant Professor
Jing Xiao, Associate Professor
Adjuncts
Alicja Wieczorkowska, Assistant
Professor
Program
of Study
The
objective of the computer science program leading to the Master of Science
degree is to provide advanced skills and knowledge in
the planning, design, implementation, testing and management of computer
systems. These skills are necessary for dealing with the problems encountered
in business, industry, and governmental computer applications; for holding
administrative or engineering positions requiring the planning and
implementation of computer systems; for teaching computer science; and/or
further study in computer science, in particular, for doctoral study.
The
primary areas of interest are: biomedical information processing, computer
networks and communication, computational intelligence, decision support
systems, geometric reasoning, modeling and computation, graphics, multi-media
and visualization, image processing and computer vision, intelligent
information systems, knowledge discovery and data mining, parallel and
distributed computing, robotic systems, and software engineering.
Minor
in Operations Research
The
Department of Computer Science participates in the program leading to an
interdisciplinary graduate minor in Operations Research. See Operations
Research Section of this Catalog for complete information and program
requirements.
Additional Admission Requirements
In addition
to the general requirements for admission to the graduate school, students
applying for this program must have current working and academic knowledge of
two higher languages (including at least one procedural language), algorithm
analysis, and data structures; also a senior level computer science course in
computer organization and architecture and two additional senior level computer
science courses in systems and/or applications. Students with bachelor's
degrees outside of science and/or engineering may need additional subject area
coursework, 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.
Qualified
students who do not meet all of the above requirements may be considered for
conditional admission and maybe required to take additional approved related
courses. In this case the student must make grade of B or better in all of the
suggested courses, in order to be fully admitted to the program.
Degree
Requirements
Candidates
for the Master of Science in Computer Science have the option of either:
1) completing 24 semester hours of
course work and writing a thesis for six hours of credit; or
2) completing 30 hours of course work
and completing a project.
Either
option can be completed on a full or part-time basis.
All
students will complete 6 hours of course work from an approved list of courses
(3 hours in systems and 3 hours in theory); further, students, with approval of
his or her academic advisor, will also complete 9 hours of course work towards
an approved concentration of computer science, and an additional 9 hours
(thesis option) or 15 hours (project option) of advanced technical elective
coursework, to meet program requirements.
A maximum
of six semester hours of graduate credit may be transferred from other
institutions.
Assistantships
Financial
assistance for qualified students is available on a competitive basis in the
form of graduate teaching and research assistantships. Students that awarded
assistantships are expected to choose the thesis option. The deadline for
graduate teaching assistantship applications is March 31 for the following
academic year. For
detailed and updated information refer to the Computer Science Website.
All course descriptions follow the
Certificate section.
Certificate
Advanced Databases and Knowledge
Discovery
Program
of Study
The
purpose of this certificate is to provide graduate students with the
opportunity to reach a demonstrated level of competence in the areas of
databases and knowledge discovery. Course-work towards this graduate
certificate can be used for credit towards the MS degree in Computer Science.
However, its primary objective is to provide a well-defined target for students
who want to advance their knowledge of modern databases and knowledge discovery
techniques but do not necessarily wish to complete all requirements for the
M.S. degree in Computer Science. The certificate may be pursued concurrently
with any of the graduate degree programs at UNC Charlotte.
Additional Admission Requirements
This
certificate program is open to all students who hold a BS degree in any
scientific, engineering or business discipline and either:
1) are enrolled and in good standing
in a graduate degree program at UNC Charlotte, or
2) have GPA above 2.8 overall and 3.0
Jr/Sr.
Applicants
are required to submit a brief (one-to-two page) statement of educational and
work experience in the computing field. Application for the ADKD certificate
program is made through the Office of Graduate Admissions.
Completion
Requirements
The
certificate will be awarded upon completion of five graduate level courses (15
credits) in the area of knowledge discovery and databases. A cumulative GPA of
3.0 will be required and at most one course with a grade of C may be allowed
towards the certificate.
To obtain
the certificate a student needs to take: ITCS 6150 or ITCS 6114, ITCS 6160,
ITCS 6162, and two additional courses.
For detailed and updated
information refer to the Computer Science Website.
Courses In Computer
Science
ITCS 5102. Survey of Programming
Languages. (3)
Prerequisite: consent of the 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++,
ITCS 5128. Programming Languages and
Compilers. (3)
Prerequisite: consent of the 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 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. (Even, Fall)(Spring) (Evenings)
ITCS 5145. Parallel Computing. (3) Prerequisites: ITCS 1215 and 3182
or consent of department. Types of parallel computers, programming techniques
for multiprocessor and multicomputer systems, parallel strategies, algorithms,
and languages. (Even, Spring) (Evenings)
ITCS 5151. Intelligent Robotics. (3) Prerequisites: ITCS 1215 and MATH
2164, or consent of the 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,
Spring) (Evenings)
ITCS 5152. Computer Vision. (3) Prerequisites: ITCS 1215 or MATH
2164, or consent of the 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, Spring) (Evenings)
ITCS 5157. 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 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 6010. Topics in Computer
Science. (3)
Prerequisite: consent of the department. Topics in computer science selected to
supplement the regular course offerings. May be repeated for credit as topics
vary. (On demand)
ITCS 6050. Topics in Intelligent
Systems. (3)
Prerequisite: consent of the department. Topics in intelligent systems selected
to supplement the regular course offerings. May be repeated for credit as
topics vary. (On demand)
ITCS 6080. Topics in Computer
Engineering. (3)
Prerequisite: consent of the 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 consent of the
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 consent of the department. General introduction to optimization
problems. Optimization techniques: hill climbing, simulated annealing,
evolution strategies, and genetic algorithms. Evolution programming techniques.
(On demand)
ITCS 6112. 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 structured design; management of
software projects; testing of software; software documentation; choosing a
language for software system. This course is cross-listed with ITIS 6112
(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. (Odd, 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 consent of the 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. (Fall) (Evenings)
ITCS 6130. Advanced Computer
Graphics. (3)
Prerequisite: ITCS 6120 or equivalent, or consent of the 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 consent of the 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. (On demand)
ITCS 6134. Digital Image Processing.
(3) Prerequisite: full
graduate standing or consent of the department. Cross-listed as ECGR 6118.
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. (Even, Spring) (Evenings)
ITCS 6140. Data Visualization. (3) Prerequisite: Full graduate
standing or consent of the 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. (Odd, Spring)(Evenings)
ITCS 6144. Operating Systems Design.
(3) Prerequisite: ITCS
6114 or consent of the 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. (Even,
Spring) (Evenings)
ITCS 6148. Advanced Object-Oriented
Systems. (3)
Prerequisites: 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.
This course is cross-listed with ITIS 6148 (Spring)(Alternate
Years)(Evenings)
ITCS 6150. Intelligent Systems. (3) Prerequisites: full graduate
standing or consent of the 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 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. (Even, Fall) (Evenings)
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 consent of the 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. (Even, Spring) (Evenings)
ITCS 6156. Machine Learning. (3) Prerequisite: ITCS 6150 or consent
of the 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. (On demand)
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, 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 6160. Database Systems. (3) Prerequisite: ITCS 6114 or consent
of the 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. (Odd, Spring)(Evenings)
ITCS 6162. Knowledge Discovery in
Databases. (3)
Prerequisite: ITCS 6160 or consent of the 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 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. (Odd, Spring) (Evenings)
ITCS 6164. Design and Implementation
of On-line Management Information Systems. (3) Prerequisites: ITCS 6114 or consent of the department. The
fundamental concepts and philosophy of planning and implementing an on-line
computer system. Characteristics of on-line systems; hardware requirements;
modeling of on-line systems; performance measurement; language choice for
on-line 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. (Odd,
Fall)(Evenings)
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 6170. Logic for Artificial
Intelligence. (3)
Prerequisite: ITCS 6150 or consent of the 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 consent
of the 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: consent of the 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: consent of the 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. Survey of
existing and proposed architectures; pipelined, dataflow, restructurable, and
supercomputer architectures. Multicomputer and multi- processor architectures.
Impact of VLSI on architecture. (Odd, Fall) (Evenings)
ITCS 6183. Computer Arithmetic. (3) Prerequisite: consent of the
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 consent of the 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 include
system specifications, interface structure and data communication,
interconnection architecture, and techniques for testing and debugging. (Fall)
(Even years)
ITCS 6220. Pattern Recognition. (3) Prerequisites: 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. (Odd, Fall)
(Evenings)
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. (Odd,
Spring) (Evenings)
ITCS 6267. Intelligent Information Retrieval. (3) Prerequisites: ITCS 6114 or
consent of the 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. (Even, Spring) (Evenings)
ITCS 6690. Computer Science Seminar. (3) Prerequisites: at least 18
graduate ITCS/ITIS hours and consent of the 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 consent of the 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 7991. Computer Science Thesis. (1-3) Prerequisite: consent of the
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) (Evenings)
ITCS 7999. Master's Degree Graduate Residence. (1) See Department for Course
Description. (Fall, Spring, Summer)(Evenings)