CATALOG HOME | UNDERGRADUATE | GRADUATE | DISTANCE LEARNING | ADMISSIONS | REGISTRAR | NJIT | CATALOG(PDF) | CATALOG ARCHIVE
cs
Computer Science:    
 
UNDERGRADUATE COURSES:

CIS 113A - Lab (0-0-0)
Lab for CIS 113. Effective Until: Summer 2006

CIS 114A - Lab (0-0-0)
Lab for CIS 114. Effective Until: Summer 2006

CS 101 - Computer Programming and Problem Solving (2-1-2)
An introductory course in computer science and programming (using MATLAB, C++, or other languages) and its use in solving engineering and scientific problems. The emphasis is on the logical analysis of a problem and the formulation of a computer program leading to its solution. Topics include basic concepts of computer systems, algorithm design, programming languages and data abstraction. Designed for students not specializing in computer science.

CS 102*** - Computer Science with Problem Solving (3-1-3)
An introductory course in computer science, with applications to engineering and technology problems. Emphasis on programming methodology using a high level language (such as FORTRAN) as the vehicle to illustrate concepts. Topics include basic concepts of computer systems, software engineering, algorithm design, programming languages and data abstraction, with applications. Effective From: Fall 2006

CS 103*** - Computer Science with Business Problems (3-1-3)
An introductory course in computer science, with applications to business and managerial decision making. Emphasis on programming methodology using the COBOL language as the vehicle to illustrate concepts. Topics include basic concepts of computer systems, software engineering, algorithm design, programming languages and abstraction, with applications. Effective From: Fall 2006

CS 104 - Computer Programming and Graphics Problems (2-1-2)
Corequisite: Math 138. An introductory course in computer science with applications in computer graphics for architecture. Emphasis on programming methodology using a high level language as the vehicle to illustrate the concepts. Topics include basic concepts of computer systems, software engineering, algorithm design, programming languages and data abstraction, with applications. Effective From: Fall 2006

CS 110 - Introduction to Computer Science IA (3-0-3)
First semester of a two course sequence, equivalent to CS 113. Introduces fundamentals of computer science, with emphasis on programming methodology and problem solving. Topics include basic concepts of computer systems, software engineering, algorithm design, programming languages and data abstraction, including the development environment, native types, expressions, objects, classes, decisions, iteration, and methods. A high level language (Java) is fully discussed and serves as the vehicle to illustrate many of the concepts. Effective From: Fall 2006

CS 110A - CS 110A Computer Science Lab for CS 111 ((0-1.5-0))
Laboratory module for the first course of the sequence equivalent to CS 113. Effective From: Fall 2006

CS 111 - Introduction to Computer Science IB (3-0-3)
Second semester of a two course sequence, equivalent to CS 113. Introduces fundamentals of computer science, with emphasis on programming methodology and problem solving. Topics include basic concepts of computer systems, software engineering, algorithm design, programming languages and data abstraction, including methods and classes, arrays, collections, inheritance and polymorphism, exceptions, recursion, testing and debugging. A high level language (Java) is fully discussed and serves as the vehicle to illustrate many of the concepts. Effective From: Fall 2006

CS 111A - CS111A Computer Science Lab for CS 111 ((0-1.5-0))
Laboratory module for the second course of the sequence equivalent to CS 113. Effective From: Fall 2006

CS 113 - Introduction to Computer Science (3-0-3)
Fundamentals of computer science are introduced, with emphasis on programming methodology and problem solving. Topics include basic concepts of computer systems, software engineering, algorithm design, programming languages and data abstraction, with applications. A high level language is fully discussed and serves as the vehicle to illustrate many of the concepts. CIS majors should enroll in CS 113. Students who receive degree credit for CS 113 may not receive degree credit for CIS 213. Effective From: Fall 2006

CS 113A - Lab (0-1.5-0)
Lab for CS 113. Effective From: Fall 2006

CS 113H - Honors Introduction to Computer Science I (3-0-3)
Prerequisite: Satisfactory performance on placement exam and/or departmental approval. A course similar to CS 113, but material is covered in greater depth. Honors students contemplating a major in computer science, or who plan to take advanced electives in computer science, should take CS 113H instead of CS 101H. Students who receive degree credit for CS 113H cannot receive degree credit for CS 213. Effective From: Fall 2006

CS 114 - Introduction to Computer Science II (3-0-3)
Prerequisites:; CS 113 or completion of a required 100 level GUR course in CIS, plus an approved CIS 105. A study of advanced programming topics with logical structures of data, their physical representation, design and analysis of computer algorithms operating on the structures, and techniques for program development and debugging. Course covers program specifications, correctness and efficiency, data abstraction, basic aspects of simple data structures, internal searching and sorting, recursion and string processing. Algorithmic analysis is also discussed. Students receiving degree credit for CS 114 cannot receive degree credit for CIS 335 or CIS 505. Effective From: Fall 2006

CS 114A - Lab (0-1.5-0)
Lab for CS 114. Effective From: Fall 2006

CS 114H - Honors Introduction to Computer Science II (3-0-3)
Prerequisites: CS 113H or department approval; A course similar to CS 114, but material is covered in greater depth. Students receiving degree credit for CS 114H cannot receive degree credit for CS 335 or CS 505. Effective Until: Fall 2006

CS 115 - Intro. to CS I in C++ (3-0-3)
Fundamentals of computer science are introduced, with emphasis on programming methodology and problem solving. Topics include basic concepts of computer systems, software engineering, algorithm design, programming languages and data abstraction, with applications. The high level language C++ is fully discussed and serves as the vehicle to illustrate many of the concepts. CIS majors should enroll in CS 113. Effective From: Fall 2006

CS 115A - Computer Science I Lab/C++ (0-1.5-0)
Laboratory for CS 115. Effective From: Fall 2006

CS 116 - Intro. to Computer Science II/C++ (3-0-3)
Prerequisites: CS 115 or completion of a required 100 level GUR course in CS, plus an approved CS 105. A study of advanced programming topics with logical structures of data, their physical representation, design and analysis of computer algorithms operating on the structures, and techniques for program development and debugging. Course covers program specifications, correctness and efficiency, data abstraction, basic aspects of simple data structures, internal searching and sorting, recursion and string processing. Algorithmic analysis is also discussed. Students receiving degree credit for CS 116 cannot receive degree credit for CS 505. Effective From: Fall 2006

CS 116A - Computer Science II Lab/C++ (0-1.5-0)
Laboratory for CS 116. Effective From: Fall 2006

CS 241 - Foundations of Computer Science I (3-0-3)
Prerequisites: CS 114, Math 112. An introduction to the foundations of computer science with emphasis on the development of techniques for the design and proof of correctness of algorithms and the analysis of their computational complexity. Reasoning techniques based on propositional and predicate logic and relational calculus operations with applications to databases will also be introduced. Auxiliary topics such as combinatorics of finite sets, functions and relations, and graph-theory definitions and graph storage alternatives will also be examined. Effective From: Fall 2006

CS 251 - Computer Organization (3-0-3)
Prerequisite: CS 113. An introduction to computer system structure and organization. Topics include representation of information, circuit analysis and design, register-transfer level, processor architecture and input/output. Effective From: Fall 2006

CS 252 - Computer Organization and Architecture (3-0-3)
Prerequisite: CS 113. An introduction to the organization and architecture of computer systems, including the standard Von Neumann model and more recent architectural concepts. Among the topics covered are numeric data representation, assembly language organization, memory addressing, memory systems, both real and virtual, coding and compression, input/output structures treated as programmed, interrupt, and direct memory access, and functional organization of the CPU and the computer system. Effective From: Spring 2006

CS 265 - Game Architecture and Design (3-0-3)
Prerequisite: IT 201 or equivalent. Course introduces students to the core concepts and design methodologies integral to designing and developing games and other Entertainment Software. Effective From: Spring 2007

CS 266 - Game Modification Development (3-0-3)
Prerequisites: IT 102 or CS 116, or CS 114. This course introduces students to the basic concepts of game programming and development. Students will learn how to reprogram a professional game engine, or Modification (Mod) development as it is referred to in the industry. Students will work with C extensively. Students will work on their own game projects utilizing the professional game engine. Effective From: Fall 2007

CS 276 - 2D Game Development (3-0-3)
Prerequisites: CS 265 and CS 266 or IT 265 and IT 266. This course introduces students to the core concepts and skills necessary for the development of games utilizing 2D graphics. Students will learn how to set up and program their own 2D graphics based game engine. The engine will integrate 2D graphics, audio, input handling and network socket programming. Students will learn how to utilize their own custom 2D graphics and sounds into their projects. Once complete, students will have created two fully functional games. Effective From: Spring 2007

CS 280 - Programming Language Concepts (3-0-3)
Prerequisite: CS 114 or equivalent. Conceptual study of programming language syntax, semantics and implementation. Course covers language definition structure, data types and structures, control structures and data flow, run-time consideration, and interpretative languages. Effective From: Fall 2006

CS 288 - Intensive Programming Practicum (3-0-3)
Prerequisite: CS 114 or equivalent, CS 280. The objective of this course is to raise the level of students' programming maturity by a combination of discussion of fundamental concepts and intensive practice in programming intermediate software applications. Students will use a modern development environment that offers comprehensive project management capabilities, and an appropriate programming language to develop their programs using object oriented and generic programming techniques. The course will be organized around a number of programming projects of intermediate size chosen by the faculty to illustrate a spectrum of programming development requirements and techniques. At least one project will be an introduction to programming of modern GUI applications. In addition students will be introduced to standard and commercial API's, class libraries and template libraries. Effective From: Fall 2006

CS 310 - Co-op Work Experience I (3)
Prerequisites: completion of the sophomore year, approval of the department, and permission of the Office of Cooperative Education and Internships. Students gain major-related work experience and reinforcement of their academic program. Work assignments facilitated and approved by the Co-op office. Mandatory participation in seminars and completion of a report. Effective From: Fall 2006

CS 332 - Principles of Operating Systems (3-0-3)
Prerequisite: CS 114 or equivalent. Organization of operating systems covering structure, process management and scheduling; interaction of concurrent processes; interrupts; I/O, device handling; memory and virtual memory management and file management. Effective From: Fall 2006

CS 332H - Honors Principles of Operating Systems (3-1-3)
Prerequisite: CS 114 or equivalent. A course similar to CS 332, with a project of greater depth and scope. Effective From: Fall 2006

CS 333 - Introduction to UNIX Operating Systems (3-0-3)
Prerequisite: CS 332 or equivalent and knowledge of C language. The course covers the UNIX system kernel including initialization, scheduling, context switching, process management, memory management, device management, and the file system. The course also includes the organization of shells, editors, utilities, and programming tools of the UNIX operating system. Effective From: Fall 2006

CS 341 - Foundations of Computer Science II (3-0-3)
Prerequisites: (CS 241 or MATH 226) and CS 280. This course provides an introduction to automata theory, computability theory, and complexity theory. Theoretical models such as finite state machines, push-down stack machines, and Turing machines are developed and related to issues in programming language theory. Also, the course covers undecidability and complexity theory, including the classes P and NP. Effective From: Fall 2006

CS 341H - Honors Introduction to Logic and Automata (3-0-3)
Prerequisites: completion of a 100-level GUR course in CS; CS 280, Math 226 or Math 326. A course similar to CS 341, with a project of greater depth and scope. Effective From: Fall 2006

CS 352 - Parallel Computers and Programming (3-1-3)
Prerequisites: CS 252, CS 332. A course introducing parallel computers and parallel programming. General structures and design techniques of parallel computers are described. Programming paradigms and algorithm design considerations for parallel processors will be discussed. Effective From: Fall 2006

CS 353 - Advanced Computer Organization (3-0-3)
Prerequisite: CS 252 or instructor approved equivalent. This course emphasizes the basic design principles of various components in a computer, as well as how the components are organized to build a computer. Topics include: design methodology, arithmetic and logic unit design, control unit design, memory hierarchy, memory system design, input and output devices, peripheral devices, and interfacing computers using software. A software simulation package is used to help the learning process. By the end of the semester, students will have built simulated computer. Effective From: Fall 2006

CS 357 - Fundamentals of Network Security (3-0-3)
Prerequisite: CS 114. This course offers an in depth study of network security issues, types of computer and network attacks, and effective defenses. It provides both a theoretical foundation in the area of security and hands-on experience with various attack tools, firewalls, and intrusion detection systems. Topics include: network scanning, TCP/IP stack fingerprinting, system vulnerability analysis, buffer overflows, password cracking, session hijacking, denial of service attacks, intrusion detection. Effective From: Fall 2006

CS 370 - Introduction to Artificial Intelligence (3-1-3)
Prerequisites: CS 114 and (Math 226 or CS 241). An exploration of concepts, approaches and techniques of artificial intelligence. Emphasizes both underlying theory and applications. Topics include knowledge representation, parsing language, search, logic, adduction, uncertainty, and learning. LISP and Prolog programming languages used extensively. Students are required to do programming assignments, complete a programming term project and review case studies. Effective From: Fall 2006

CS 370H - Honors Introduction to Artificial Intelligence (3-1-3)
Prerequisites: CS 114, Math 226. A course similar to CS 370, with a project of greater depth and scope. Effective From: Fall 2006

CS 371 - Logic with Applications to Computer Science (3-0-3)
Prerequisites: CS 114, Math 211 and (Math 226 or CS 241). An introduction to both the syntax and semantics (basic model theory) of first-order logic, covering one set of inference rules, sequent calculus or a tableau system and prove the completeness theorem for the proof system. You will also cover a relatively modern (and simpler) form of Incompleteness theorems and relate it to computational issues such as the halting problem, as well as issues related to automating logical reasoning. These will include Herbrand's theorem, resolution, and logic programming. Effective From: Fall 2006

CS 371H - Honors Logic with Applications to Computer Science (3-0-3)
Prerequisites: CS 114; Math 211 and 226. A course similar to CS 371, with a project of greater depth and scope. Effective From: Fall 2006

CS 375 - Application Development for WWW (3-0-3)
Prerequisite: CIS 114. A state-of-the-art computer programming language/environment, such as Java and related tools, is studied and used as a vehicle to build applications that involve graphical user-interfaces, simple graphics, multithreading, images, animation, audio, database connectivity, remote objects, and networking. Effective From: Fall 2006

CS 408 - Cryptography and Internet Security (3-0-3)
Prerequisite: Math 226 or CS 241. Covers security require-ments for telecommunication over the Internet and other communication networks, various conventional and public-key encryption protocols, digital encryption standard, RSA and ElGamal cryptographic systems, digital signature algorithm and analysis of its cryptoimmunity, and access sharing schemes. Students receiving credit for CS 408 may not enroll in CIS 608. Effective From: Fall 2006

CS 410 - Co-op Work Experience II (3 additive credits)
Prerequisites: CS 310 or its equivalent, approval of the department, and permission of the Office of Cooperative Education and Internships. Provides major-related work experience as co-op/internship. Mandatory participation in seminars and completion of requirements that include a report and/or project. Effective From: Fall 2006

CS 421 - Numerical Algorithms (3-0-3)
Prerequisite: completion of a 100-level GUR course in CIS. Corequisite: Math 222. This course deals with fundamentals of numerical methods, including discussion of errors, interpolation and approximation, linear systems of equations, solution of nonlinear equations, and numerical solution of ordinary differential equations. The algorithmic approach and the efficient use of the computer are emphasized. Effective From: Fall 2006

CS 431 - Database System Design and Management (3-0-3)
Prerequisite: CS 114 or equivalent. Database system architecture; data modelig using the entity-relationship model; storage of databases; the hierarchical, network and relational data models; formal and commercial query languages; functional dependencies and normalization for relational database design; relation decomposition; concurrency control and transactions management. Student projects involve the use of a DBMS package. Effective From: Fall 2006

CS 431H - Honors Database System Design and Management (3-0-3)
Prerequisite: CS 114 or equivalent. A course similar to CS 431, with a project of greater depth and scope. Effective From: Fall 2006

CS 432 - Advanced Operating Systems (3-0-3)
Prerequisites: CS 252, CS 332. A survey of the design and implementation of distributed operating systems, both by introducing basic concepts and considering examples of current systems. Topics include: communication, synchronization, processor allocation, and distributed file systems. Effective From: Fall 2006

CS 433 - Operating System Internals (3-0-3)
An introductory study of how the Linux operating system is built from scratch. As a hands-on course, students will perform intensive programming using Linux kernel. The contents include booting, segmentation and paging, creating and destroying processes, process switching and scheduling, handling exceptions and interrupts, software interrupts, creating system calls, creating file systems, networking with TCP/IP, device driver writing and module programming, etc. At the end of the course, students will be able to modify the Linux operating system to create their own. Effective From: Spring 2007

CS 434 - Advanced Database Systems (3-0-3)
Prerequisites: CS 431. The course covers the basic concepts of traditional files and file processing, provides a "classic" introduction to the relational data model and its languages, and discusses database design methodology and application developments. Students are expected to learn the design of database application systems through a small project and to get some practical hands-on experience with commercial database management systems (DBMS) by writing application programs using the commercial DBMS query languages. Effective From: Fall 2006

CS 434H - Honors Advanced Database Systems (3-0-3)
Prerequisites: CS 431. A course similar to CS 434, with a project of greater depth and scope. Effective From: Fall 2006

CS 435 - Advanced Data Structures and Algorithm Design (3-0-3)
Prerequisite: CS 114 and (Math 226 or CS 241). Advanced topics in data structures and algorithms, including mathematical induction, analysis and complexity of algorithms, and algorithms involving sequences, sets, and graphs such as searching, sorting, order statistics, sequence comparisons, graph traversals, etc. Optional topics include geometric, algebraic, and numeric algorithms. Effective From: Fall 2006

CS 435H - Honors Advanced Data Structures and Algorithm Design (3-0-3)
Prerequisite: CS 114 or CS 335, and Math 226 and Math 333. A course similar to CS 435, with a project of greater depth and scope. Effective From: Fall 2006

CS 438 - Interactive Computer Graphics (3-0-3)
Prerequisites: completion of a 100-level course in CIS, plus knowledge of a higher level language. This course introduces fundamental concepts of interactive graphics oriented toward computer-aided design systems. Such systems emerge in engineering, architecture, and manufacturing. Topics include computer data structures for representation of two- and three-dimensional objects and algorithms for definition, modification, and display of these objects in applications. This course will also discuss a selection of special topics in interactive graphics. Effective From: Fall 2006

CS 439 - Image Processing and Analysis (3-0-3)
Prerequisites: CS 114 and Math 333. This course is an intensive study of the fundamentals of image processing, analysis and understanding. Topics to be covered include: a brief review of the necessary mathematical tools, human visual perception, sampling and quantization, image transformation, enhancement, restoration, compression, reconstruction, image geometric transformation, matching, segmentation, feature extraction, representation and description, recognition and interpretation. Effective From: Fall 2006

CS 440 - Computer Vision (3-0-3)
Prerequisite: Math 333. This course introduces basic concepts and methodologies of computer vision, and focuses on material that is fundamental and has a broad scope of applications. Topics include contemporary developments in all mainstream areas of computer vision e.g., Image Formation, Feature Representation, Classification and Recognition, Motion Analysis, Camera Calibration, Stereo Vision, Shape From X (shading, texture, motion, etc.), and typical applications such as Biometrics. Effective From: Fall 2006

CS 441 - Database Programming (3-0-3)
Many technologies have been developed due to the interplay between World-Wide Web Development and Databases on one hand and the growth of Database applications in E-Commerce on the other hand. Today, practically every E-Commerce application has at least a Web component and a Database Component. Many languages have been developed in order to deal with these interactions. The proposed course will focus on accessing databases through the web but also mention new developments in the field. Effective From: Fall 2006

CS 451 - Data Communications and Networks (3-1-3)
Prerequisite: CS 114. Fundamental concepts in data communications. Topics include: circuit and packet switching, layered network architecture, ISO Network protocols, performance analysis of data communication systems, flow control and alternate routing strategies and algorithms, various types of networks and their interconnections, network security and privacy. Additional topics include systems analysis and design, traffic engineering, planning and forecasting methodologies as applied to data communication networks. Effective From: Fall 2006

CS 456 - Open Systems Networking (3-0-3)
Prerequisite: CS 114. An introduction to internetworking, including an in-depth study of the architecture of network interconnections, the internet services, and the protocols needed to provide these services. Topics include: architecture of interconnected networks, internet addresses and the address resolution problem, internet protocols, the domain name system, the socket interface, the client-server model of interaction, the OSI transport and application support protocols, and the TCP/IP application protocols. Effective From: Fall 2006

CS 458 - Technologies for Network Security (3-0-3)
Prerequisite: CS 467. This course provides both an in depth theoretical study and a practical exposure to technologies which are critical in providing secure communication over the Internet. Topics include: remote access security, web security, wireless security, e-mail security, spam and spam filtering techniques, computer viruses and internet worms, honeypots and honeynets, security liability issues and compliance. Effective From: Fall 2006

CS 467H - Honors Efficient Algorithm Design (3-0-3)
Prerequisite: CS 435 or CS 335; Math 333. The course focuses on presenting techniques for efficient sequential and parallel algorithm design. Algorithms for numerical and combinatorial problems will be discussed. The use of randomization in the solution of algorithmic problems will be explored. Applications to be considered include string matching, polynomials and FFT algorithms, sorting networks, algebraic computations and primality testing and factoring, matrix operations, randomized algorithms for sorting and selection, and data compression. Effective From: Fall 2006

CS 478 - Software Tools for Solving Problems (3-0-3)
Prerequisites: junior or senior standing, permission of instructor. Provides students with an opportunity to interact directly with industry and solve actual problems using various -information-systems software tools. At the beginning of the semester, company representatives present actual problems they are facing, and the students work in groups to develop a solution, which they present at the end of the term. Presentation skills, working in groups, and using software tools for problem solving are stressed. Effective From: Fall 2006

CS 482 - Data Mining (3-0-3)
Prerequisite: CS 431. The course covers the concepts and principles of advanced data mining systems design; presents methods for association and dependency analysis, classification; prediction; and clustering analysis. Effective From: Fall 2006

CS 485 - Special Topics in Computer Science/Information Systems (3-0-3)
Prerequisites: junior standing and/or department approval. The study of new and/or advanced topics in an area of computer science not regularly covered in any other CIS course. The precise topics to be covered in the course, along with prerequisites, will be announced in the semester prior to the offering of the course. A student may register for no more than two semesters of Special Topics. Effective From: Fall 2006

CS 486 - Topics in Computer Science/Information Systems (3-0-3)
Prerequisites: Same as for CS 485. A continuation of CS 485. Effective From: Fall 2006

CS 488 - Independent Study in Computer Science (3-0-3)
Prerequisites: open only to students in the Honors Program who are computer science majors and who have the prior approval of the department and the CIS faculty member who will guide the independent study. Independent studies, investigations, research, and reports on advanced topics in computer science. Students must prepare, in collaboration with their faculty mentor and in the semester prior to enrolling in this course, a detailed plan of topics and expected accomplishments for their independent study. This must have the approval of both the department and the faculty mentor. A student may register for no more than one semester of Independent Study. Effective From: Fall 2006

CS 488H - Honors Independent Study in Computer Science/Information Systems (3-0-3)
Prerequisites: honors college computer science or information systems majors who have the prior approval of the department and the CS faculty member who will guide the independent study. Independent studies, investi-gations, research, and reports on advanced topics in computer science. Students must prepare, in collaboration with their faculty mentor and in the semester prior to enrolling in this course, a detailed plan of topics and expected accomplishments for their independent study. This must have the approval of both the department and the faculty mentor. A student may register for no more than one semester of independent study Effective From: Fall 2006

CS 490 - Guided Design in Software Engineering (3-0-3)
Prerequisite: senior standing or departmental approval. This course focuses on the methodology for developing software systems. Methods and techniques for functional requirements analysis and specifications, design, coding, testing and proving, integration and maintenance are discussed. Effective From: Fall 2006

CS 491 - Senior Project (3-0-3)
Prerequisites: CS 490, senior standing and project proposal approval. An opportunity for the student to integrate the knowledge and skills gained in previous computer science work into a team-based project. The project involves investigation of current literature as well as computer implementation of either a part of a large program or the whole of a small system. Effective From: Fall 2006

CS 491H - Honors Computer Science Project (3-0-3)
Prerequisites: CS 490, senior standing in the Honors College and project proposal approval. A course similar to CS 491, with a project of greater depth and scope. Effective From: Fall 2006   (Archived Versions)

GRADUATE COURSES:

CS 505 - Programming, Data Structures, and Algorithms (3 credits)
Prerequisite: knowledge of at least one procedure-oriented language such as PASCAL or C. Computer science students cannot use this course for graduate degree credit. Intensive introduction to computer science principles: a procedure-oriented language such as C++; program design techniques; introductory data structures (linked lists, stacks, sets, trees, graphs); and algorithms (sorting, searching, etc.) and their analysis. Programming assignments are included. Effective From: Fall 2006

CS 506 - Foundations of Computer Science (3 credits)
Prerequisite: knowledge of C/PASCAL. Corequisite: CS 505. Cannot be used for graduate credit towards the M.S. in Computer Science. Introduction to the concepts of iteration, asymptotic performance analysis of algorithms, recursion, recurrence relations, graphs, automata and logic, and also surveys the main data models used in computer science including trees, lists, sets, and relations. Programming assignments are given. Effective From: Fall 2006

CS 510 - Assembly Language Programming and Principles (3 credits)
Prerequisite: knowledge of at least one procedure-oriented language such as PASCAL, C, or C++. Computer Science students cannot use this course for graduate degree credit. An intensive course in assembly language programming including basic machine organization, the structure of instruction sets, program linkage, macros and macro libraries. Extensive programming assignments are included. Effective From: Fall 2006

CS 515 - Advanced Computer Programming for Engineers (3 credits)
Prerequisite: knowledge of at least one procedure-oriented language such as PASCAL, C, or FORTRAN. Students specializing in computer science may not take this course for credit. This course is designed for engineering students who require an extensive knowledge of programming for their project or thesis work. Topics include review of basic programming techniques, treatment of algorithm design, error analysis and debugging. As time permits, problem-oriented languages are examined. Effective From: Fall 2006

CS 540 - Fundamentals of Logic and Automata (3 credits)
Prerequisite: Math 226 or equivalent (see undergraduate catalog for description). Theory of logic and automata and their influence on the design of computer systems, languages, and algorithms. Covers the application of Boolean algebra to design of finite state machines; formal systems, symbolic logic, computability, halting problem, Church's thesis, and the main ideas of the theory of computation. Effective From: Fall 2006

CS 590 - Graduate Co-op Work Experience I (3 additive credits)
Prerequisite: students must have the approval of the co-op advisor for the CIS department. Provides on-the-job reinforcement and application of concepts presented in the undergraduate computer science curriculum. Work assignments are identified by the co-op office and developed and approved by the CIS department in conjunction with the student and employer. Students must submit, for CIS department approval, a proposal detailing the nature of the intended work. A report at the conclusion of each semester's work experience is required. Credits for this course may not be applied toward degree requirements for either the bachelor's or master's in computer science. Effective From: Fall 2006

CS 591 - Graduate Co-op Work Experience II (3 additive credits)
Prerequisite: students must have the approval of the co-op advisor for the CIS department. Provides on-the-job reinforcement and application of concepts presented in the undergraduate computer science curriculum. Work assignments are identified by the co-op office and developed and approved by the CIS department in conjunction with the student and employer. Students must submit, for CIS department approval, a proposal detailing the nature of the intended work. A report at the conclusion of the semester work experience is required. Credits for this course may not be applied toward degree requirements for either the bachelor's or master's in computer science. Effective From: Fall 2006

CS 592 - Graduate Co-op Work Experience III (3 additive credits)
Prerequisites: graduate standing, and acceptance by the CIS department and the Division of Career Development Services. Students must have the approval of the co-op advisor for the CIS department. Provides on-the-job reinforcement and application of concepts presented in the undergraduate or graduate computer science curriculum. Work assignments are identified by the co-op office and developed and approved by the CIS department in conjunction with the student and employer. Students must submit, for CIS department approval, a proposal detailing the nature of the intended work. A report at the conclusion of the semester work experience is required. Credits for this course may not be applied toward degree requirements for either the bachelor's or master's in computer science. Effective From: Fall 2006

CS 593 - Graduate Co-op Work Experience IV (0 credits)
Prerequisites: One immediately prior 3-credit registration for graduate co-op work experience with the same employer. Requires approval of departmental co-op advisor and the Division of Career Development Services. Must have accompanying registration in a minimum of 3 credits of course work. Effective From: Fall 2006

CS 601 - Object-Oriented Programming (3 credits)
Prerequisite: basic knowledge of C++. Covers the fundamentals of object-oriented programming. Includes object-oriented concepts such as data abstractions, encapsulation, inheritance, dynamic binding, and polymorphism, and uses C++ as the vehicle for illustrating and implementing these concepts. The object-oriented paradigm is systematically employed in the design of all concepts. Effects of this methodology on software maintenance, extensibility, and reuse. Significant programming/design projects. Effective From: Fall 2006

CS 602 - Java Programming (3 credits)
Prerequisite: advanced Web-based programming with an emphasis on the Java language and platform. No prior knowledge of Java is required but students are expected to have a good understanding of object-oriented programming concepts such as encapsulation, inheritance, and polymorphism, experience with C++. Basic constructs and syntax and then the core advanced features. Topics include: networking and sockets, remote method invocation (RMI), database connectivity (JDBC), Java Beans, multi-threading and lighweight components (Swing). Common gateway interface (CGI) languages and browser scripting (JavaScript and VBScript) are discussed when used as a complement to the functionality of the Java language. Emphasis is on the Java Development Kit version 1.1 (JDK1.1), both deprecated methods and newly introduced features are discussed. Effective From: Fall 2006

CS 603 - Advanced Programming Environments and Tools (3 credits)
Prerequisite: CS 601. Introduction to Graphical User Interface (GUI) Programming in the X Windows System environment. Design and implementation of the GUI at various levels of abstraction using industry standard software tools. Trade-offs between flexibility and ease of use inherent in GUI building tools. Best suited for the advanced programmer. Effective From: Fall 2006

CS 604 - Client/Server Computing (3 credits)
Prerequisites: CS 333 and CS 432 or instructor approval (see undergraduate catalog for descriptions). Fundamentals of client/server architecture as applied to the development of software systems. Concepts of distributed systems such as open systems, middleware, software reengineering, and distributed computing environments. Components of distributed client/server technologies such as X Windows Systems, DCE, CORBA, NFS, and ODBC. Case studies are used to illustrate how client/server techniques can be used in a variety of applications. The importance of standards and their role in client/server architecture, such as Posix, DCE, and COS. Requires creation of distributed applications. Effective From: Fall 2006

CS 605 - Discrete Event Dynamic Systems (3 credits)
Prerequisite: Math 630 or EE 601 or MnE 603 or equivalent. Covers discrete event dynamic system theory and its applications in modeling, control, analysis, validation, simulation, and performance evaluation of computer systems, flexible manufacturing systems, robotic systems, intelligent supervisory control systems, and communication networks. Emphasis on Petri net and automation based approaches. Effective From: Fall 2006

CS 608 - Cryptography and Security (3-1-3)
This course involves computational methods providing secure Internet communication. Among the topics covered are: Security threats in communication systems; conventional cryptography: substitution and transposition codes; distribution of secret key over the Internet; principles of public-key cryptography; RSA and other public-key cryptographic methods; and digital signature protocol. Effective From: Fall 2006

CS 610 - Data Structures and Algorithms (3 credits)
Prerequisite: CS 505 or CIS 335 or equivalents (see undergraduate catalog for description). Intensive study of the fundamentals of data structures and algorithms. Presents the definitions, representations, processing algorithms for data structures, general design and analysis techniques for algorithms. Covers a broad variety of data structures, algorithms and their applications including linked lists, various tree organizations, hash tables, strings, storage allocation, algorithms for searching and sorting, and a selected collection of other algorithms. Programs are assigned to give students experience in algorithms, data structure design and implementation. Effective From: Fall 2006

CS 611 - Introduction to Computability and Complexity (3 credits)
Prerequisites: mathematics bridge requirements. Introduces the theoretical fundamentals of computing, and provides an understanding of both the inherent capabilities and limitations of computation. The main models of computation are deterministic and non-deterministic Turing machines. Auxiliary models include partial and total recursive functions, first order logic, recursive and recursively enumerable sets, and symbol systems. Covers the essentials of computational theory: first order logic, Russel's Paradox, completeness and consistency, Goedel's Theorem, Church's Thesis, countable and uncountable sets, simulation and computation, diagonalization, dove-tailing, decidable and undecidable problems, reduction, recursion theory, Rice's Theorem, Recursion Theorem, execution time measures, P and NP, polynomial-time reduction, NP-completeness and NP-hardness and formal correctness semantics of programs. Effective From: Fall 2006

CS 621 - Numerical Analysis I (3 credits)
Prerequisite: Math 511 (see undergraduate catalog for description) or an introductory course in numerical methods. An introduction to computational aspects of scientific and engineering problems. Time-dependent phenomena and corresponding quantitative models. Numerical stability and conditioning. Approximation of functions. Interpolation, integration. Solution of nonlinear equations. Ordinary differential equations of the first order. Finite and iterative algorithms for solution of systems of linear equations. Emphasis on computer implementation of algorithms and application to variety of engineering problems. Effective From: Fall 2006

CS 622 - Numerical Analysis II (3 credits)
Prerequisite: Math 511 (see undergraduate catalog for description) or an introductory course in numerical methods. This course covers the theory and design of computer solutions to mathematical equations. Included are iterative methods for solving systems of linear and nonlinear equations, the numerical eigenvalue-eigenvector problem, and methods for solving ordinary and partial differential equations. Emphasis is on the control of errors generated by the computer. Effective From: Fall 2006

CS 630 - Operating System Design (3 credits)
Prerequisites: CS 332, CS 432 (see undergraduate catalog for descriptions) and CS 505. An intensive study of computer operating system design including multiprogramming, time-sharing, real-time processing, job and task control, synchronization of concurrent processes and processors, resource scheduling, protection, and management of hierarchical storage. Effective From: Fall 2006

CS 631 - Data Management System Design (3 credits)
Prerequisites: knowledge of C and data structures. Acquaintance with fundamental notions of relational database technology. Mathematical properties and usage of database programming languages. Methods of database design and conceptual modeling. Methods of physical storage for database information. Fundamental notions of concurrency control and recovery in database systems. Effective From: Fall 2006

CS 632 - Advanced Database System Design (3 credits)
Prerequisites: CS 631 and knowledge of C++. Covers the concepts and principles of object-oriented data modeling and database systems, parallel and distributed database systems, database machines, real time (database) systems, multimedia and text databases, and imprecise information retrieval systems. Emphasis is on advanced data modeling, query optimization, indexing techniques, concurrency control, crash recovery, distributed deadlock detection, real-time scheduling, vague retrieval and system performance. Effective From: Fall 2006

CS 633 - Distributed Systems (3 credits)
Prerequisites: completion of bridge requirements. Fundamental topics concerning the design and implementation of distributed computing systems are covered, including interprocess communication, remote procedure calls, authentication, protection, distributed file systems, distributed transactions, replicated data, reliable broadcast protocols, and specifications for distributed programs. All topics will be illustrated with case studies. Optional topics may include synchronization, deadlocks, virtual time, and load balancing. Effective From: Fall 2006

CS 635 - Computer Programming Languages (3 credits)
Prerequisites: CS 505 and CS 510. The theory and design of computer language systems; the formal theory of syntax and language classification; a survey of procedure and problem-oriented computer programming languages, their syntax rules, data structures, and operations; control structures and the appropriate environments and methods of their use; a survey of translator types. Effective From: Fall 2006

CS 636 - Compiling System Design (3 credits)
Prerequisite: CS 635. Compiler organization; interaction of language and compiler design. The front end scanning, parsing, and syntax-directed translation: theory, standard approaches, and techniques; front-end tools such as Lex and Yacc. Attribute grammars. Code generation, register allocation, and scheduling; interaction with the run-time environment. Introduction to static analysis and optimization. As time permits, topics in modern compilers: compiling for object-oriented languages such as C++ or Java, memory hierarchies, pipelining, parallelism. Includes a significant programming component. Effective From: Fall 2006

CS 637 - Real-Time Systems (3 credits)
Prerequisites: completion of bridge requirements. Theory and principles that govern real-time systems design, and mechanisms and methodologies that enable their construction and operation. All aspects of such systems will be covered, including scheduling, device and resource management, communications, machine architecture, kernel software, language design and implementation, specification and user interfaces, and performance analysis and verification techniques. Effective From: Fall 2006

CS 640 - Recursive Function Theory (3 credits)
Prerequisite: CS 540 or equivalent. Review of basic computability theory. Topics include Church's thesis; unsolvability results; creative, productive, and simple sets; computational complexity; P=NP problem; and classification of solvable problems according to their complexity. Effective From: Fall 2006

CS 641 - Formal Languages and Automata (3 credits)
Prerequisite: Math 226 or equivalent (see undergraduate catalog for description). Fundamentals of automata and formal languages: hierarchy of abstract machines and languages; nondeterministic finite state machines; tape and pushdown automata; context-free and context-sensitive grammars. Effective From: Fall 2006

CS 650 - Computer Architecture (3 credits)
Prerequisites: CS 251 (see undergraduate catalog for description) and CIS 510. Exploiting instruction level parallelism (ILP) is central to designing modern computers. Presents design techniques used for such computers as IBM Power architectures, DEC Alpha, MIPS R4600, Intel P6, etc. Introduction of Instruction Set Architecture (ISA), various functional units, basic principles of pipelined computers. Modern techniques to ILP including superscalar, super-pipelining, software pipelining, loop unrolling, and VLIW. Memory hierarchy, including instruction cache, data cache, second level cache, and memory interleaving. Advanced computer architectures, including vector, array processors, interconnection technology, and ATM network of workstations. Hands-on experience designing a simple pipelined computer on screen and using CAD tools such as Cadence or ViewLogic. Effective From: Fall 2006

CS 651 - Data Communications (3 credits)
Prerequisite: Math 333 (see undergraduate catalog for description). Intensive study of the analytic tools required for the analysis and design of data communication systems. Topics include: birth-death queuing systems, Erlang's distribution, bulk-arrival and bulk-service systems, design and analysis of concentrators and multiplexers, elements of Renewal Theory, M/G/1 system, analysis of Time Division Multiplexing, priority queues, analysis of random access systems, time reversibility, open and closed queuing networks, mean value analysis, flow and congestion, control mechanisms, routing algorithms, flow models, and network topological design. Effective From: Fall 2006

CS 652 - Computer Networks-Architectures, Protocols and Standards (3 Credits)
Prerequisite: A high level programming language, Math 333 (see undergraduate catalog for description), or instructor approved equivalents. Intensive study of various network architecture and protocol standards; with emphasis on the Open Systems Interconnetion (OSI) model. Topics include: analog and digital transmission, circuit and packet switching, the Integrated Services Digital Network (ISDN), Frame Relay, Broadband ISDN, Cell Relay, SONET, Local Area Networks (CSMA/CD, Token Bus, Token Ring, switched and isochronous Ethernets), Metropolitan Area Networks (FDDI, FDDI-II, DQDB), wireless and satellite networks, synchronization and error control, routing and congestion control, X.25 standard. Effective From: Fall 2006

CS 653 - Microcomputers and Applications (3 credits)
Prerequisite: familiarity with an assembly level and higher-level language. An investigation of the personal computer based on the WinTEl architecture. Programming and use of the various input/output devices via operating system constructs. Use of computer in stand-alone (control) applications and networked applications. Investigation of non-Intel architectures and non-Windows systems as time permits. Effective From: Fall 2006

CS 654 - Telecommunication Networks Performance Analysis (3 credits)
Prerequisites: CS 651, CS 652, or instructor approved equivalents. Modeling and analysis of telecommunication networks; with emphasis on Local Area Networks (LANs) and Metropolitan Area Networks (MANs). Case studies will be presented and discussed, and the need for modeling and analysis will be established. Various types of LANs, and MANs will be modeled and analyzed. Problem sets and case studies will be assigned to facilitate understanding of the covered material. Effective From: Fall 2006

CS 656 - Internet and Higher Layer Protocols (3 credits)
The course provides a foundation of knowledge of the Internet and its protocols. Topics include: Addressing, Routing and Forwarding, Classless Interdomain Routing, the IP and ICMP protocols, the UDP and TCP protocols, the layering models in OSI and in TCP/IP, IGMP, Routing methods (RIP, OSPF, BGP), The Domain Name System, The World Wide Web and http. In addition, students will be made familiar with use of a packet sniffer (such as tcpdump or ethereal) and with tools such as ping, nslookup and traceroute. Students will develop the detailed knowledge of packet headers needed to understand output of packet sniffers. Effective From: Fall 2006

CS 657 - Principles of Interactive Computer Graphics (3 credits)
Prerequisites: CS 505 or familiarity with the organization of at least one computer system, and knowledge of a structured programming language such as C. Graduate-level introduction to computer graphics concepts, algorithms, and systems. Includes 2-D raster graphics, algorithms, 2-D and 3-D geometric transformations, 3-D viewing, curves and surfaces. Emphasis on PC-based graphics programming projects. Principles of interactive graphics systems in terms of the hardware, software and mathematics required for interactive image production. Effective From: Fall 2006

CS 659 - Image Processing and Analysis (3 credits)
Prerequisite: CS 505. Fundamentals of image processing, analysis and understanding. Topics include image representation, image data compression, image enhancement and restoration, feature extraction and shape analysis, region analysis, image sequence analysis and computer vision. Effective From: Fall 2006

CS 660 - Digital Watermarking (3)
Digital watermarking and steganography is important to ensure data security because of widely used digital multimedia and rapid growth of the Internet. Digital watermarking is a suitable tool to identify the source, creator, owner, distributor, or authorized consumer of a document or an image. Digital steganography aims at hiding digital information into covert channels, so one can conceal the information and prevent detection. This course intends to provide students an overview on different aspects of mechanisms and techniques for digital watermarking and steganography. Effective From: Spring 2009

CS 661 - Systems Simulation (3 credits)
Prerequisites: an undergraduate or graduate course in probability theory and statistics, and working knowledge of at least one higher-level language. An introduction to the simulation of systems, with emphasis on underlying probabilistic and statistical methodologies for discrete-event simulations. Design of simulation applications, and simulation programming in a high-level language. Algorithms for the generation of pseudorandom numbers. Algorithmic methodologies for the simulation of discrete and continuous probabilistic processes. Use of statistical tools. Simulation of queuing systems. Applications of simulation to a variety of system studies. The special purpose simulation language GPSS is studied in detail. Effective From: Fall 2006

CS 662 - Model Analysis and Simulation (3 credits)
Prerequisite: introductory course in simulation. Advanced topics in simulation methodology, including design of simulation experiments, variance reduction techniques, estimation procedures, validation, and analysis of simulation results. Queueing systems. Implementing a simulation with the SIMSCRIPT language. Models of continuous systems with applications to elementary socio-economic and industrial systems. Utilization of the DYNAMO II language. Effective From: Fall 2006

CS 665 - Algorithmic Graph Theory (3 credits)
Prerequisite: CS 610. The elements of the theory of graphs and directed graphs with motivating examples from communication networks, data structures, etc; shortest paths, depth first search, matching algorithms, parallel algorithms, minimum spanning trees, basic complexity theory, planarity, and other topics. Programming assignments are included. Effective From: Fall 2006

CS 667 - Design Techniques for Algorithms (3 credits)
Prerequisite: CS 610. An introduction to the principles of major design techniques in algorithms. Examples from a variety of topics and problems in computer science are used to demonstrate these design techniques and their appropriate application. Effective From: Fall 2006

CS 668 - Parallel Algorithms (3 credits)
Prerequisites: CS 610 and CS 650. This course examines a variety of parallel algorithms and architectures. Shared memory algorithms and algorithms for special architectures (tree processors, grids, systolic arrays, butterflies) are considered. The basic theory of algorithm/architecture performance will be described. Effective From: Fall 2006

CS 669 - Computational Geometry (3 credits)
Prerequisite: CS 610 or permission of the instructor. Intensive study of the fundamentals of computational geometry data structures and algorithms. Emphasis is on the design of efficient algorithms and data structures, proofs of their correctness and complexity analysis. Fundamental topics including geometric searching, convex hull computation, nearest/farthest searching, Voronoi diagrams, Euclidean minimum spanning trees, planar triangulation, planar point location, arrangement of lines. Effective From: Fall 2006

CS 670 - Artificial Intelligence (3 credits)
Prerequisite: CS 610 and CS 631. Fundamental concepts and general techniques in artificial intelligence. Main topics include goal tree search, logic and deduction, adduction, uncertainty, fuzzy logic, knowledge representations, machine learning, vision, and action planning. The LISP programming language is used extensively. Students are required to do programming assignments, complete a programming term project, and review case studies. Effective From: Fall 2006

CS 671 - Knowledge-Based Systems (3 credits)
Prerequisite: CS 670 or equivalent. Deals with the underlying architectures of ?classical? knowledge-based systems, i.e., systems based on a knowledge representation formalism that are built by knowledge acquisition from a domain expert; and advanced database systems, especially object-oriented and deductive databases. Effective From: Fall 2006

CS 672 - Expert System Methods and Design (3 credits)
Prerequisite: CS 670. Deals with expert systems, expert system shells, programming of rule-based systems, selection of shells, verification and validation of expert systems, and knowledge acquisition techniques for extracting knowledge from domain experts. Effective From: Fall 2006

CS 673 - Software Design and Production Methodology (3 credits)
Prerequisite: CS 631. Modern techniques and methods employed in the development of large software systems, including a study of each of the major activities occurring during the lifetime of a software system, from conception to obsolescence and replacement. Topics include cost/performance evaluation, documentation requirements, system design and production techniques, system verification techniques, automated aids to system development, and project organization and management. Effective From: Fall 2006

CS 674 - Natural Language Processing (3 credits)
Prerequisite: CS 670. Deals with techniques of natural language understanding. Topics are syntax and parsing (top down and bottom up), semantics, pragmatics and use of world knowledge in language understanding. Augmented Transition Networks will be used as programming tool set. Good knowledge of LISP or PROLOG. Effective From: Fall 2006

CS 680 - Linux Kernel Programming (3)
An in-depth study of how the Linux operating system is built from scratch. As a hands-on course, students will perform intensive programming using Linux Kernel. The contents include machine booting, segmentation and paging memory management, creating and destroying processes, process switching and scheduling, handling exceptions and hardware interrupts, software interrupts, creating system calls, creating file systems, networking with TCP/IP, device driver writing and module programming, etc. At the end of the course, students will be able to modify Linux operating system to create their own. Effective From: Spring 2009

CS 682 - Geometric Modeling (3 credits)
Prerequisite: CS 610. The techniques required to describe the shape of an object and to simulate dynamic processes; parametric geometry of curves, surfaces, and solids; and particular formulations for facilitating calculating geometric properties. Fundamentals of solid model construction and analysis are discussed extensively. Some applications in computer graphics, CAD, and CAM are also mentioned. Effective From: Fall 2006

CS 688 - Programming for Interactive Environments (3 credits)
Prerequisite: knowledge of C++. A thorough study of the fundamental concepts and techniques of programming for modern interactive support environments, better known as graphical user interfaces (GUIs). A balanced blend of principle and practice, incorporating a general paradigm of interactive program development and numerous examples from, and projects in, the major GUI environments. Effective From: Fall 2006

CS 696 - Network Management and Security (3 credits)
Prerequisites: CS 652 or ECE 683, and CS 656. Thorough introduction to current network management technology and techniques, and emerging network management standards. In-depth study of the existing network security technology and the various practical techniques that have been implemented for protecting data from disclosure, for guaranteeing authenticity of messages, and for protecting systems from network-based attacks. SNMP family of standards including SNMP, SNMPv2, and RMON (Remote Monitoring), OSI systems management. Various types of security attacks (such as intruders, viruses, and worms). Conventional Encryption and Public Key Cryptology. Various security services and standards (such as Kerberos, Digital Signature Standard, Pretty Good Privacy, SNMPv2 security facility). Same as ECE 638. Effective From: Fall 2006

CS 697 - Principles of Broadband ISDN and ATM (3 credits)
Prerequisite: CS 652 or ECE 683 or equivalent. Study of the Broadband Integrated Services Digital Network (B-ISDN) architecture and services. In-depth study of the Asynchronous Transfer Mode (ATM), ATM Adaptation Layer (AAL), ATM switching architectures, SONET/SDH, ATM traffic control, broadband integrated traffic models, Operation Administration and Management (OAM) functions, TCP/IP over ATM, and ATM market. Same as ECE 639. Effective From: Fall 2006

CS 704 - Sequencing and Scheduling (3-0-3)
Advanced sequencing and scheduling for job shops, flow lines, and other general manufacturing and production systems are discussed in this course. Both deterministic and stochastic scheduling models are covered in detail. Heuristics and worst case analysis for "unsolvable" hard scheduling problems (NP-C problems) are introduced. Effective From: Fall 2006

CS 725 - Independent Study in Computer Science I, II (3 credits)
Prerequisites: graduate standing and department consent. Effective From: Fall 2006

CS 730 - Seminar in Database Management Topics (3 credits)
Prerequisite: CS 631. A seminar in which students pursue intensive study of specialized topics in the current literature of database management. Each topic is supported by an initial reading list covering current problems in theory and practice. Students present the results of their studies in class with faculty and invited specialists participating. Topics include, but are not limited to, advanced data modeling, object oriented databases, query languages, semantic optimization, database mapping and integration, physical database architecture, database/knowledge-base integration, distributed databases, database machines, database version control, logical and deductive databases. Effective From: Fall 2006

CS 731 - Applications of Database Systems (3 credits)
Prerequisites: IS 675 and CS 631. Restricted to students who are specializing in computer and information systems management. Comparative study of different models of database management systems and their applications. Emphasis on the functions of the database administrator. Includes a survey of physical and logical organization of data, methods of accessing data, characteristics of different models of generalized database management systems, and case studies using these systems from various applications. Student teams design database systems for class projects. Effective From: Fall 2006

CS 734 - Data Mining (3 credits )
Prerequisites: Permission from instructor. Covers the concepts and principles of advanced data mining systems design. Presents methods for association and dependency analysis, classification and predication, and clustering analysis. Optional topics may include Web and scientific data mining, knowledge discovery applications, and current trends in data mining. Effective From: Fall 2006

CS 741 - Communication Network Design (3 credits)
Prerequisites: CS 651 and CS 652. Basic problems of communication network design: analyzes their complexity and provides algorithms, heuristics and other techniques for their solution. Effective From: Fall 2006

CS 744 - Data Mining and Management in Bioinformatics (3 credits )
Prerequisites: CS 610 or permission of the instructor. Concepts and principles of bioinformatic data mining and management with focus on efficiency and scalability. Methods for indexing and querying biological databases, biological data mining, and algorithmic development for bimolecular and phlyogenetic data analysis. Trends and advances in areas such as functional genomics and proteomics, genetic engineering, and large-scale gene expression data analysis. Effective From: Fall 2006

CS 750 - High Performance Computing (3 credits)
Prerequisite: CS 650. An in-depth study of the state of the art in high performance computing. Topics parallel computer architectures, programming paradigms, and their applications. Parallel architectures include PC clusters, shared-memory multiprocessors, distributed-memory multiprocessors, and multithreaded architectures. Parallel programming paradigms include message passing interface (MPI), its second-generation MPI-2, and multithreaded programming. Applications include computational science and high performance Web and database servers for Internet-based electronic commerce. Students program a parallel machine in class projects. First-hand experience in stable, scalable, high performance computing for Internet-based electronic commerce. Effective From: Fall 2006

CS 752 - Communication Protocol Synthesis and Analysis (3 credits)
Prerequisite: CS 652 or basic familiarity with communication protocols. An in-depth study of the state of the art of protocol engineering. Enables students to apply the techniques of protocol design to real problems in communication protocols. Effective From: Fall 2006

CS 756 - Mobile Computing and Sensor Networks (3 credits)
This course provides an in-depth study of mobile computing and sensor networks, which are becoming major components of the transition from today's world of desktop computers to a world where computing is ubiquitous. The main topics include: techniques to handle mobility in the Internet and ad hoc networks; operating systems, programming languages, and protocols for sensor networks; applications, middleware, programming models, and security ubiquitous computing environments. Effective From: Spring 2008

CS 759 - Advanced Image Processing and Analysis (3 credits)
Prerequisite: CS 659. Advanced study of recent research in image processing, analysis, and understanding. Topics include all image processing techniques, high-level recognition approaches, and automated expert vision systems. Effective From: Fall 2006

CS 775 - Seminar in Software Engineering (3 credits)
Prerequisite: CS 673. A seminar in which students pursue intensive study of specialized topics in the current literature of software engineering. Each topic is supported by an initial reading list on current problems in theory and practice. The results of the studies are discussed in class with students, faculty and invited specialists. Effective From: Fall 2006

CS 777 - Seminar in Software Management and Production (3 credits)
Prerequisites: Ph.D. core courses. A seminar in which students pursue intensive study of specialized topics in the current literature of software management and production. Each topic is supported by an initial reading list covering current problems in theory and practice. The results of the studies are discussed in class with students, faculty, and invited specialists participating. Topics include, but are not limited to, theory of algorithm structure, analysis of algorithms and programs, hardware technology assessment, automated tools for software production, software measurements and quality, peripheral device interfaces, data communications, computer networks, distributed processing, software verification, implementation standards, documentation standards, system security, software copyright, and project control and organization. Effective From: Fall 2006

CS 780 - Computer Vision (3 credits )
Prerequisite: CS 505. This course introduces computational models of computer vision and their implementation on computers, and focuses on material that is fundamental and has a broad scope of application. Topics include contemporary development in all mainstream areas of computer vision e.g., Image Formation, Feature Representation, Classification and Recognition , Motion Analysis, Camera Calibration, 3D Vision, Shape From X, and typical applications such as Biometrics. Effective From: Fall 2006

CS 782 - Pattern Recognition and Applications (3 credits)
Prerequisite: CS 610. Study of recent advances in development of (statistical and syntactic) pattern algorithm, approximation, and estimation techniques. Topics include statistical estimation theory, classifier design, parameter estimation and unsupervised learning, bias vs. variance, nonparametric techniques, linear discriminant functions, tree classifiers, feature extraction, and clustering. Additional topics include Support Vector machines (SVM), Bayesian Learning, Hidden Markov Models (HMM), evolutionary computation, neural networks, with applications to signal interpretation, time-series prediction, and Biometrics. Effective From: Fall 2006

CS 785 - Seminar in Computer and Information Science I (3 credits)
Prerequisites: determined by nature of topic area. Advance notice of the topics to be covered is given. These seminars examine in depth a special interest area of computer and information science. It emphasizes recent work in area selected for the offering of the course. This course is for master's students and cannot apply toward master's degree credit. Effective From: Fall 2006

CS 786 - Special Topics (3 credits)
Prerequisites: same as for CS 785. A continuation of CS 785. Effective From: Fall 2006

CS 791 - Graduate Seminar (Non-credit)
Corequisite (for doctoral students only): CIS 790. A seminar in which faculty, students, and invited speakers will present summaries of advanced topics in computer and information systems management. In the course students and faculty will discuss research procedures, dissertation organization, and content. Students engaged in research will present their own problems and research progress for discussion and criticism. Effective From: Fall 2006

CS 792 - Pre-Doctoral Research (3 credits)
Prerequisite: permission from department chairperson. For students admitted to the doctoral program in computer and information science who have passed the field exam or the qualifying examination. Research is carried out under the supervision of a designated faculty member. Students identify a research problem and prepare a plan to solve the problem. A maximum of 6 credits of CS 792 may be applied to the CIS 790 requirement. Effective From: Fall 2006

CS 794 - Computer Science/Information Systems Colloquium (Non-credit)
Prerequisite: graduate standing with major in computer science. Colloquium in which national and international experts in the various fields of computer science are invited to present and discuss the results of their recent research. Effective From: Fall 2006