
Undergraduate
CSCI 1100. Algorithmic Languages I. (P) (3) Prerequisite:
MATH 1100, 1101 or 1103 with a grade of C or better, or
placement by the department. Basic concepts and terminology of
computers, problem solving with computers, programming techniques
required to formulate and program various numerical and non-numerical
algorithms, through study of higher-level programming languages,
such as PASCAL (CSCI 1100P) or FORTRAN (CSCI 1100). Computer Science
majors may not receive credit for CSCI 1100. (On demand)
CSCI 1101. Introduction to Computer Concepts. (3) Prerequisite
or corequisite: MATH 1100, 1101, or 1103. Introductory course
for non-CSCI majors that covers various aspects of computer hardware
and software, and surveys the application of computers in different
fields-business, medicine, engineering, government, education.
PC-software (word processing, spreadsheets, and databases) is introduced
by several projects/assignments. (This course is not the equivalent
of CSCI 1100 as a prerequisite for other computer science courses.)
May not be taken while a computer science major (or minor). (Fall,
Spring, Summer) (Evenings)
CSCI 1201. Introduction to Computing I. (P) (2) Prerequisites:
MATH 1100, 1101, or 1103 with a grade of C or better, or consent
of the department. Corequisite: CSCI 1201L. Basic concepts and
terminology of computers; introduction to algorithmic problem
solving strategies; basic data structures; data and procedural
abstraction; and numerical and symbolic computing. (Fall, Spring,
Summer)(Evenings)
CSCI 1201L. Computer Lab I (P) (1) Corequisite: CSCI 1201.
Laboratory exercises dealing with program mechanics; algorithm
development; and the use of computers in problem solving. One
laboratory period of two hours per week. (Fall, Spring, Summer)(Evenings)
CSCI 1202. Introduction to Computing II. (2) Prerequisite:
CSCI 1201 with a grade of C or better or consent of the department.
Corequisite: CSCI 1202L. Extension of topics introduced in
CSCI 1201 with studies of algorithm complexity; searching and
sorting techniques; dynamic data structures; software development
methodologies; and the computer science profession. (Fall,
Spring, Summer) (Evenings)
CSCI 1202L. Computer Lab II (1) Prerequisite:
CSCI
1201L. Corequisite: CSCI 1202. Laboratory exercises dealing with
complexity; analysis of algorithms; software development; and
dynamic data structures. One laboratory period two hours per week.
(Fall, Spring, Summer) (Evenings)
CSCI 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.)
(On demand)
CSCI 2111. Beginning Structured COBOL. (3) Prerequisite:
CSCI 1201 or INFO 2130 with a grade of C or better, or
consent of the department. A study of COBOL and its use in file
manipulations, including structures, sorting, blocks, accessing
of files, and transaction processing. Uses of file systems will
be studied. (Fall, Spring, Summer) (Evenings)
CSCI 2112. Advanced Structured COBOL. (3) Prerequisites:
CSCI 2111 or consent of the department. A continuation of the
study of COBOL and its use in developing application programs
and systems of programs. Emphasis on the development of programs
to run in the interactive environment or batch programs in support
of online processing. (Fall, Spring, Summer) (Evenings)
CSCI 2113. Procedure-Oriented Programming in PL/I. (3)
Prerequisite:
CSCI 1201 with a grade of C or better, or consent of the
department. A study of the programming language PL/I and the principles
of procedure-oriented programming. Block structure, data elements,
stream and record I/O, dynamic program structure, compile time
facilities in PL/I. (On demand)
CSCI 2116. C Programming. (3) Prerequisite: CSCI 1201 with
a grade of C or better or consent of the department. A
study of the programming language C. Data types, operators, functions,
program structure and storage classes, exceptions, concurrent
programming, preprocessor. (On demand)
CSCI 2123. Introduction to Numerical Methods. (3) Prerequisites:
CSCI 1201 and MATH 1142. 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. (Fall, Summer)(Evenings)
CSCI 2140. Assembly Language, Machines, Systems. (3) Prerequisite:
CSCI 1201 with a grade of C or better. General principles
of assembly languages and assembly language programming. Computer
structure, addressing techniques, internal representations, assembly
systems. (On demand)
CSCI 2141. Introduction to Systems Programming. (3) Prerequisite:
CSCI 2140 with a grade of C or better. Advanced assembly
language concepts, use and management of macro and subroutine
libraries, debugging techniques, program segmentation, parameter
passing, file access and control programming, device drivers and
interrupt handlers, reentrant coding, coroutines. (On demand)
CSCI 2161. Data Structures. (3) Prerequisites: CSCI 1201
with a grade of C or better, and knowledge of two higher-level
languages. Stacks, queues, arrays, strings, lists, trees, and
graphs. Applications to recursion, garbage collection, storage
compaction, tree traversals, accessing of information, design
and analysis of algorithms. (On demand)
CSCI 2163. Introduction to File Processing. (3) Prerequisites:
knowledge of a high-level language which supports random access
file methods and CSCI 1202. Concepts and techniques of structuring
data on external storage devices; and to provide the foundation
for applications of data structures and file processing techniques.
(Fall, Summer) (Evenings)
CSCI 2170. Information Storage and Retrieval. (3) Prerequisite:
CSCI 1202. Introduction to the concepts, principles, and skills
of information science including tools for the analysis, design,
implementation, and evaluation of information systems and information
storage. (Spring, Summer)(Evenings)
CSCI 2175. Logic and Algorithms. (3) Prerequisites: CSCI
1201 and MATH 1141. An introduction to propositional calculus,
predicate calculus, algorithms, logic functions; finite-state
machines; Turing machines, computability. (Spring, Summer)
(Evenings)
CSCI 2215. Design and Analysis of Algorithms. (3) Prerequisite:
CSCI 1202 with a grade of C or better. Techniques and tools for
the development of correct algorithms. Structured and modular
programming efficiency and correctness, testing recursion, complexity,
and heuristics. (Fall, Evenings)
CSCI 3050. Topics in Computer Science. (1-3) Prerequisite:
consent of the department. Topics in computer science at the upper-division
level. May be repeated for credit as topics vary with the consent
of the department. (On demand)
CSCI 3102. Programming Languages. (3) Prerequisite: CSCI
1202. 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)
CSCI 3106. Structured Systems Analysis and Design. (3)
Prerequisite: CSCI 1202 or consent of the department. Structured
systems development. Strategies and techniques of structured analysis
and structured design to produce logical methodologies for dealing
with complexity in the development of information systems. (Fall,
Spring, Summer) (Evenings)
CSCI 3110. Compiler Construction. (3) Prerequisites: CSCI
1202 and 3102. 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)
CSCI 3112. Design and implementation of Object-oriented Systems.
(3) Prerequisite: CSCI 3106. Introduction to the basic paradigm
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)
CSCI 3120. Introduction to Computer Graphics. (3) Prerequisites:
CSCI 1202 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. (Fall) (Evenings)
CSCI 3130. Human-Computer Interaction. (3) Prerequisite:
CSCI 2163 or 2170. Concepts of the design of the human-machine
environment, with special emphasis on human-computer interaction
and how people acquire, store, and use data from the environment
and from computers. Topics include: analysis, creation and improvement
of equipment and environment to make them compatible with human
capabilities and expectation; analysis of existing equipment with
respect to user usability and interfacing capabilities. (Fall,
Alternate years) (Evenings)
CSCI 3131. Human and Computer Information Processing. (3)
Prerequisite: CSCI 2163 or 2170. Overview of methods people use
to acquire, store, and use the data they receive from the environment
and their implementation of computers. Topics include: perception,
pattern recognition, attention, memory, knowledge representation,
language, and problem solving. (On demand)
CSCI 3132. Information Systems. (3) Prerequisite: CSCI
2163 or 2170. Analysis, design, implementation, and evaluation
of information systems. Topics include: techniques of manipulating
data; behavioral component of dealing with the user and integration
of technology, procedures, and people. (On demand)
CSCI 3134. Text and Image Processing. (3) Prerequisite:
CSCI 2163 or 2170. Overview of basic techniques for storage and
retrieval of textual and image data. Topics include: document
databases; text analysis and automatic indexing; pictorial data
representation and manipulation algorithms; managing text, facts,
and pictorial data in a mixed database. Review of specific applications
such as hypertext, bibliographic information systems, and medical,
and geographical database systems. (Fall, Alternate years)
(Evenings)
CSCI 3141. Computer Organization. (3) Prerequisite: CSCI
2140 with a grade of C or better, or consent of the department.
Basic digital components, data representations, machine control
flow, accessing, transfer and I/O functions. Introduction to multilevel
machines, micro programming concepts, survey of various computer
architectures. (On demand)
CSCI 3143. Operating Systems. (3) Prerequisite: CSCI 3141
or CPGR 3182. Introduction to multiprogramming operating systems.
Process synchronization and management of memory, devices, and
files; performance evaluation. (Fall, Spring) (Evenings)
CSCI 3152. Symbolic Programming. (3) Prerequisite: CSCI
1202. Basic concepts of symbolic programming including selected
topics in artificial intelligence, heuristic searching, symbolic
algebra, language parsing, and theorem proving. (Fall)
(Evenings)
CSCI 3153. Introduction to Artificial Intelligence. (3)
Prerequisite: CSCI 3152. 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)
CSCI 3155. Software Engineering. (3) Prerequisite: CSCI
3106 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)
CSCI 3160. Data Base Design and Implementation. (3) Prerequisite:
CSCI 1202 with a grade of C or better. 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)
CSCI 3166. Distributed Computer Information Systems. (3)
Prerequisite: knowledge of a high level language which supports
random access file methods 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)
CSCI 3650. Senior Project. (3) Prerequisites: senior standing,
and two CSCI 31xx/41xx 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)
CSCI 3651. Senior Project. (3) Prerequisite: CSCI 3650.
A continuation of CSCI 3650. (Fall, Spring) (Evenings)
CSCI 3688. Computers and Their Impact on Society. (VW) (3)
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, education) of society. (Fall, Spring,
Summer) (Evenings)
CSCI 3690. Seminar. (1-6) Prerequisite: consent of the department.
May be repeated for credit.(On demand)
CSCI 3691. Seminar. (1-6) Prerequisite: consent of the department.
A continuation of CSCI 3690. May be repeated for credit. (On
demand)
CSCI 3695. Computer Science Cooperative Education Seminar.
(1) Required of Co-op students during semester immediately
following each work assignment for presentation of reports on
work done the prior semester. May be repeated for credit. (Fall,
Spring, Summer)
CSCI 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)
Additional work required for graduate credit.
CSCI 40XX. Topics in Computer Science. (3) (3G) (On
demand)
CSCI 4170. Project Management. (3)(3G) Prerequisite: CSCI
3155 or 3106, or consent of department. Classical and matrix organization
techniques for project management. The system development cycle.
Project control: major documents and milestones; phases, functions,
and key documents. Impact of project size and project subject
on techniques and procedures. (Spring) (Alternate years)
CSCI 50XX. Topics in Computer Science. (3) (3G) (On
demand)
CSCI 5102. Survey of Programming Languages. (3) (3G) 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++, 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) (Evenings)
CSCI 5110. Programming Languages and Compilers. (3) (3G)
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. (Spring) (Alternate years)
CSCI 5112. Software System Design and Implementation. (3) (3G)
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. (Fall) (Spring) (Evenings)
CSCI 5130. Computer Graphics--Design of Interactive Systems.
(3) (3G) Prerequisite: consent of the department. Introduction
to design and implementation of computer graphics with emphasis
on interactive systems. Output devices/plotters, microfilm, CRT
tubes; input devices/digitizers, joy sticks, keyboards, light
pens; display of information/graphs, flow charts, histograms;
transformations, and translations; projections; special features/blinking,
highlighting, reverse video, protected fields. (Fall) (Alternate
years)
CSCI 5131. Simulation. (3) (3G) Prerequisites: CSCI 1100P
or 1201 and its lab, and 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)
CSCI 5150. Artificial Intelligence. (3) (3G) Prerequisites:
CSCI 2175 and 2161, or consent 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) (Alternate years)
CSCI 5151. Intelligent Robotics. (3) (3G) Prerequisites:
CSCI 2161 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. (Fall) (Alternate
years)
CSCI 5152. Computer Vision. (3) (3G) Prerequisites: CSCI
2161 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.
(Fall) (Alternate years)
CSCI 5156. Computer-Aided Instruction. (3) (3G) Prerequisite:
consent of the department. History of CAI; study of current CAI
systems; development of manmachine dialogue; programming tools
for CAI; information structures for computer-oriented learning.
Advantages/disadvantages/costs of CAI. (On demand)
CSCI 5165. Coding and Information Theory. (3) (3G) 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)
CSCI 5170. Formal Languages and Automata. (3) (3G) 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)
CSCI 5171. Logic Programming. (3) (3G) Prerequisite: CSCI
2175 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)
CSCI 60XX. Topics in Computer Science. (3G) Prerequisite:
consent of department. Exposure to current research and literature.
Detailed exploration of main theme or a collection of related
topics which may vary from term to term. (On demand)
CSCI 605X. Advanced Topics in Artificial Intelligence. (3G)
Prerequisite: CSCI 5150 or consent of the department. A selected
topic in artificial intelligence, such as machine learning, computer
vision, heuristic search, natural language processing. (May be
repeated for credit as topics vary and with the approval of the
department.) (On demand)
CSCI 6110. Advanced Topics in Programming Languages and Compilers.
(3G) A continuation of material in CSCI 5110 with emphasis
on advanced aspects of optimization, data flow analysis, and error
discovery. (On demand)
CSCI 6111. Evolutionary Computation. (3G) Prerequisite:
CSCI 6114 or consent of the department. General introduction to
optimization problems. Optimization techniques: hill climbing,
simulated annealing, evolution strategies, genetic algorithms.
Evolution programming techniques. (Spring) (Alternate years)
CSCI 6114. Algorithms and Data Structures. (3G) 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)
CSCI 6115. Advanced Topics in Algorithms and Data Structures.
(3G) Prerequisite: CSCI 6114. Continuation and extension of
CSCI 6114. String matching; seminumerical algorithms; probabilistic
algorithms; parallel algorithms; NP-completeness; computationally
hard problems; approximation algorithms. (On demand)
CSCI 6132. Computer Modeling and Simulation. (3G) Prerequisites:
CSCI 5131 and consent of department. Introduction to modeling
of complex systems. Emphasis on modeling of computer systems and
configurations. (On demand)
CSCI 6144. Operating Systems Design. (3G) Prerequisite:
CSCI 6114 or consent of department. Introduction to features of
a large-scale operating system with emphasis on resource-sharing
environments. Computer system organization; resource management;
multiprogramming; multiprocessing; file systems; virtual machine
concepts; protection and efficiency. (Fall)(Alternate
years)
CSCI 6154. Heuristic Search. (3G) Prerequisite: CSCI 5150.
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)
CSCI 6155. Knowledge-Based Systems. (3G) Prerequisite: CSCI
5150. Knowledge representation; automatic deduction; techniques
for handling uncertainty and inexact knowledge; principles of
rule-based systems and frame-based systems. Selected study of actual
knowledge-based systems and knowledge engineering tools. A course
project of building a knowledge-based system. (Spring) (Alternate
years)
CSCI 6156. Machine Learning. (3G) Prerequisite: CSCI 5150.
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)
CSCI 6158. Natural Language Processing. (3G) Prerequisite:
CSCI 5150. 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)
CSCI 6160. Database Systems, Design and Management. (3G)
Prerequisite: CSCI 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)
CSCI 6161. Advanced Topics in Database Systems, Design and
Management. (3G) Prerequisite: CSCI 6160. Continuation of
CSCI 6160. Topics include addressing techniques; physical structures;
searching; compaction techniques; storage hierarchies; multiple-key
retrieval; efficiency and security considerations. (On demand)
CSCI 6164. Design and Implementation of Online Management Information
Systems. (3G) Prerequisites: CSCI 6114 or consent of the department.
The fundamental concepts and philosophy of planning and implementing
an online 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)
CSCI 6166. Computer Communications and Networks. (3G)
Prerequisite:
CSCI 6114 or consent of the department. Introduction to the concepts
of computer networks; their operating systems; and communication
between nodes. Types of networks; communications and protocols;
routing; message switching; optimization; distributed processing;
coding and compaction. (Spring)
CSCI 6170. Logic for Artificial Intelligence. (3G) Prerequisite:
CSCI 5150 or consent of the department. Introduction to basic
concepts of logic for artificial intelligence, including declarative
knowledge, inference, resolution, nonmonotonic reasoning, induction,
reasoning with uncertain beliefs, distributed information systems,
intelligent information systems, planning and intelligent-agent
architecture. (On demand)
CSCI 6175. Computability and Complexity. (3G) 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; subrecursive hierarchies.
(On demand)
CSCI 6690. Computer Science Seminar. (3G) Prerequisite:
at least 18 graduate CSCI/CPGR hours and consent 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)
CSCI 6880. Individual Study. (1-3G) Prerequisites: At least
18 graduate CSCI/CPGR hours and consent 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)
CSCI 6991. Computer Science Thesis. (0-6G) Prerequisite:
consent 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)
Undergraduate/Available for Graduate Credit
Graduate and Advanced Undergraduate
Graduate Only
[UNCC CATALOG] [UNC Charlotte]
This page is maintained by
The
Office of Academic Affairs