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
|