COMPUTER SCIENCE Graduate Courses (2001-2002)


CS 501A Cr.3--- recent syllabus
Computer Programming Essentials

This is an introductory level course in computer programming for newly admitted graduate students. Students will learn basic concepts in modern computer programming. Students will complete all programming exercises and assignments in the C++ programming language. Students will also be introduced to the Unix program development environment.
Prerequisites:
some programming experience

CS 501B Cr. 3-- recent syllabus
Program Development

Intensive coverage of the essential aspects of programming featuring C++ with elements of C. Syntax and semantics, the compilation process. The object-orientation paradigm, program structure, program design, coding, debugging. Input/output. Unix support for C and C++. Software testing and maintenance.
Prerequisites: Open only to those students accepted in the MS program in Computer Science; students should have had CS501A, CS175 or the equivalent. Assumes knowledge of C++ syntax.



CS 502 Cr. 3  --recent syllabus
Theoretical Foundations of Computer Science

Computer applications of the following areas: probabilities, distributions, random numbers, essential combinatorics; recursion and recursive formulas; generating functions; elements of linear algebra. 
Prerequisites: Open only to those students accepted in the MSCS program in Computer Science.



CS 503 Cr. 3-- recent syllabus
Advanced Programming I

Design and implementation of commonly used algorithms and their associated data structures, including: linked lists, stacks, queues, trees, graphs, internal and external sorting, static and dynamic hashing. Applications to problem solving and object-oriented design of moderate sized programs.
Prerequisite: CS 500 (Program Development) or departmental placement.



CS 505 Cr. 3--recent syllabus
Operating Systems Concepts

The basic concepts of Operating Systems from the point of view of an advanced user: the interaction of the kernel, the command interpreter, and user processes. Focus is on process and resource management, concurrency control, and interprocess communication. Examples and projects are based mainly on Unix. The course also includes an introduction to computer architecture from an Operating Systems perspective (processors, devices, interrupts, clocks, etc.)
Prerequisite: CS 500 

Prerequisite:  CS 503.



CS 509 Cr. 3--recent syllabus
Advanced Programming II

This is the last in a sequence. Algorithmic design: greedy algorithms, divide and conquer, dynamic programming, backtracking, probabilistic algorithms. Solving complex problems. Designing and implementing large programs. Students who complete CS509 will be capable of designing, writing, analyzing, and maintaining sizable programs (>1000 lines of C++code). 
Prerequisites: CS 502 and CS 503.



CS 510 Cr. 3
Programming Languages

Concepts in programming languages, data abstraction, control abstraction, program correctness, functional programming and language design. Historical and current programming languages are studied. Computer laboratory work is required. 
Prerequisite: CS 509.



CS 511 Cr. 3 --recent syllabus
Technical Communication

Preparation, analysis, synthesis, and presentation of system documentation, technical papers, and data flow diagrams; literature search. 
Prerequisites: Open only to those students accepted in the MS program in Computer Science.



CS 512 Cr. 3 --recent syllabus, syllabus 2
Algorithm Design 

Design and analysis of algorithms. Dependence of algorithm efficiency on data structure choice. Correctness of algorithm implementation. Basic design techniques and their applications to programming with fundamental structures. 
Prerequisite: CS 509.



CS 514 Cr.3--recent syllabus
Networks

This is an introductory level course on the hierarchy of networking software and hardware. Particular emphasis on medium Access Control, Network layer, Transport layer and Session layer. Several MAC-layer protocols, TCP/IP. 
Co-requisite: CS 502.



CS 515 Cr. 3
Formal Methods

The use of formal specifications to describe the behavior of computer systems and the use of formal proof methods to verify design. 
Prerequisite: CS 509.


CS 517 Cr. 3 --recent syllabus
Database Systems

Introduction to database systems, data modeling, query languages, file organization methods, and query processing. Coverage of relational database design and relational database management systems. 
Prerequisites: CS 502 and CS509.


CS 519 Cr. 3
Advanced Operating Systems

An advanced course in operating systems with a number of case studies. Emphasis is placed on issues in both centralized and distributed operating systems (concurrency control, resource management, file systems, network interface). The course has a UNIX flavor; some prior knowledge of C will be an asset, but is not necessary. 
Prerequisites: CS 505 and CS 509.



CS 520 Cr. 3
Introduction to Intelligent Systems

Introduction to high-level knowledge representation issues. Applications include Java-based rule-based systems and agents to make retrieval more intelligent than the conventional methods. 
Prerequisite: CS 500.



CS 521 Cr. 3
Artificial Intelligence

Basic and advanced methods in symbolic and quantitative artificial intelligence through Lisp programming techniques. Current issues concerning rule-based vs. statistical methods via applications. 
Prerequisites: CS 502 and CS509.



CS 522 Cr. 3 --recent syllabus
Communications Systems

A systems overview of analog and digital communications systems primarily intended for non-engineering students. Fundamental limits on the rate of transfer of information due to the effects of bandwidth and noise. Impact of transmission media (e.g., wireless, fiber optic, cable) on the transmission rate. The use of coding to reduce the effects of noise. This course is not appropriate for students who have taken EE517-Communication Theory or an undergraduate course in communications.



CS 524 Cr. 3
Complexity of Algorithms

Design and analysis of algorithms, including computer models, searching and sorting, matrix operations, graph algorithms, pattern matching, and NP-complete problems. 
Prerequisite: CS 512. 



CS 525 Cr. 3 -  recent syllabus
Simulation

Formal models of discrete event systems, computer simulation of models, analysis of simulation results. Discrete event simulation is applied to studying the performance of computer and communication systems. Object-oriented design and programming in C++.
Prerequisites: CS 503 and CS 514.



CS 526 Cr. 3-- recent syllabus
Performance Evaluation

The role of performance evaluation in the product lifecycle. Introduction to Markov chains and elementary queuing theory. Complementary roles of analytic and simulation methods. Applications to performance evaluation of computer and communication systems. 
Prerequisites: CS 500 and CS 502.



CS 527/CS627 Cr. 3 recent syllabus
Quantitative Systems Engineering

Development of methods and techniques for analyzing the performance of complex systems. Applications to the performance engineering of computer/communications systems including distributed computing/information systems, and integrated telecommunications (e.g. BISDN/ATM networks). 
Prerequisites: CS 514 and CS 526.



CS 528 Cr. 3
Case Studies: Systems Modeling and Simulation

Case study approach to modeling and simulation. Focus on performance and simulation problems from actual work environments. 
Prerequisite: CS 526.



CS 529 Cr. 3
Graph Algorithms

Major graph algorithms including but not restricted to path, flow, matching and covering algorithms. The Chinese postman problem and the traveling salesman problem will also be discussed. 
Prerequisite: CS 512.



CS 530 Cr. 3
Knowledge-Based Systems

Fundamental techniques in building knowledge-based systems using logic programming technology. Applications of knowledge-based systems. Prolog programming techniques. Using advanced Prolog programming techniques. 
Prerequisites: CS 517 and CS 520.



CS 531 Cr. 3
Intelligent Interfaces

Computer-human interfaces that use speech understanding and image processing (such as handwriting). 
Prerequisite: CS 521.


CS 532 Cr. 3
Compiler Design

The major techniques used in compiler writing, lexical analysis, syntax analysis, storage management, error detection and recovery, code generation (LEX, YACC, etc.). 
Prerequisite: CS 512.


CS 533 Cr. 3
Advanced Database Systems

New data models and database languages. Advanced database applications. Transactions processing. 
Prerequisite: CS 517.


CS 535 Cr. 3- recent syllabus
Telecommunications

In-depth coverage of the lower layers of the network hierarchy. Physical layer, Data Link layer, Network layer, and Transport layer. 
Prerequisites: CS 505 and CS 514.



CS 536 Cr. 3
Introduction to Formal Languages and Automata

Definition and properties of phrase structure languages and their relation to automata. Emphasis on context-free and regular languages. 
Prerequisite: CS 512. 



CS 537 Cr. 3--recent syllabus
Client-Server Interfaces

Design of client-server systems. This is a project-dominated course. Students from the AI stream will design and implement a distributed client-server system for some AI application, while students from the COMPUTER NETWORKS stream will be more involved in Transport layer issues. Coverage of the higher layers of the network hierarchy. Transport layer, Session layer and Application layer. Programming with TCP and UDP. 
Prerequisites: CS 514 and CS 505.



CS 545 Cr. 3 -- recent syllabus
Graphics

Drawing with a graphics kernel, 2D and 3D transformations, view transformation , area filling, line and polygon clipping, hidden surface algorithms, curves and surfaces, Gouraud and Phong shading, pattern and texture mapping, fractals, and rendering using a ray-tracer. 
Prerequisite: CS 509.



CS 550 Cr. 3 --recent syllabus
Computer System Architecture

Computer system interconnection structures, central processing unit, control unit, microprogrammed control, memory organization, cache and virtual memory, computer arithmetic, RISC processors, introduction to parallel processing, and case studies.
Prerequisites: CS 503.


CS 551 Cr. 3 -  recent syllabus
Parallel Processing

Parallel computer paradigms, parallel processing applications, conditions of parallelism, scalable computer platforms parallelism issues, performance metrics and benchmarking, speedup performance laws for parallel systems, parallel memory organization, interconnection networks, multiprocessing and multiprocessors, multi-computers, massively parallel systems, mapping applications to parallel systems, and case studies.
Prerequisites: CS 550 or equivalent.


CS 560 Cr. 3
Masters Seminar

Emphasis on preparation, analysis, synthesis, and presentation of software system documentation, project progress reports, and technical papers based on literature research. 
Prerequisites: Completion of 21 credits towards the M.S. degree, including three core courses.



CS 561 Cr. 3-6
Project/Thesis Course

Project/thesis experience from 3 to 6 credits under the supervision of faculty engaged in research.



CS 588 Cr. 1
Curricular Practical Training

This course provides an opportunity for Computer Science or Software Engineering graduate students to obtain related “practical training” in employment at a local company or institution, with Monmouth University sponsorship. This one-credit course is available to CS graduate students who have completed at least 9 credits hours of graduate courses (500 level) with a GPA of 3.0 or better. It does not satisfy elective requirements in the curriculum. Students may take the course no more than two times (2 CPT credits). For each credit, student must accumulate at least 20 hours per week of work experience over at least 8 weeks. Prerequisites: Must have completed 9 credit hours of graduate courses (500 level), with a minimum GPA of 3.0.


CS 590 Cr. 6
Thesis

Independent investigation of special topics reflecting the research interests of the sponsoring professor. Sequential registration for one or more credits is required until successful project completion. 
Prerequisites: Completion of 21 graduate credits, including three core courses, and departmental permission.



CS 598 Cr. 3
Special Topics 

The subject matter varies with the interest of the students and of the professor teaching the course. The exact nature of the topic covered in any given semester is indicated in the student's transcript. 



CS 599 Cr. 3
Independent Study

Independent study in a topic not substantially treated in a regular graduate course, for students with superior ability; weekly consultation. Prior permission of directing professor and the graduate program director is required.

CS627 (see CS527, above)

CS 635 Cr. 3 recent syllabus
Advanced Wireless Networking

This graduate course covers the fundamental techniques in the design, operation, and evaluation of wireless networks. Among the topics: first, second, third, and fourth generation wireless systems, cellular wireless networks, satellite systems, fixed wireless systems. The physical layer (medium), media access techniques, information encoding methods.  Personal area networks, wide area networks, wireless local area networks. Wireless technologies, architectures, protocols, and standards. Advanced topics. 

CS 661 Cr. 3-6
Advanced Projects

Project/thesis experience from 3 to 6 credits under the supervision of faculty engaged in research.

CS 690 Cr. 6 
Thesis

Independent investigation of special topics reflecting the research interests of the sponsoring professor. Sequential registration for one or more credits is required until successful project completion. 
Prerequisites: Completion of 21 graduate credits, including three core courses, and departmental permission.

CS 698 Cr. 3 
Advanced Special Topics

The subject matter varies with the interest of the students and of the professor teaching the course. The exact nature of the topic covered in any given semester is indicated in the student's transcript. Generally will have at least one pre-requisite at the 521+ level.