COMPUTER SCIENCE
COURSES OFFERED

FOUNDATION COURSES

CSC 3645 Introduction to Graphics
3 credits

Workstations will be used to introduce elementary two-dimensional and three-dimensional graphic
techniques. Plotting of points, lines, and curves; two-dimensional animation and planar transformations; windows; viewports and clipping; three-dimensional viewing techniques including projection; three-dimensional space transformations; hidden lines and surfaces; color, shading and elementary lighting models. Prerequisite: CSC 3805.

CSC 3675 Discrete Structures 
3 credits

An introduction to the basic concepts of discrete mathematics essential to Computer Science. Topics
include logic, sets, relations, functions, recurrence, equations, combinatorics, techniques of mathematical proof. Carries no credit toward M.S. in Computer Science. 

CSC 3805 Data Structures 
3 credits

The implementation of abstract data types (lists, trees, graphs, tables) with applications to searching,
sorting, and pattern matching. Analysis of the space complexity of the data structure and of the time complexity of the associated algorithms and the trade off between them. Students will implement the various data structures in a series of programming assignments. Prerequisites: CSC 1621, CSC 3675. Carries no credit toward M.S. in Computer Science.

CSC 3835 Systems Programming and Networks 
3 credits

The process model of computation; the producer consumer problem. System Calls and Interprocess
communication. The OSI network model. sockets and remote procedure calls. Prerequisite: CSC 3805. Carries no credit toward M.S. in Computer Science.

CSC 3875 Formal Languages and Compiler Construction 
3 credits

Introduction to formal languages and abstract machines, i.e. finite automata and regular sets; context-free
grammars and pushdown automata. Application of these ideas to the construction of compilers and other language translation software. The course will include programming projects that will illustrate the major features of compiler construction. Prerequisite: CSC 3805. 

CSC 3955 Principles of Programming Languages 
3 credits

The general principles underlying programming languages, including such topics as syntax and its
specification, data types, data abstraction, sequence control, and storage management. Examples drawn from a variety of programming languages, including procedural, functional, and logical ones. Prerequisite: CSC 3805.

CORE COURSES

CSC 4015 Design and Analysis of Algorithms 
3 credits

Concepts of program complexity; basic approaches to complexity reduction: data structures and
techniques; worst cases and expected complexity—applications to sorting; set manipulation, graph algorithms, matrix multiplication, and finite Fourier transforms; polynomial arithmetic, and pattern matching. Prerequisite: CSC 3805. 

CSC 4025 Operating Systems Design 
3 credits

Introduction to different types of operating systems; overview of operating system architecture, processes,
operations on processes; shared resources; protection; memory management; resource allocation; scheduling; deadlocks, and file management. Prerequisites: CSC 3835, CSC 4055. 

CSC 4055 Modern Computer Architecture 
3 credits

Performance measurements; CPU: CISC vs RISC; memory system design: cache and virtual memory;
pipeline design techniques: design and efficiency; characteristics of numerical applications; vector computers; multiprocessors: small and large scale, cache coherence; multiprocessor algorithms: synchronization and examples.

CSC 4085 Introduction to Software Engineering 
3 credits

The opportunity to work in small groups on the development of a software package. A language based on
modern language design principles is used. Prerequisite: CSC 3805. 

CSC 4135 Theory of Computation: Automata and Formal Languages 
3 credits

Formal languages, formal grammars, abstract machines and their interrelationships. Includes finite
automata and regular languages; context free grammars and languages; Turing machines. Prerequisite: CSC 3675. 

CSC 4145 Theory of Computation: Computability and Decideability 
3 credits

Models of computation (Post-Turing, Turing and Random Access Machines); recursive functions;
recursively enumerable sets; undecideability and noncomputability. Prerequisite: CSC 3675. 

ADVANCED COURSES

CSC 5065 Database Systems 
3 credits

The architecture and use of database systems: data models (entity-relationship, relational, and object-oriented).
SQL, normalization, storage structures, query optimization, database security and integrity. Prerequisite: CSC 3805. 

CSC 5075 Elements of Artificial Intelligence 
3 credits

LISP or Prolog and some elementary applications to games, problems, and search spaces; depth-first,
breadth-first, and best-first search; logical basis of expert systems; elements of game theory. Prerequisites: CSC 4015, CSC 3675.

CSC 5125 Theory of Programs and Program Verification 
3 credits

Symbolic logic and mechanized deduction; program specification; loop invariants; the proof methods of
Floyd and Hoare; parallel computations; program semantics. Prerequisite: CSC 4015. 

CSC 5135 Combinatorial Algorithms 
3 credits

The course is organized around the central question of how one can generate combinatorial objects
sequentially or uniformly at random. Topics include generating subsets, k subsets, permutations, set partitions, and integer partitions; Gray codes; prefabs; and combinatorial family graphs. Prerequisite: CSC 3675.

CSC 5145 Parallel Algorithms 
3 credits

Parallel algorithms for a wide range of problems (sorting, graph algorithms, numerical algorithms, matrix
algorithms) for a variety of models of parallel computation are considered. The focus is on the design and analysis of such algorithms; architecture and language issues are dealt with only peripherally. Prerequisite: CSC 4015.

CSC 5215 Distributed Systems 
3 credits

The ISO Network model, TCP/IP, Client server, sockets, remote procedure call, XML, Distributed
Computation and process migration, Security in distributed systems. Prerequisite CSC 4025. 

CSC 5235 Data Communications 
3 credits

Topics include mathematical foundations of data communications, logical and physical organizations of
computer networks, the ISO model, communication protocols, TCP/IP, circuit and packet switching, internetworking, LAN/MAN/WAN technologies and data encryption/decryption. Prerequisite: CSC 3805.

CSC 5315 Advanced Computer Architecture 
3 credits

A study of techniques for the design of high performance computers and the associated algorithms. Cache
and virtual memory, pipelines, vector computers, multiprocessors, current trends. Prerequisite: CSC 4055. 

CSC 5415 Complexity of Computation 
3 credits

P and NP problems; NP-complete classes; concrete complexity and the P class of combinatorial problems;
complexity reduction on graph and string problems; complexity of algebraic computations. Prerequisite: CSC 4135 or CSC 4145.

CSC 5515 Advanced Database Systems 
3 credits

Cocurrency control, recovery, distributed databases, transaction management. Other topics will vary—
e.g., data mining, data warehousing, benchmarking, object-oriented database systems, deductive databases, multi-attribute indexing. The course includes a programming project. Prerequisite: CSC 5065.

CSC 5655 Advanced Graphics 
3 credits

Three-dimensional modeling and advanced rendering techniques: hidden line and hidden surface
removal including z-buffer, shading models including Gouraud and Phong shading, illumination models including shadows, diffuse and specular reflections via ray tracing and radiosity, antialiasing, and curve and surface drawing. Students are expected to be proficient in the C programming language and to have had some background in three-dimensional graphics techniques. Prerequisite: CCS 3645 or permission of the instructor.

CSC 5715 Theory of Intelligent Systems 
3 credits

Mathematical definition of problems and problem solving strategy; classes of search-reducing heuristics
and their properties; games and strategies; logical descriptions of heuristics; induction; learning from examples; linguistic and statistical issues. Prerequisite: CSC 5075. 

CSC 5735 Natural Language Processing 
3 credits

Languages for natural language processing, finite state techniques, transition networks, parsing,
ambiguity, semantics, question answering and inference. Prerequisite: CSC 5075. 

CSC 5815 Numerical Algorithms 
3 credits

Exposition and analysis of numerical methods for modern computers; review of basic concepts in linear
algebra; direct and interactive methods for solving linear and nonlinear problems in numerical algebra; basic problems in approximation theory, numerical differentiation and integration; numerical solutions of differential equations; forward and backward error analysis of algorithms; criteria for comparing the efficiency and suitability of numerical methods. Prerequisite: MAT 1391 or MAT 1461. 

CSC 5825 Information Theory and Coding 
3 credits

Data encoding and transmission; variable length coding; the Kraft inequality for noiseless transmission
channels; channel capacity; noisy channels and channel capacity; the Shannon coding theorems; and algebraic coding schemes. Prerequisite: MAT 2221 or equivalent. 

CSC 5835 Discrete Simulation 
3 credits

Simulation modeling is used to evaluate the performance of existing or proposed systems under various
scenarios. This course introduces students to basic queueing models, methods of statistical analysis, pseudo-random generators and simulation languages. The methodologies of discrete simulation will be developed through the applications to the design and operation of complex systems found in business management and network communication. Prerequisite: MAT 2221 or equivalent. 

CSC 5845 Parallel Computing 
3 credits

General: classifications, measures of performance, significant problems requiring parallel solutions.
Hardware: study of the various topologies of processors, interconnection schemes, and the consequences of using shared-memory, distributed-memory, data-flow data management. Software: algorithms for new and old problems based on the various configurations discussed under hardware. Prerequisite: CSC 4015. 

CSC 5855 The Design of User Interfaces 
3 credits

User models: conceptual, semantic and syntactic considerations; forms based interfaces; direct
manipulation; the model, view controller architecture; windowing systems; widgets and toolkits. Implementations and their architectures. Students will use toolkits to design a GUI. Prerequisite: CSC 3835.

CSC 6015 Research Project 
3 credits

CSC 6025 Research Project 
3 credits

CSC 6035 Research Project 
6 credits


INQUIRIES
Gary Laison, Ph.D., Director
 
Graduate Computer Science Program
Barbelin 231
(610) 660-1570, (610) 660-1540

 

SJU Homepage | Search SJU | A to Z Index

Page last updated: September 22, 2000 05:23 PM
Copyright © 2000 Saint Joseph's University. All Rights Reserved.