Ohio University
Graduate Catalog

Computer Science



The Department of Computer Science does not offer an advanced degree program. However, if you wish to study computer science at the graduate level, you may apply credit for the courses listed below (except 521, 522, and 599) in a master's degree in Mathematics.

Courses 521, 522, and 599 are offered to provide programming instruction for graduate students who wish to use the computer as a research tool in various disciplines.


Computer Science (CS) Courses

500 Introduction to Discrete Structures (5)
Review of set algebra including mappings and relations. Algebraic structures including semigroups and groups. Elements of theory of directed and undirected graphs. Boolean algebra and propositional logic. Applications of these structures to various areas of computer science.

504 Design and Analysis of Algorithms (5)
Prereq: 561. Correctness of algorithms. Analysis of efficiency of algorithms--recurrence relations, worst-case and best-case behavior, average-case behavior. Design of algorithms: divide-and-conquer and balancing, greedy method, graph searching, dynamic programming, backtracking, branch-and-bound and preprocessing techniques.

506 Computation Theory (5)
Prereq: 500 and PHIL 520. Algorithms, recursive functions, Turing machines, decidability.

510 Formal Languages and Syntactic Analysis (5)
Prereq: 520 and 561. Definition of formal grammars: arithmetic expressions and precedence grammars, context-free and finite-state grammars. Algorithms for syntactic analysis: recognizers, backtracking, operator precedence techniques. Semantics of grammatical constructs: reductive grammars, Floyd productions, simple syntactical compilation. Relationship between formal languages and automata.

511 Concurrent Programming (5)
Prereq: 520 or 561. Emphasizes and compares concurrency issues in programming languages. Remote procedure call, asynchronous buffered message passing, synchronized unbuffered message passing, and shared memory are studied, comparing and contrasting programming techniques appropriate for different communication mechanisms and assessing the relative effectiveness of the mechanisms in different problem domains. An introduction to Petri Net and its application to designing concurrent software are given.

512 Parallel Computing l (5)
Prereq: 561. This course is divided into two parts. The first familiarizes students with the variety of approaches to parallel computing and the strengths and weaknesses of each. The second part introduces some of the methods for developing parallel algorithms and analyzes their performance. Different methods for mapping algorithms onto several different parallel architectures and the advantage and disadvantage of each are studied. Algorithms discussed include parallel sorting, searching, and matrix operations.

520 Organization of Programming Languages (5)
Formal definition of programming languages including specification of syntax and semantics. Simple statements including precedence, infix, prefix, and postfix notation. Global properties of algorithmic languages including scope of declarations, storage allocation, grouping of statements, binding time of constituents, subroutines, co-routines, and tasks. List processing, string manipulation, data description, and simulation languages. Run-time representation of program and data structures.

521 Computing for Engineers and Scientists (5)
Prereq: differential equations. Principles and practice of computer solution of problems involving extensive numerical calculations as found in physical sciences, engineering, and numerical mathematics.

522 Computing with Statistical Packages (5)
Prereq: statistics. Approximately half of course devoted to programming solutions to problems using FORTRAN, PASCAL, or PL/1. Emphasis on problem analysis, syntax, testing, and debugging of computer solutions to problems. Second half devoted to study of use of such statistics packages as SPSS for solution of statistical problems encountered in study of social, biological, and educational sciences.

529 Topics in Computer Science for Elementary and Secondary Teachers (1-5)
Selected topics in computer science of interest to teachers in grades K-12. (May be repeated for credit.)

540 Computer Organization (5)
Organization of digital computer. Data representation and internal transfer. Digital arithmetic logic unit, control section, and timing. Input-output devices and channels. Software-hardware interfaces.

542 Operating Systems and Computer Architecture I (5)
Prereq: 540. In-depth coverage of computer operating systems and related computer architecture issues. Coverage of physical devices, interrupts, and communication between the computer and external hardware. Interfaces between user programs and the operating system, system calls, software interrupts, and protection issues. Context switching, process address spaces, and process scheduling. Process synchronization, interprocess communications, critical sections, and deadlock detection and recovery. Memory mapping, swapping, paging, and virtual memory.

544 Data Communications (5)
Prereq: 542. In-depth coverage of computer-to-computer and program-to-program communication over modern computer networks focusing on the TCP/IP protocol family. Review of data communication issues, physical address binding, bridging, Ethernet, and Token Ring. Internetwork protocols, routing, domains, networks, and subnetworks. Transport protocols, reliability, flow control, retransmission, and acknowledgment. Distributed systems, server and client issues including verification, and authentication. High-level protocols and applications including electronic mail, network news, remote terminal interaction, and the World Wide Web.

556 Software Design and Development (5)
Prereq: 520 and 561. Review of 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.

558 Operating Systems and Computer Architecture II (5)
Prereq: 542. Continuation of 542. Detailed discussion of virtual memory and backing stores. File system interfaces, implementation, and protection mechanisms. Process scheduling issues, policies, and mechanisms. Interprocess communication between programs on different computers. Distributed systems issues, examples, and implementation.

561 Data Structures (5)
Prereq: 500. Basic concepts of data. Linear lists, strings, arrays, and orthogonal lists. Representation of trees and graphs. Storage systems and structures, and storage allocation and collection. Multilinked structures. Symbol tables and searching techniques. Formal specification of data structures, data structures in programming languages, generalized data management systems.

562 Database Systems I (5)
Prereq: 561. The course introduces fundamental concepts in data modeling and relational database systems. It begins with ER modeling technique as a tool for conceptual database design. Relational data model and relational algebra are introduced next. Two database query languages, Tuple Relational Calculus and SQL/3, are discussed, followed by normalization theory and file organization and access methods.

563 Database Systems II (5)
Prereq: 562. Primary focus is on relational database system implementation techniques and recent and emerging database technologies. More specifically, query processing and optimization techniques and transaction management concepts are examined in greater depth. Object-oriented databases, distributed and multidatabases, and deductive database systems are also discussed. Emerging database technologies including spatial databases, geographic information systems, scientific and statistical databases, CAD/CAM databases, image databases, and multimedia database systems are overviewed.

564 Information Storage and Retrieval Systems (5)
Prereq: 562. Introduction to both fundamental and advanced concepts in modern information retrieval. Approaches and algorithms for automatic indexing are discussed. File and access structures for implementing information retrieval systems are studied. Several information retrieval models are investigated in detail. Methods for quantifying retrieval effectiveness and enhancing retrieval effectiveness via user relevance feedback are examined. Hypertext/hypermedia principles are introduced and distributed hypermedia systems studied.

580 Artificial Intelligence (5)
Prereq: 520 and 561. Definition of heuristic vs. algorithmic methods, rationale of heuristic approach, description of cognitive processes, and approaches to mathematical invention. Objectives of work in artificial intelligence, simulation of cognitive behavior, and self-organizing systems. Heuristic programming techniques including use of list processing languages. Survey of examples from representative application areas. Mind-brain problem and nature of intelligence. Class and individual projects to illustrate basic concepts.

581 Information Organization and Retrieval Projects (5-15)
Prereq: 556 and 564. Project course in information organization and retrieval. Each student must complete a project successfully and present results. Lectures by instructor and guest speakers.

582 Artificial Intelligence Practicum (5)
Prereq: 580. Work on a major project in one of the basic areas of AI investigation. These include natural language processing, vision simulation, intelligent database systems, heuristic state-space search, and inferential networks. Emphasis on program self-modification through feedback mechanisms.

590 Special Problems in Computer Science (5-15)
Special project in one of various subfields of computer science or application area studied, investigated, and/or solved by individual student or small group working in close relationship with instructor. Suitable problems might include construction of compiler for special purpose artificial language, perfection of computer code to solve some significant problem, or study of coherent subfield or computer science. May be repeated for credit.

599 Elementary Topics in Computer Science (1-15)
Special topics omitted in student's undergraduate preparation for graduate study. May be repeated for credit.

601 Mathematical Models of Sequential Machines (5)
Prereq: 500. Definition and representation of finite state automata and sequential machines. Equivalence of states and machines, congruence, reduced machines, and analysis and synthesis of machines. Decision problems of finite automata, partitions with substitution property, generalized and incomplete machines, semigroups and machines, probabilistic automata, and other topics.

612 Real Time Systems (4)
Prereq: 511, 556, 558. Discusses real-time systems and their design principles. Studies the particular characteristics of these systems and some real-time programming languages.

613 Parallel Computing II (5)
Prereq: 512. Continuation of Parallel Computing I. Parallel algorithms discussed include: sorting and fast Fourier Transform, dictionary operations, matrix operations, recurrence relations, partial differential equations, Gaussian elimination, graph algorithms, combinatorial search, and logic programming.

651 Modeling and Analysis of Computer Systems (5)
Prereq: 542, 562, and MATH 550. Computer systems characterized by hardware, software, and operating environment which can be evaluated. Models of portions or functions of batch, timesharing, or real-time computer systems developed and analyzed. Simulation, queuing, scheduling methods, and probability and statistics used as tools.

652 Modeling and Analysis of Computer Systems (5)
Prereq: 651. Continuation of 651.

657A Software Specification (5)
Prereq: 556. Analysis, specification, and planning of a software system--user's view. Requirements analysis, block diagram and prototype, user manual, test plan, estimates of effort, and schedule of reviews for 657B.

657B Software Design (5)
Prereq: 657A. Module specification, project data base configuration--implementor's view. Module interface specifications, module bodies in Program Design Language (PDL), module test plans, estimates of effort, and schedule of reviews for 657C.

657C Software Implementation (5)
Prereq: 657B. Module body coding, unit test, integration, system test, and acceptance.



Return to 1995-1997 Graduate Catalog Table of Contents


Ohio University Front Door


University Publications and the Computer Services Center revised this file (http://www.ohiou.edu/~gcat/95-97/areas/math.html) April 13, 1998.

Please e-mail comments or suggestions to "gcat@www.cats.ohiou.edu."