The
following is a list of graduate courses offered by the Department of Computer
Science and Statistics at USM. Prerequisites are listed by content with
the USM equivalent course(s) specified in parenthesis.
CSC 510
-Multi-processing Prerequisites: Operating Systems and Computer Architecture
(CSC 306 & CSC 306L), Organization of Programming Languages (CSC
308), and Statistics (MAT 320 or CSS 415) Corequisite: CSC 510L A continuation
of CSC 306. Emphasis on intra-system communication
CSC 511
- Database Management Systems Prerequisites: Operating Systems and Computer
Architecture (CSC 306 & CSC 306L) and Data Structures and Algorithm
Analysis (CSC 307) Design and implementation of DBMS. Survey of research
literature.
CSC 512
-Artificial Intelligence Prerequisite: Organization of Programming Languages
(CSC 308) Concepts and techniques of intelligent systems. Survey of
research literature.
CSC 513
-Algorithms Prerequisite: Organization of Programming Languages (CSC
308) Design and analysis of algorithms. Complexity theory.
CSC 514
-Software Design and Development Prerequisite: Organization of Programming
Languages (CSC 308) Corequisite: CSC 514L Formal software development.
Team projects.
CSC 515
-Theory Of Programming Languages Prerequisite: Organization of Programming
Languages (CSC 308) Formal treatment of programming language translation
and compiler design concepts
CSC 521
-Relational Data Base Management Systems Prerequisite: Database Management
Systems Design (CSC 411) Theory of relational systems, comparison of
relational and conventional systems, use of state-of-the-art relational
systems such as ORACLE.
CSC 524
- Software Engineering II Prerequisite: Software Design and Development
(CSC 414) Programming languages and software design, modular/object
oriented design, team programming, human factors, case studies.
CSC 544
-Robotic Systems: Theory, Development and Analysis Prerequisite: Linear
Algebra (MAT 326) Robotic system development, direct kinematics, arm
equation, workspace analysis, trajectory planning and robotic programming
methodology.
CSC 616
-Automata, Computability, and Formal Languages Prerequisite: Theory
of Programming Languages (CSC 415) Formal models of computation. Computability,
complexity, and languages.
CSC 620
-Formal Methods of Programming Languages Prerequisite: Automata, Computability,
and Formal Languages (CSC 616) Data and control abstractions. Backtracking
and non-determinism. Functional and logic programming. Program specification
and verification.
CSC 623
-Analytical Models of Operating Systems Prerequisite: Operating Systems
and Computer Architecture II(CSC 410) Examination of the major models
that have been used to study operating systems and the computer systems
which they manage. Petri nets, data flow diagrams, and other models
of parallel behavior. Fundamentals of queuing theory.
CSC 624
-Computer Communication Networks & Distributed Processing Prerequisite:
Analytical Models of Operating Systems (CSC 623) Study of networks of
interacting computers. Problems, rationales, and possible solutions
for both distributed processing and distributed databases. Major national
and international communication protocols will be presented.
CSC 625
-Computer Graphics Prerequisites: Integral Calculus (MAT 168) Architecture
of display systems, basic 2-D and 3-D mathematics, 3-D viewing and geometry,
advanced architectures for raster and vector displays, hidden line and
hidden surface problems, realistic imaging, software design for 3-D
systems.
CSC 626
-Advanced Computer Architecture Prerequisite: Operating Systems and
Computer Architecture II(CSC 410) Introduction to various architecture's
and techniques which have been developed or are proposed in the literature.
Pipelined architecture, dynamic system architecture, data flow architecture,
array processing.
CSC 629
-Applied Combinatorics and Graph Theory Prerequisite: Automata, Computability,
and Formal Languages (CSC 616) Study of combinatorial and graphical
techniques for complexity analysis including generating functions, recurrence
relations, Polya's theory of counting, and NP complete problems.
CSC 630
-Parallel Programming Techniques Prerequisites: Operating Systems (CSC
306) and a good knowledge of C and Unix. An application oriented course
which will use a hands-on approach to teach methods for programming
parallel applications on single and multi-cpu machines.
CSC 632
-Artificial Intelligence. Prerequisite: Introduction to Artificial Intelligence
(CSC 412) Relatively unfocused, relatively focused, heuristic, and probabilistic
reasoning. Production rule systems. Knowledge-based and expert systems.
Survey of current research.
CSC 633
-Distributed Database Systems Prerequisite: Analytical Models of Operating
Systems (CSC 623) A consideration of the problems and opportunities
inherent in distributed databases on a network computer system. Includes
file allocation, directory systems, mutual exclusion, deadlock detection
and prevention, synchronization, query optimization, and fault tolerance.
CSC 634
-Information Storage and Access Prerequisite: Database Management Systems
Design (CSC 411) Advanced data structures, file structures, and databases,
with an emphasis on specialized problem areas. Access and maintenance
issues.
CSC 636
-Modeling and Simulation Prerequisite: Basic Probability (CSS 415 or
MAT 470) A study of the construction of models which simulate real systems.
Includes probability and distribution theory, statistical estimation
and inference, the use of random variates, and validation procedures.
A simulation language is used for the solution of typical problems.
CSC 638
-Advanced Computer Algorithms Prerequisite: Algorithms (CSC 413) Study
of recent advances in algorithm design and analysis.
CSC 640
-Mathematical Programming Prerequisites: Linear Programming (CSS 320)
and Linear Algebra (MAT 326) Modeling, Simplex Method and modifications,
duality. Networks and integer programming algorithms.
CSC 644
-Advanced Robotic Systems Prerequisite: Robotic Systems (CSC 444) To
introduce students to advanced topics and prospective research areas
in the field of robotics and its relation to AI, world modeling and
simulation.
CSC 645
-Expert Systems Prerequisite: Artificial Intelligence (CSC 632) Review
of classical expert systems. Study of knowledge representation, acquisition
and epistemology to formulate rule based systems. Study of inference
engines using statistics, Bayes' Theorem, Heuristic Techniques.
CSC 690
-Seminar in Computer Science. (1 hour credit)
CSC 691
-Topics in Computer Science Special topics in computer science of current
interest to faculty and students, e.g., robotics, neural networks, pattern
recognition. May not be repeated more than two times for credit.
CSC 695
-Directed Study (1-3 hours credit) Individual study by a student on
an area or problem approved by the student's academic adviser.
CSC 697
-Independent Study and Research (1-9 hours credit) Not to be counted
toward degree. Students who are not in residence, but who are actively
working on a thesis or project and consulting with thesis or project
adviser or making use of the library or other University facilities
must enroll in this course.
CSC 698
-Thesis (1-6 hours credit) For a total of 6 hours credit.
CSC 699
-Project (1-3 hours credit) For a total of 3 hours credit.
A student
may not receive graduate credit for a course which, to some extent, duplicates
work for which credit was received as an undergraduate. Should a graduate
course which previously duplicated an undergraduate course be changed
so that its content is significantly different, then the student may take
the graduate course after obtaining permission from his/her graduate committee.