Listing of Course
Designations & Rubrics

**Dept - RUBRIC**

*General education courses are marked with stars ()*.

**
****1100 Computers in Society (3)** *Prereq.: credit in MATH 1020/1021 or
registration in MATH 1023. 2 hrs. lecture; 2 hrs. lab*. Introduction to
computers, their applications, and impact on people and social institutions; the
Internet, E-mail, news groups, ftp, telnet, World Wide Web, multimedia, word
processing, spreadsheets, databases.

**
****1248
Introduction to Programming With Applications in Statistics (3)** *Prereq.:
MATH 1020/1021 or sufficiently high score on the mathematics placement
examination to qualify for MATH 1022 or 1431. Credit will not be given for both
this course and CSC 1250. Not for degree credit for computer science majors*.
Computer programming using the Pascal language with applications in elementary
statistics.

**
****1250 Introduction to Computer Science I (3)** *Prereq.: credit or
registration in MATH 1022 or 1023. Credit will not be given for this course and
CSC 1248 or 1253*. Fundamentals of problem solving, program design,
algorithms, and programming using a high-level language.

**
****1251 Introduction to Computer Science II (3)** *Prereq.: CSC 1250 and
credit or registration in MATH 1550*. Fundamentals of programming and
programming design using a high-level structured language; introduction of
dynamic memory allocation, multi-dimensional arrays, logical records, searching
and sorting

**
****1253 Introduction to Computer Science with C-I (3)** *Prereq.: credit or
registration in MATH 1550 or credit in MATH 1431. Credit will not be given for
both this course and CSC 1250 and 2290*. Fundamentals of programming, program
design, and algorithms using a high-level block-structured language.

**
****1254 Introduction to Computer Science with C-II (3)** *Prereq.: CSC 1253,
MATH 1550 or registration in MATH 1435. Credit will not be given for both this
course and CSC 1251 and 2290*. Basic concepts of data types (strings, arrays,
records, sets, files); data structures (linked lists, stacks, queues, trees);
searching and sorting algorithms.

**
****1970 Introduction to the UNIX Operating System (2)*** 1 hr. lecture; 2
hrs. lab. Laboratory projects are assigned*. Features of the UNIX Operating
system kernel, shell commands and scripts, text processing, electronic mail, and
the INTERNET.

**
****2230 Programming Techniques With Ada (3)** *Prereq.: CSC 1251*.
Advanced programming techniques using data abstraction, exception handling,
generics, and tasking.

**
****2252 Assembly Language Programming (3)** *Prereq.: credit or registration
in CSC 1251, or equivalent background*. Fundamentals of machine function;
basic concepts of programming at the machine level; assembly language; machine
representation of information, machine language, addressing techniques, program
linkage, macroprogramming, and assembler construction.

**
****2259 Introduction to Discrete Structures (3)** *Prereq.: MATH 1552 and
CSC 1251*. Set algebra including mappings and relations; algebraic structures
including semigroups and groups; elements of the theory of directed and
undirected graphs; Boolean algebra and propositional logic; these structures
applied to various areas of computer science.

**
****2260 Introduction to the Use of Computers (1)** *Prereq.: MATH 1550.
Credit will be given for only one of the following: CSC 2260, 2262, or IE 2060*.
Basic principles of digital programming in symbolic languages; application of
electronic computers to typical scientific problems.

**
****2262 Numerical Methods and FORTRAN (3)** *Prereq.: MATH 1552. Credit will
be given for only one of the following: CSC 2260, 2262, or IE 2060*.
Computer-oriented methods for solving numerical problems in science and
engineering; elements of FORTRAN programming language; numerical solutions to
systems of simultaneous linear equations, nonlinear algebraic equations (root
solving), differentiation and integration, ordinary differential equations,
interpolation, and curve fitting.

**
****2270 COBOL Programming and Business Data Processing Systems (3)** *Prereq.:
credit in a course in computing. Primarily for students in computer science and
related disciplines*. COBOL programming; its use in business data processing
systems.

**
****2280 Computer Organization (4)** *Prereq.: CSC 2252. 3 hrs. lecture; 2
hrs. lab*. Basic digital circuits; Boolean algebra and combinational logic,
data representation and transfer, and digital arithmetic; digital storage and
accessing, control functions, input-output facilities, system organization, and
reliability; description and simulation techniques; features needed for
multiprogramming, multiprocessing, and real-time systems; other advanced topics
and alternate organizations.

**
****2290 Advanced Programming and Introduction to Data Structures (3)** *Prereq.:
CSC 1251*. Advanced programming techniques and basic concepts of data types,
data structures, and advanced programming languages.

**
****3102 Advanced Data Structures and Algorithm Analysis (3)** *Prereq.: CSC
2290 or CSC 1254 and CSC 2252 or EE 3770 and credit or concurrent enrollment in
CSC 2259 or EE 2720*. Description and utilization of formal ADT
representations, especially those on lists, sets, and graphs; time and space
analysis of recursive and nonrecursive algorithms, including graph and sorting
algorithms; algorithm design techniques.

**
****3390 Object Oriented Programming and C++ (3)** *Prereq.: credit in either
CSC 1254 or 2290*. Introduction to the object oriented programming paradigm,
including encapsulation, inheritance, and polymorphism; implementation of these
concepts using C++.

**
****3999 Independent Undergraduate Research (1-3)** *Prereq.: consent of
department chair. May be taken for a max. of 4 hrs. of credit*. Individual
readings, conferences, and program development in computer science.

**
****4101 Programming Languages (3)** *Prereq.: CSC 3102. Credit will not be
given for both this course and CSC 7001*. Principles of programming language
design; specification of syntax and semantics; underlying implementation of
block structured languages; dynamic memory allocation for strings, lists, and
arrays; imperative versus applicative programming; logic programming; modern
programming languages.

**
****4103 Operating Systems (3)** *Prereq.: CSC 3102*. Design techniques,
process management, processor scheduling; deadlocks, memory management,
secondary memory management, file management; I/O systems, Unix systems.

**
****4304 Systems Programming (3)** *Prereq.: CSC 4103*. Batch process
systems programs, their components, operating characteristics, user services and
limitations; implementation techniques for parallel processing of input-output
and interrupt handling; overall structure of multiprogramming systems on
multiprocessor hardware configurations; addressing techniques, core management,
file system design and management, system accounting, and other user-related
services; traffic control, interprocess communication, design of system modules,
and interfaces; system updating, documentation, and operation.

**
****4330 Software Systems Development (3)** *Prereq.: CSC 3102*. Software
requirements analysis; design representation, programming methodologies;
verification, validation, maintenance, and software planning.

**
****4351 Compiler Construction (3)** *Prereq.: CSC 3102 or equivalent. Credit
will not be given for both this course and CSC 7001*. Program language
structures, translation, loading, execution, and storage allocation; compilation
of simple expressions and statements; organization of compiler including compile-time
and run-time symbol tables, lexical scan, syntax scan, object code generation,
error diagnostics, object code optimization techniques, and overall design; use
of compiler writing languages and bootstrapping.

**
****4356 Interactive Computer Graphics (3)** *See ME 4573*.

**
****4357 Applied Interactive Graphics and Computer-Aided Design (3)** *See ME
4583*.

**
****4362 Advanced Numerical Methods (3)** *Prereq.: CSC 2262 or equivalent*.
Advanced treatment of numerical computation in practice; methodology for
enhancing the effectiveness, accuracy, and efficiency of traditional numerical
techniques; emphasis on extrapolation.

**
****4402 Introduction to Database Management Systems (3)** *Prereq.: CSC 3102*.
Network, hierarchical, and relational, and entity-relationship models; data
definition, manipulation languages, and conversion among these models;
relational database design theory, efficient query evaluation, elementary query
optimization techniques.

**
****4444 Artificial Intelligence (3)** *Prereq.: CSC 3102*. Theorem
proving and inferencing techniques, production systems, knowledge
representation, approximate reasoning, nonmonotonic reasoning, natural language
understanding, scene analysis, planning, game playing, and learning.

**
****4446 Fuzzy Sets and Applications (3)** *Prereq.: permission of instructor*.
Basic concepts of fuzzy sets, fuzzy operations, fuzzy logic, and fuzzy
rule-based systems; applications to engineering and decision making; emphasis on
systematic methodology to construct fuzzy applications; software and simulations
tools in solving real-world problems using fuzzy-set techniques.

**
****4602 Fundamental Computer Science for Teachers (3)** *Prereq.: ELRC 4507
(or prior programming experience) and credit in an education methods course
numbered 3000 or above. Also offered as ELRC 4512*. Advanced programming
techniques; emphasis on structured programming, software and hardware
organization, data structures, graphics, and other topics to prepare students to
teach computer science in secondary schools.

**
****4890 Introduction to Theory of Computation (3)** *Prereq.: CSC 2259*.
Introduction to finite automata, regular expressions and languages; push-down
automata and context-free languages; selected advanced language theoretical
topics; emphasis on technique.

**
****4999 Advanced Independent Undergraduate Research (1-3)** *Prereq.:
consent of department chair. May be taken for a max. of 4 hrs. of credit*.
Individual readings, conferences, and program development in computer science.

**
****6100 Advanced Elements of Computer Science for Teachers (3)** *Prereq.:
computer science programming course or knowledge of a programming language
required*. Advanced programming techniques using a high-level, structured
language; data structures and computer systems software.

**
****7001 Computing Principles I (3)** *Prereq.: CSC 3102 or equivalent.
Credit will not be given for both this course and CSC 4101 or 4351*.
Comparative programming language concepts, semantics, data types, control
structures, functional languages, compilers, and compiler construction.

**
****7002 Computing Principles II (3)** *Prereq.: CSC 7001 or equivalent*.
Fundamentals of operating systems, including evaluation methods; functional
organization and architecture of computers, including arithmetic/logic and
control units, microprogramming, input/ouput facilities, real-time systems
microprocessors, multiprocessors, distributed processing, and digitallogic;
comparative study, including unix, CP/M, OS/ MVS, and VM/370.

**
****7080 Computer Architecture (3)** *Prereq.: CSC 7002 or equivalent.
Background in electronics not required*. Functional architecture of modern
digital computer systems; detailed description of instruction set implementation
with monoprocessor and multiprocessor structures; design and analysis of
instruction sets and control structures.

**
****7101 Programming Language Structures (3)** *Prereq.: CSC 4101*.
Advanced study of data specification, storage management, and control in
programming languages; includes coverage of formal specification languages;
languages for concurrent processing; languages that support program verification
techniques; and in-depth study of applicative languages.

**
****7103 Advanced Operating Systems (3)** *Prereq.: CSC 4103*. Concurrent
programming: shared memory, communication, and operation-oriented models;
concurrent, distributed, and network programming; distributed operating systems;
synchronization and deadlock detection in distributed systems.

**
****7120 Performance Evaluation of Computer and Communication Systems (3)** *Prereq.:
CSC 4103*. Modeling techniques, specification of queuing systems, product
form networks, algorithms for performance networks, operational analysis,
performance bound techniques, blocking and priority networks.

**
****7135 Software Engineering (3)** *Prereq.: CSC 4330 or equivalent*.
Formal specification techniques, design techniques, abstraction, information
hiding, modularity, software testing, automated testing tools, maintainability
factors, and cost estimation.

**
****7200 Theory of Computation I (3)** *Prereq.: CSC 4890*. Algorithms,
computability, decidability, enumerability; formal replacements and Church's
thesis; Turing machines, primitive recursive functions, u-recursive functions;
undecidable predicates.

**
****7201 Theory of Computation II (3)** *Prereq.: CSC 7200*. Theory of
computation; problems for complexity classes, NP, P, PSPACE, and Nlog;
characterization of polynomial time by alternating log space Turing machines and
log space Turing machines by auxiliary pushdown stores; time-space trade-offs
and combinatorial problems.

**
****7235 Advanced Software Engineering (3)** *Prereq.: CSC 7135*. Formal
testing, validation and verification techniques; in-depth study of formal
specification languages and techniques.

**
****7300 Algorithm Design and Analysis (3)** Characteristics of an algorithm;
problems of algorithm existence; the design, implementation, and complexity of
algorithms; algorithm case studies.

**
****7333 Machine Learning (3) F** *Prereq.: CSC 4444*. Fundamental
principles of machine learning; inductive learning; explanation-based learning;
computational approach to Boolean function learning; learning formal languages
and recursive theories; neural network learning and genetic algorithms;
applications of machine learning.

**
****7351 Advanced Compiler Design Theory (3)** *Prereq.: CSC 4351 or 7001*.
Automatic generation of LL (1), LR (1), LALR (1) parsers, syntax directed
translation of high-level control structures, error recovery, optimization of
branching, local code optimization using directed acyclic graphs, loop
optimization, global data flow analysis, and object-code optimization.

**
****7370 Graph Algorithms (3) V** *Prereq.: MATH 4171 or equivalent*.
Graph layout algorithms; networks; application of network flow techniques;
polynomial time algorithms and NP-completeness; dynamic graph drawing.

**
****7373 Algorithms for Parallel and Distributed Computing (3)** *Prereq.:
CSC 7300 or equivalent*. Parallel algorithms for searching, sorting, matrix
processing, network optimization, and other problems; implementation and
efficiency measures of the algorithms on different machines, and VLSI systolic
arrays.

**
****7374 Computational Models for Mobile Robots (3)** *Prereq.: CSC 7300*.
Computational tools for design, analysis, and implementation of algorithms for
robotic applications; existing computational paradigms, constraint
representation and real-time modeling for robotic vision; image understanding,
path planning, autonomous navigation and sensor-fusion problems for mobile
robots.

**
****7375 Robot Vision (3)** *Prereq.: CSC 3102 or equivalent, and CSC 7300*.
Computational aspects of vision; utilization of techniques from computational
geometry, combinatorics, probability theory, and artificial intelligence; visual
recognition and classification.

**
****7380 Computational Geometry (3)** *Prereq.: CSC 7300 or equivalent*.
Data structures and algorithm design techniques for geometric problems;
geometric searching; convex hulls; Voronoi diagrams; proximity; intersections of
geometric objects; applications of computational geometry.

**
****7381 Computational Aspects of VLSI CAD (3)** *Prereq.: CSC 7300 or
equivalent*. Overview of VLSI design and fabrication process; abstract model
of VLSI; combinatorial optimization algorithms; circuit partitioning; placement
and floor planning; global routing; detailed routing; and circuit compaction.

**
****7402 Data Base Management Systems (3)** *Prereq.: CSC 4402*.
Implementation of database systems (physical model and its mapping to conceptual
model) ; data structures and their influence on performance, concurrency
control, distributed databases; advanced database systems.

**
****7406 Information Science (3)** *See LIS 7605*.

**
****7407 Abstracting and Indexing (3)** *See LIS 7606*.

**
****7410 Electronic Information Resources (3)** *See LIS 7607*.

**
****7420 Parallel and VLSI Computation (3) F** *Prereq.: CSC 3102*.
Theoretical aspects of the design and analysis of algorithms for parallel
computation; physical implementation of VLSI chips.

**
****7444 Advanced Artificial Intelligence (3)** *Prereq.: CSC 4444*.
Temporal and nonmonotonic logic; truth maintenance systems; probabilistic
reasoning; deductive databases; automated learning, planning, and tutoring;
story understanding; structure of domain dependent expert systems.

**
****7446 Soft Computing (3)** *Prereq.: CSC 4446 or permission of instructor*.
Interplay of three paradigms in soft computing; fuzzy sets and fuzzy logic,
neural computing, and evolutionary programming; applications in image
processing, diagnosis and classification, decision making, and other areas;
software and simulation tools for problem solving in the soft-computing arena.

**
****7450 Programming and Performance Evaluation of Parallel Computers (3)** *Prereq.:
CSC 3102 or equivalent and CSC 7300*. Parallel programming techniques;
message passing and process synchronization performance evaluation; prediction
of parallel architectures and algorithms, scalability analysis.

**
****7481 Information Retrieval Systems (3)** *Prereq.: CSC 3102 or
equivalent. Also offered as LIS 7610*. Topics include commercially available
retrieval systems, text content analysis, query processing models and current
research problems.

**
****7500 System Modeling and Computer Simulation (3)** *Prereq.: CSC 2263 or
equivalent*. Construction and use of mathematical and computer models;
parameter estimation; compartmental models; simulation techniques; applications
of simulations; examples and case studies from physical, social, and life
sciences, engineering, business, and information sciences.

**
****7540 Distributed Systems (3)** *Prereq.: CSC 4103*. Networking and
inter-networking; client-server model; remote procedure calls; processes and
processors in distributed systems; distributed file systems;
transaction-processing techniques; and distributed systems for high performance
computing.

**
****7560 Computational Methods (3)** *Prereq.: CSC 4362 or equivalent*.
Synthesis, implementation, and analysis of numerical algorithms; algorithm
concept introduced in context of abstract schema.

**
****7600 High Performance Computing I (3) V** *Prereq.: CSC 4362 or consent
of instructor*. Fundamental computational techniques required for scientific
computing; important algorithms for parallel computation; high performance
computing.

**
****7610 High Performance Computing II (3) V** *Prereq.: CSC 7600 or
equivalent*. Finite difference schemes for molecular dynamics; classical
deterministic simulations; combinatorial optimization; algorithms for quantum
molecular dynamics; scientific applications in high performance computing.

**
****7620 High Performance Computing III (3) V** *Prereq.: CSC 7600 or
equivalent*. Basic stochastic simulation techniques for massively parallel
computers; simulated annealing and routing algorithms.

**
****7700 Special Topics in Computer Science (3)** *May be taken for a max. of
12 hrs. of credit when topics vary*. Specialized areas of current interest in
computer science.

**
****7800 Computer Science Research Seminar (1) V** *May be taken for a max.
of 2 hrs. of credit when topics vary. Pass-fail grading*. Student
presentations and discussions on research topics in computer science.

**
****7999 Selected Readings in Computer Science (1-3)** *Prereq.: consent of
department chair. May be taken for a max. of 6 sem. hrs. of credit*.

**
**