Department of Computer Science
William Paterson University

Computer Science Course Descriptions
(Unless otherwise noted, all courses are 3 credits.)

CS 1300 - Introduction to Visual BASIC

Introduces the basic principles and applications of computing systems, microcomputers in particular. Techniques of computer programming are introduced through BASIC.

Prerequisite: None

CS 2010 - Computer and Information Technology

The course has two themes. The first theme introduces computer concepts. Topics include hardware and software fundamentals; computer and information systems; data communications and computer networks; World Wide Web and the Internet; social impact of computers including discussions on privacy, security, civil liberty, risk of computers, intellectual properties, and computer related legislations. The second theme familiarizes students with leading application software such as Excel, PowerPoint, Access, and Web design programs. Practical computer problem-solving skills are emphasized through intensive hands-on exercises.

Prerequisite: None

CS 2100/2250 - Web Page and Site Design

Introduction to Web page design, Web based multimedia, virtual reality, site management, and non-Web based Internet facilities. Topics include HTML, Javascript, Flash, graphical components, audio, video, on-line forms, and Web site maintenance. Review and hands-on practice with software packages in each category such as FrontPage, Dreamweaver, and Flash.

Prerequisite: CS 2010

CS 2120 - Computer Graphics and Game Construction

This course is intended for the student with an interest in computer graphics and games. Fundamentals of game programming in two dimensions will be covered with hands on constructive activities. Types of games will be explored. Graphics programming will be done in a programming language such as Java. Participants in this class will design and run their own game by the conclusion of the course. Prior knowledge of a programming language is required. Topics of study can vary.

Prerequisite: Knowledge of programming, preferably in C, C++, or Java

CS 2150 - Computer and Information Technology for Educators

This course is designed to meet the ISTE National Educational Technology Standards for Teachers. It introduces the concepts, the skills, and the capabilities necessary to effectively use computers and information technology. With an emphasis on fundamentals, students can easily adapt to the repid change of computing technologies. The basic concepts include hardware and software fundamentals, telecommunications computer networking, electronic media, and data processing. The legal, ethical, cultural, and societal issues related to technology are also discussed.

Prerequisite: None

CS 2300 - Computer Science I

Algorithmc approach to computer problem solving and programming methodology: analysis, design documentation, implementation, debugging, and evaluation. Procedural abstraction and basic data representation. Substantial programming assignments (in ANSI C language), including numerical and non-numerical problems.

Prerequisite: MATH 1150, MATH 1350, or equivalent
(4 Credits)

CS 2350 - Fundamentals of Computer Hardware

This course is intended for non-CS major students with an interest in computer hardware. The course presents the fundamentals of modern computer systems in terms of structure and function. Hands-on experience will complement lectures. Major topics are: hardware components (chips, CPU, BIOS, and chipsets technologies, motherboard/expansion board design basics, peripherals, busses, ports, magnetic and optical storage devices, I/O); system configuration, partitioning, formattting, and hardware aspects and support in Windows and Linux; booting; hardware; management/maintenance; performance assessment and improvement; troubleshooting problems. This course encompasses the A+ certification materials in hardware.

Prerequisite: CS 2010 or CS 2150

CS 2400 - Computer Science II

Continuation of CS 2300. Procedural abstraction, data representation, recursion, and program modularity. File processing, data management, and storage allocation techniques. Abstract data type (ADT) and object-oriented programming techniques. Key concepts in software design. Multidimensional arrays, strings, pointers, and records. Student will complete programming assignments in C++.

Prerequisite: CS 2300 with a grade of C- or better
(4 Credits)

CS 2530 - COBOL I

Introduction to the COBOL language with applications to commercial problems. Topics in business information processing such as payroll and inventory management are examined.

Prerequisite: None

CS 2550 - Foundations of Information Systems

This course introduces the concepts and methods used in the analysis, design, and impelmentation of computerized information systems. Major topics include software life cycle, data and process models, basic database design, logical and physical design, prototyping, architecture, and project management in information systems development. The course covers hardware, software, databases, communications, networking, and the Internet in support of the information systems infrastructure in an organization. A significant systems development project will be included in this course.

Prerequisites: CS 1300 or CS 2300 or equivalent in other modern programming languages; and CS 2010 or CS 2150

CS 2600 - Discrete Structures

Topics include elementary propositional and predicate logics; elementary set theory; relations and their properties; functions; congruences and Euclidean algorithm; combinatorics, mathematical reasoning; matrices; elements of graph theory; trees and their applications. Some programming will be required.

Prerequisite: CS 2300 with a grade of C- or better

CS 2800 - Computer and Assembler Language

Structure of digital computers and machine language. Data representation, instruction formats and addressing techniques. Symbolic coding, assembly systems, and programming techniques. System stack, procedure calls, and program segmentation and linkage. Interrupts and I/O. Memory organization and addressing. Program translation and system programs: Assemblers, compilers, interpreters, preprocessors, linkers, loaders, and debuggers.

Prerequisite: CS 2300 with a grade of C- or better

CS 3350 - Fundamentals of Computer Networking

This course is intended for the non-CS major students with an interest in computer networking. The course presents the fundamentals of data communication and computer networking. Major topics include state-of-the-art local and wide area networking technologies; layered internetworking architecture; TCP/IP protocol suite and the Internet; networking standards and standard organizations; network security, privacy, management, and administration; network applications emphasizing the Internet; networking industry; social impact of networking, and new trends and emerging technologies such as the increasingly popular mobile and wireless data communication.

Prerequisite: CS 2350

CS 3410 - Digital Logic and Computer Organization

This course introduces the principles of design and analysis of digital compoennts found in digital systems. It also discusses the design of functional units and how these units are organized into a computer system. Other topics such as typical architectures of computer system, VLSI technology, digital design software tools are also introduced.

Prerequisites: CS 2600 and CS 2800 with grades of C- or better

CS 3420 - Data Structures

Concepts and implementations of lists, stacks, queues, trees, graphs, sorting and searching algorithms, hashing, memory management, and advanced data structure applications using object-oriented technology.

Prerequisites: CS 2400 and CS 2600 with grades of C- or better
(4 Credits)

CS 3450 - Operating Systems

A course in operating systems with a system software perspective. Topics include computer system overview; history, evolution, and philosophies; tasking and processes; process coordination and synchronization; scheduling and dispatch; physical and virtual memory organization; device management; file systems and naming; security and protection; communications and networking; distributed operating systems; and real-time concerns.

Prerequisites: CS 2800 and CS 3420 with grades of C- or better

CS 3500 - Software Engineering

Provides a hands-on experience with the issues and techniques of software engineering. A team project applying the techniques covered is the main focus of the course.

Prerequisite: CS 3420 with a grade of C- or better

CS 3550 - Data Management Concepts and Applications

This course provides an overview of data organization, data management, and data manipulation by applications. It will explore the enterprise perspective of managing data. The students will learn data integrity, data models, security, database integration, and various database administration issues. A significant data management project in query processing within a database environment will be included in the course.

Prerequisite: CS 2550

CS 3720 - Design and Analysis of Algorithms

An introduction to the concepts, methodologies, and constructive models for formulating algorithms. Use of analytic techniques to determine the relative efficiency of algorithms with respect to several measures such as time and space complexity. Later topics introduce alternative models of computation such as probabilistic algorithms, parallel processing, and complexity classes (such as NP).

Prerequisites: CS 3420 with a grade of C- or better and MATH 3240

CS 3820 - Programming Languages

Design issues relevant to the implementation of programming languages. Topics include in-depth study and comparison of mechanisms for sequence control, data structure implementation, and run-time storage management; conceptual study of programming language syntax, semantics, and translation; survey of major programming paradigms including procedural, functional, object-oriented, and logical; introduction to language constructs that support distributed and parallel computing.

Prerequisites: CS 2800 and CS 3420 with grades of C- or better

CS 3950 - CIS Internship

This course provides field experience in the Computer Information Systems profession. An agency provides the environment and general supervision during the experience while a faculty member meets with the students on an ongoing basis to relate the field experience to the Computer Information Systems profession.

Prerequisites: Approval of the Department Curriculum Committee, GPA of B, and CS 2550

CS 3990 - Selected Topics

The course covers current topics of interest and importance in computer science that are not covered in any other courses. The precise topics to be covered in this course are announced in the semester prior to the offering of the course.

Prerequisites: Junior standing and permission of the instructor

CS 4020 - Numerical Methods

An introduction to numerical approximation methods and their analysis. Topics include non-linear equation solution, iterative methods, sets of equations, relaxation methods, interpolation, splines, numerical differentiation and integration, Euler's method, curve fitting, and function approximation. The algorithmic design approach is emphasized.

Prerequisites: CS 2600 and MATH 1610 with a grade of C- or better in both

CS 4040 - Computer Simulation

Theory, programming methodology, algorithm design, and practical applications of computer simulation. Topics include modeling of deterministic systems, stochastic systems, generation of random variables and distributions, queuing models, collection, and analysis of statistics from runs. Applications in computer system and network design and performance. Assigned projects concentrate on programming simulation models using C/C++ and simulation languages such as GPSS or SIMSCRIPT.

Prerequisite: CS 3420 with a grade of C- or better

CS 4050 - Systems Programming

The course familiarizes the student with the organization, system libraries, and tools for software development in the UNIX system. The student should leave this course with the ability to use system level facilities provided by UNIX.

Prerequisite: CS 3450 with a grade of C- or better

CS 4100 - Artificial Intelligence

A study of classical and modern approaches to artificial intelligence including knowledge representation, search strategies, inference systems, logic programming, list processing, machine learning, natural language processing, and neural nets. Exercise in programming using current tools, COMMON LISP, or PROLOG.

Prerequisites: MATH 3240 and CS 3420 with a grade of C- or better

CS 4200 - Compiler Construction

An in-depth study of the principles and design aspects of programming language translation. The major components of a compiler are discussed: Lexical analysis, syntactic analysis, semantics routines, and code generation. Alternative parsing strategies are presented and compared with respect to space and time tradeoffs.

Prerequisite: CS 3820 and a grade of C- or better

CS 4300 - Data Communications and Computer Networks

Topics include basic concepts, principles, design procedures, and applications of data communication systems. ISO reference model for open system interconnection is used as the basis to discuss the functions and protocols of layered network structure. Also introduced are evolution of networks technologies, various type of networks from LAN to WAN, internetwork architectures, network security, management, and applications.

Prerequisites: CS 3410 and CS 3450 with grades of C- or better

CS 4400 - Database Management

Topics include data collection, representation, modeling, and storage; file versus database approach to data management; database environment; principles of logical and physical database design. Emphasis will be placed on Entity-Relationship and relational data models. Other topics include client-server environment, database security and integrity, and database administration. A substantial project on the design and implementation of a database will be assigned.

Prerequisite: CS 3420 with a grade of C- or better

CS 4410 - Computer Architecture

An introduction to the architecture of digital computer sytems. Structures of systems using processors memories, input/output devices, and interfaces as building blocks. Computer system instruction set design and implementation, including memory hierarchies and pipelining. Parallel procesing and computer networking.

Prerequisites: CS 3410 with a garde of C- or better and CS 3450

CS 4450 - Theory of Computation

This course investigates formal machine models of computation, formal languages, and computability. This includes finite state automata, pushdown automata, Turing machines, languages and grammars, and how they are useful within computer science.

Prerequisite: CS 3420 with a grade of C- or better

CS 4610 - Computer Graphics

A rigorous study of concepts, theory, and algorithmic aspects of two and three dimensional computer graphics. Topics include graphics hardware and programming, file-formats, algorithms for curves and image generation, splines, transformations, perspectives, illumination, shading, depth, solid-modeling, ray-tracing, animation, fractalization, texturing, and alternate rendering models. Programming in both general-purpose and ray-tracing languages.

Prerequisite: CS 3420 with a grade of C- or better

CS 4800 - Computer Science Seminar

This is the capstone course required of all CS majors. The course is conducted in seminar form featuring internal as well as external speakers. Approximately two thirds of the course covers current topics of interest in computer science and computing technology; the remaining one third of the course is dedicated to social impact of computers and ethical issues faced by today's computer professionals. Students are required to select a relevant topic and complete a substantial research-oriented project either individually or as a team. At the end of the project, students are expected to submit a substantial written report and orally present it to the public.

Prerequisite: Senior standing

CS 4900 - Computer Science Senior Project

This course provides qualified students an opportunity to work with faculty members on research and development projects in areas of current interest in computer science. Students are expected to carry out a meaningful project to be reviewed and approved by a panel of advisors.

Prerequisites: Senior standing with a GPA of 3.5 or better and the approval of the Department Curriculum Committee
(3-6 Credits)

CS 4950 - Internship

This course provides a field experience in the computer science profession. An agency provides the environment and general supervision during the experience, while the faculty member meets with the student on an ongoing basis to relate the field experience to the computer science profession.

Prerequisites: Junior standing with a GPA of 3.0 or better and the approval of the Department Curriculum Committee
(1-3 Credits)

CS 4990 - Independent Study

This course allows a student to pursue a topic of interest in computer science that is not covered by existing courses.

Prerequisites: Senior standing with GPA of 3.0 or better and the approval of the faculty advisor, the Department Chair and the Dean of the College of Science and Health
(3-6 Credits)

Last update: July 2011