COMPUTER SCIENCE (CSC)
1997-1998 Bulletin Information |
For current bulletin information see www.southalabama.edu/bulletin |
CSC 331 Modeling and Simulation I 4 cr
Develop insight into nature of models and experience in their
construction. Basic systems theory, use of techniques such as linear programming, Queuing,
Markov chains, and simulation. Prerequisites: CIS 142 or 271, ST 275 or 315, and MA 132 or
287.
CSC 332 Modeling and Simulations II 4 cr
Concentration on simulation as the activity of experimenting with a
computer model. Techniques based on mathematical methodologies and the practices of
simulation will be used to develop a "real world" project. Prerequisites: CSC
331 and MA 331.
CSC 340 Programming Languages 4 cr
Formal examination of programming languages. Formal language
concepts including syntax and basic grammars are studied. Language features such as data
types and structures, control structures and data flow are examined. The run-time
environment and the process of interpretation/compilation are covered. The object-oriented
programming paradigm is introduced. Prerequisite: CIS 265.
CSC 346 Advanced Operating Systems Concepts 4 cr
Emphasis on time sharing, multiprocessing, and virtual systems
environments. Performance measurement and evaluation, as well as system simulation. Recent
developments in operating-systems theory will be discussed. Prerequisite: CIS 245.
CSC 371 Scientific Computing 4 cr
Elementary problems in scientific computing. Introduction to
representation of floating-point numbers, errors in floating-point calculations,
FORTRAN-77, program libraries, and a high-level, problem-solving tool will be used.
Prerequisite: CIS 141 or 271 or 272 or 273.
CSC 421 Fundamentals of Compiler Construction 4 cr
Review of program language structure translation, loading,
execution, and storage allocation. Compilation of simple expressions and statements.
Organization of a compiler. Prerequisite: CSC˙340.
CSC 422 Performance Evaluation of Algorithms 4 cr
Classification and analysis of algorithms including recursive,
divide and conquer, greedy, etc. Data structures and algorithms design and performance.
Run time and main storage complexity analysis. Performance evaluation measurements will be
discussed and popular benchmarking techniques reviewed. P, NP, and NP complexities will be
discussed. Prerequisites: CIS 263, MA 267 or 367, and ST 315.
CSC 436 Numerical Analysis I 4 cr
Selected numerical algorithms are analyzed. Topics of study include:
error analysis, machine arithmetic, round-off errors, root finding using fixed-point
methods, systems of equations, interpolation polynomials, numerical integration, and
ordinary differential equations. The algorithms are implemented with the aid of a
computer. Also offered as MA 436. Prerequisites: MA234 and CIS˙142 or the equivalent.
Credit for or concurrent registration in MA 331.
CSC 438 Numerical Analysis II 4 cr
Continuation of CIS 436. Topics include: In-depth error analysis,
order of error, interpolation and derivatives using difference techniques, least square
analysis and splines, matrix algebra and eigenvalues, and boundary-value problems from
partial differential equations. Also offered as MA 438. Prerequisites: MA 436 or CSC 436.
Credit for or concurrent registration in MA 316 or 318.
CSC 446 Digital Logic and Computer Architecture 4 cr
Topics include: Boolean algebra, minimization techniques,
combinatorial and sequential circuit analysis, memory organization, microprocessor
concepts, and system architecture. Prerequisites: CIS˙244 and MA 267 or 367.
CSC 447 Communications and Network Analysis 4 cr
Data communications and computer networks. An in-depth treatment of
network architectures and protocols for both WANs and LANs. Network routing and flow
algorithms, internetworking and ISDN, and distributed systems. Prerequisite: CIS 247.
CSC 453 Theory of Computation 4 cr
An introduction to formal computer theory. Finite machines,
automata, formal language theory, and Turing machines are studied. Prerequisite: CSC 340.
CSC 457 Data-Base Theory 4 cr
Architecture of data-base systems. Relational, hierarchical, and
network models; normalization; data-base security and integrity; query processing. A
survey of several data-base management systems. Prerequisite: CIS 265.
CSC 472 Computer Graphics 4 cr
Introduction to 2D and 3D graphics techniques and algorithms. State
of the art packages (PHIGS) will be used. Applications to business and engineering
applications. Prerequisite: CIS 265.
CSC 473 Real-Time Computing 5 cr
Methods of signal acquisition, storage, and processing. Real-time
algorithms and data structures. System consideration and system planning. Advanced
processing techniques including averaging, filtering, and frequency-domain analysis.
Principles of computerized instrument design. Prerequisites: CIS 247 and 265.
CSC 474 Artificial Intelligence I: Theory 4 cr
Introduction to basic concepts, implementation techniques, and
philosophies of artificial intelligence and intelligent systems. Introduction to expert
systems, fuzzy logic systems, and neural network. Prerequisite: CIS 265.
CSC 475 Artificial Intelligence II: Programming 4 cr
Introduction to techniques for Artificial Intelligence Programming.
The fundamentals of an A.I. programming language (LISP or PROLOG) will be presented. The
language will then be used to solve problems in typical A.I. applications. Prerequisite:
CSC 474.
CSC 520 Computer Architecture 4 cr
An introduction to computer architecture including the structure and
function of memory, cache, pipelines, RISC processors, vector processors, and
multi-processors. Prerequisites: CIS 245, 261, and ST 315.
CSC 522 Performance Evaluation of Algorithms 4 cr
Classification and analysis of algorithms including recursive,
divide and conquer, greedy, etc. Data structures and algorithms design and performance.
Run time and main storage complexity analysis. Performance evaluation measurements will be
discussed and popular benchmarking techniques reviewed. Analytic, simulation, and
qualitative approaches will be discussed. Prerequisites: CIS 261, MA 267, and ST 315.
CSC 524 Computer Language Design 4 cr
A study of programming language design and specification, including
the compiling process, parsing, BNF grammars, and models of semantics. Differences between
interpreters, assemblers, and compilers will be studied. Prerequisites: CIS 261, CSC 340,
and MA 267.
CSC 525 Theory of Computing and Automata 4 cr
An introduction to the theory of computing including finite
automata, pushdown automata, formal languages, decidable problems, and Turing machines.
Prerequisites: MA 132 and 267.
CSC 535 Data Base Structure and Design 4 cr
An in-depth study of the underlying principles of database
management system models. Database design issues are examined from algorithmic and
structural perspective. Prerequisite: CSC 522.
CSC 539 Communications and Network Analysis 4 cr
Data communications and computer networks. An in-depth treatment of
network architectures and protocols for both WANs and LANs. Network routing and flow
algorithms, internetworking and ISDN, and distributed systems. Prerequisite: CIS 245.
CSC 542 Advanced Operating Systems 4 cr
Monitors, non-time-sharing operating systems, and multi-user systems
will be discussed. Memory management techniques will be stressed. Disk and other secondary
storage media and their associated drivers will be discussed. Analytic modeling techniques
will be used to discuss operating systems design decisions. Students will be expected to
write or simulate sections of an operating system in a high-level programming language
Prerequisites: CSC Foundation courses or equivalents and CSC 520 and 524.
CSC 544 Software Engineering Principles 4 cr
Advanced concepts of software engineering will be discussed. Program
testing techniques including structured design and walk-throughs - proving program
correctness and verifiability, and system coding standardization and integration will be
covered in depth. Software team formulation and management techniques will also be
discussed. Prerequisites: CSC 520, 522, 524, and 525 or equivalent.
CSC 546 Compiler Design 4 cr
Detailed analysis of compiler construction. Topics to be covered
include a study of techniques for semantic and syntactic analysis, parsers, scanners,
organization and allocation of storage areas, optimization techniques, and compiler
compilers. Prerequisites: CSC 520, 522, and 524.
CSC 550 Modeling and Simulation Techniques 4 cr
Advanced mathematical treatment of sampling techniques used in
simulation, pseudorandom-number generators and their properties, and the construction and
verification of simulation models. A simulation project will be developed. Prerequisite:
CSC 522.
CSC 552 Artificial Intelligence and 4 cr
Heuristic Programming Methods of
heuristic programming, the production of intelligent algorithms, and simulation of human
cognitive processes will be studied. Al languages, such as LISP and PROLOG, will be
discussed. Attention placed on the relationship between man-made machines (Robots) and
biological organisms with natural intelligence. Expert systems and neural network research
will be reviewed. Prerequisite: CSC 522.
CSC 554 Real-Time Software Systems 4 cr
Study of software requirements and organization for real-time
computer systems. Topics include: survey of typical real-time systems; techniques for
code-conversion, error checking, and transmission monitoring; and study of software
systems in current use. Prerequisites: CSC 522 and 539.
CSC 556 Computer Graphics 4 cr
An in-depth study of hardware and software techniques used in
computer graphics. Study of display and entry devices, including refresh, storage, and
raster scan topics. Software techniques will include display files, windowing, clipping,
two and three-dimensional transformations, and hidden-surface removal. Prerequisite: CSC
522.
CSC 560 Numerical Analysis 4 cr
Mathematical aspects of scientific programming. Topics to be covered
include: iterative methods for solving linear and nonlinear equations, curve-fitting and
regression techniques, error analysis, numerical quadrature methods. Prerequisites: CSC
522 and MA 331, or equivalent.