Course Offerings

Graduate Courses

Bridge Courses

CSC 500 Discrete Structures (3) This course provides the mathematical tools which serve as a basis for the description and understanding of the major components of computer science. Topics include: sets, relations (binary, n-ary), relational algebra, functions, properties of relations, propositional and predicate calculus. The presentation of this and other material is based on its utility for describing and investigating the objects of study in computer science, e.g., abstract models of machines (finite state automata- deterministic, nondeterministic, pushdown stores-Turing Machines), of strings and languages, etc. Counting techniques, recurrence relations and algorithm analysis will be studied-algebraic structures (monoids, groups, etc.; Boolean Algebras, lattices) and mapping between them; operations on n-ary relations suitable for database design; fundamentals of the study of switching circuits; proof techniques and an introduction to proving program correctness, elements of graph theory; and an introduction to the study of fuzzy sets and systems.

CSC 501 Continuous Methods in Computer Science (3) Basic techniques of numerical computation. Topics include: computer arithmetic and error control, solution of non-linear algebraic equations including some non-linear optimization, polynomial interpolations including splines, curve fitting, integration, and an introduction to differential equations. Emphasis will be on non-formal settings with a view toward applications.

CSC 502 Machine Structures (3) Computers as a hierarchy of levels. Coverage includes digital logic, microprogramming, and conventional machine levels. Emphasis is given to those aspects of computer hardware that affect programming. Prerequisite: Permission of instructor.

CSC 503 Data Structures (3) A study of data structures through programming assignments and then in a language independent setting. The levels of data description and their roles in data structure design are examined. Prerequisite: Permission of instructor.

CSC 504 Computational Methods in Linear Algebra (3) Computational aspects of linear algebra including linear optimization models are explored. Topics include different algorithms for solution of sets of linear algebraic equations, the eigen-value problems, linear programming, clustering techniques, and software requirements. Prerequisite: Permission of instructor.

Regular Offerings

CSC 511 Formal Methods in Programming (3) Formalisms for program expression; data and control abstractions and their interrelation are considered. Advanced control constructs including backtracking and nondeterminism, concurrent programming, the effects of formal methods for program development. Major approaches and techniques for proving programs correct are described. Prerequisite: CSC 500; CSC 503; coursework in high-level languages.

CSC 512 Theory of Programming Languages (3) A formal treatment of both programming languages (translation and compiler design concepts, formal semantics) and programming concepts; theoretical aspects of topics such as parsing and translation specifications presented along with those based on consideration of programs as machine independent entities. Prerequisites: Discrete Structures; Data Structures; coursework in two high-level languages.

CSC 513 Compiler Construction (3) An introduction to the major methods used in compiler implementation. The parsing methods of LL(k) and LR(k) are covered, as well as finite state methods of lexical analysis, symbol table construction, internal forms for a program, run time storage management for block structured languages, and an introduction to code optimization. Prerequisites: Discrete Structures and CSC 531.

CSC 515 Object-Oriented Software Development (3) An exposition of current object-oriented software design methodologies. Topics covered include object modeling, component protocols, interaction and visibility graphs, class design and inheritance graphs, data dictionary design, object persistence, exception handling, application frameworks and design patterns. These general concepts are illustrated with examples from currently practice methods such as Booch, OMT and Fusion. General software engineering principles, including reusability, are also discussed. Prerequisites: CSC 500 and CSC 503, or equivalent.

CSC 516 Functional Software Development (3) An exposition of the fundamental principles underlying the applicative programming paradigm. Topics covered include lambda and general calculi, techniques of functional programming, types in functional languages, correctness of functional programs, and parallelism. A survey of major functional languages is also provided, along with representative applications. Prerequisites: CSC 500 and CSC 503, or equivalent.

CSC 521 Analytical Models for Operating Systems (3) Review of major concept areas of operating systems principles, including networks of operating system modules, pipelining, and parallelism; development of approaches and examination of the major models that have been used to study operating systems and the computer systems which they manage. Introduction to the fundamentals of queuing theory; Petri nets, data flow diagrams, and other models of parallel behavior will be studied. Prerequisites: Discrete Structures, Probability and Statistics, Linear Algebra, Calculus.

CSC 522 Computer Networks and Distributed Processing (3) A study of networks of interacting computers, including basic network topologies, equipment configurations, and local networks. The problems, rationales, and possible solutions for both distributed processing and distributed databases will be examined. Major national and international protocols will be presented. Prerequisite: Discrete Structures.

CSC 523 Parallel Computing & Computers (3) Algorithms and programming for parallel programming environments. Application to several architectures, including: virtual parallel environments; tightly and loosely coupled multiprocessors; pipelined and array processors.

CSC 524 Real Time Systems (3) An introduction to the problems, concepts, and techniques involved in computer systems which must interface with external devices. These include process control systems, computer systems embedded within aircraft or automobiles, and graphic systems. Areas will include data acquisition, analog-digital conversion, digital signal processing, and operating systems software for these systems. Prerequisites: Calculus, Linear Algebra.

CSC 525 Distributed Systems (3) This course concerns distributed multiprocessor systems in their fullest scope. It considers both the functional and analytical structures of specialized processors performing portions of the same task, nonspecialized processors with limited number of states sharing a common memory, and multicomputers geographically distributed but linked through a communications network. It provides a foundation to evaluate the economics and feasibility of distributed systems. Prerequisite: CSC 522.

CSC 531 Automata, Computability and Formal Languages (3) The stress in this course is on formal models of computation and the development of students' skills in utilizing rigorous concepts and definitions in computing environments to analyze broad classes of problems situations. Classical concepts from theoretical computer science (such as state minimization, formal languages and their acceptors, and the theory of computable functions) will be reviewed and /or developed. Prerequisite: Discrete Structures.

CSC 532 Applied Combinatorics and Graph Theory (3) A study of combinatorial and graphical techniques for complexity analysis including, generating functions, recurrence relations, Polya's theory of counting, planar directed and undirected graphs, and NP-complete problems. Applications of the techniques to analysis of algorithms in graph theory, and sorting and searching. Prerequisite: Discrete Structures.

CSC 533 Theory of Computation (3) A survey of formal models for computation, providing the basis for a rigorous understanding of the capacities and the limitations of computing devices. Includes Turing Machines, partial recursive functions, recursive and recursively enumerable sets, the recursion theorem, abstract complexity theory, program schemes, and concrete complexity. Prerequisites: Discrete Structures, CSC 531 co-requisite.

CSC 534 Combinatorial Optimization (3) A study of the class of algorithms for optimization of combinatorial structures. Complexity of problems such as linear programming and the traveling salesman problem. NP-completeness, approximation algorithms, worst-case and probabilistic analysis of algorithms, and local search. Prerequisite: Discrete Structures.

CSC 535 Error Correcting Codes (3) An introduction to coding for reliable data storage and transmission. Topics include linear, BCH, Cyclic, Reed-Mueller, and Reed-Justensen codes; dual codes and their weight distribution; encoding and decoding algorithms. Prerequisites: Discrete Structures, Linear Algebra.

CSC 541 Information Storage and Access (3) Review of database and database management concepts. Advanced data structures, file structures, databases, and processing systems for access and maintenance. For explicitly structured data, interactions among these structures, accessing patterns, and design of processing/access systems. Data administration processing system life cycle, system security. Prerequisite: Discrete Structures.

CSC 542 Information Systems Design (3) Introduction to the formalization of the information systems design process. Concepts and theories relating to module design, module coupling, and module strength with emphasis on techniques for reducing a system's complexity. The course is intended to be especially useful for those working in a technically advanced information systems environment. Prerequisite: CSC 551.

CSC 543 Distributed Database Systems (3) A consideration of the problems and opportunities inherent in distributed databases on a network computer system. Includes file allocation, directory systems, deadlock detection and prevention, synchronization, query optimization, and fault tolerance. Prerequisites: Discrete Structures, CSC 522, CSC 541 co-requisite.

CSC 544 Computer Graphics (3) An introduction to modeling and rendering used in 3D computer generated imaging. Topics include: animation; parallel and perspective projections; geometric and viewing transformations; bi-cubic spline surfaces; color and shading models; hidden surface removal, and ray tracing. Prerequisite: Linear Algebra.

CSC 545 Logic Programming (3) A study of the syntax, the declarative and procedural semantics of logic programs and an introduction to logic programming using the language PROLOG. Prerequisite: Discrete Structures.

CSC 546 Multimedia Information Processing (3) Designed to explore current research issues related to multimedia information processing and management. Students will learn the conceptual bases of dealing with data/information and semi-structured data management. Major topics may include (but are not limited to) information retrieval models, video processing techniques for content analysis, pattern analysis techniques related to information retrieval, query formation and intelligent query processing. Successful completion of the course will help students to do research in the emerging areas of multimedia information processing. Prerequisites: Linear algebra and programming skill in C++, JAVA, C, or MATLAB.

CSC 551 Introduction to Systems Theory (3) This course develops a conceptual basis and techniques for the study of systems and system properties useful in all areas of computer science. Some of the properties covered are: behavior, state, dynamics, organization, structure, hierarchy, feedback regulation and control, complexity, information, communication, and performance. The course also develops a number of examples and emphasizes the ability to use the abstract systems concepts to model and study information processing systems. Prerequisite: Discrete Structures.

CSC 552 Introduction to Information Theory (3) Basic results of information theory with application to storage, compression, and transmission of data; entropy and entropy-based measures. Block and variable length codes, noiseless and noisy channels, channel capacity. Real and computer-simulated data studies to illustrate problems of statistical characterization of sources and channels. Prerequisites: Probability and Statistics, Linear Algebra, Calculus, Discrete Structures.

CSC 553 Data Security (3) Theories and techniques for encrypting and decrypting stored and transmitted data. Topics include classical cryptographic methods, stream and block ciphers, public key systems, the Data Encryption Standard, automata-theoretic and shift-register models of security systems, analog security systems. Prerequisite: Discrete Structures.

CSC 554 Modeling and Simulation (3) Discrete and continuous techniques for modeling and simulating complex systems. Model formulation; class of models; statistical simulation; simulation languages; model-based simulation; model stability, verification and interpretation; and decision support systems. Prerequisites: Probability and Statistics, Linear Algebra.

CSC 555 Models and Metrics for System Performance Evaluation (3) Issues involved in developing quantitative indices of merit assessment. General framework and principles for systems evaluation; study of appropriate metrics for software systems, software development cycle, hardware-software complexes, command and control systems. Prerequisites: Probability and Statistics, CSC 551.

CSC 556 Pattern Recognition and Image Processing (3) Design of automated and interactive classification systems. Feature extraction methods, linguistic and relational representation of objects, inductive inference, maximum likelihood decisions; measures of quality; transform methods, fast algorithms, image operations such as enhancement, smoothing, sharpening, windowing, filtering. Prerequisites: Discrete Structures, Linear Algebra, CSC 552.

CSC 557 Artificial Intelligence (3) Survey of basic concepts and techniques of artificial intelligence. Knowledge representation, constraints and capabilities of different notational systems; search strategies; problem representation and problem solving methods; expert systems. Applications and illustrations from medicine, science, robotics, computer vision. Prerequisite: Discrete Structures.

CSC 558 Operations Research (3) An introduction to the theory of linear programming, network analysis, dynamic programming and integer programming with emphasis on computer implementation. Prerequisites: Linear Algebra, Discrete Structures.

CSC 559 Fuzzy Sets and Systems (3) A study of uncertainty, vagueness, and inexactness. This course presents: 1) a historical perspective; 2) fundamental principles of fuzzy logic, an extension to two-valued logic, and fuzzy systems theory; 3) application areas for uncertainty theory.

Other Courses

CSC 507 Data Analysis Selection and implementation of research strategies, including selection and application of proper statistical techniques using a personal computer as a research and decision-making tool. Students will attain proficiency in the use of a commercial statistical analysis package in the solution of quantitative research problems. Designed to support graduate programs in nursing administration and telecommunications; not intended for computer science graduate students.

CSC 580 Computer and Robotic Vision (3) This course is designed to give the student an insight into the intrinsic image information and the internal model of vision systems. Classification of objects is performed by extracting linear curves and regions in images, using boundary information, texture analysis and 3D scene analysis. Geometric and relationship structures involving complex symbolic descriptions of image and world structures are studied and various applications are introduced. Cross-listed with MST 580.

CSC 581 Seminar in Computer Science (3) Students must choose from a list of topics and explore the literature, make formal presentations, and submit a final report on the topics. Prerequisites: Advanced graduate standing and permission of instructor.

CSC 585 Special Topics (variable credit) Topics will vary from semester to semester. In-depth development of topics reflecting current research areas of faculty. Example topics: remote sensing, cartographic systems, models of the brain, modeling of sociotechnical systems, adaptive programming, optimization models and methods, decision theory and decision support systems, mathematical systems theory, fuzzy systems and fuzzy programming, high-level computer architecture, legal issues in computing.

CSC 591 Independent Study (variable credit)

CSC 598 Project (3)

CSC 599 Thesis (1-6 credits)

CSC 600 Colloquia in Computer Science (3) Speakers from fields in computing and its applications present their current research activities and findings. Students are required to attend a designed number of colloquia each semester and to write reaction papers to those presentations in areas of their interest. May be taken repeatedly, but it does not count toward the 33 credit hour requirement for the M.S. degree.

CMT 600 Continuous Registration (1) Maintaining continuous registration is a requirement for all graduate degrees. Students who have completed most course requirements but are finishing projects, capstone experiences, thesis or are satisfying Incomplete or In-Progress grades must register to maintain continuous matriculation. Course may be taken up to 6 semesters at which time it is expected that all program requirements will have been met. Credit is not used toward program completion requirements. Only S/U grades are awarded for this course.


General Elective

MAT 530 Number Theory and Its Applications (3) Introductory course in Number Theory that will introduce students to the basic concepts as well as some modern applications. Topics include: prime numbers, Greatest Common Divisors, The Euclidean Algorithm, congruences, Fermat's Little Theorem, primality testing, etc. Applications of Number theory: cryptography, pseudorandom numbers, etc. Prerequisites: MAT 413 or MAT 380. Cross listed with MAT 430.



Direct any questions about the program to: Ronald Sarner, Department Chair.