East Stroudsburg University
Computer Science
Undergraduate Course Catalog
CPSC 100 Personal
Computers and Their Uses (3:3:0)
This course is an introduction to personal computers (PCs) for
nonscience majors. It conveys a general understanding of how PCs
function, and of how businesses and individuals use PCs to manage
information. The course also teaches the use of standard PC software,
including an operating system, a word processing program, a drawing
package, a spreadsheet, and a data manager.
Prerequisites: None.
Other: Students may receive credit for either CPSC 100 or CPSC 101, but not both.
CPSC 101 Personal
Computers and Their Uses in the Sciences (3:3:0)
This course, which is similar in content to CPSC 100, emphasizes the
use of personal computers to solve real world engineering and
scientific problems. Topics particular to CPSC 101 include statistical
analysis packages, computer- controlled scientific instrumentation,
and very high performance computing.
Prerequisites: None.
Other: Students may receive credit for either CPSC 100 or CPSC 101, but not both.
CPSC 105 PC
Security and Privacy (3:3:0)
This course deals with the basic concepts of computer security and
privacy: PC basics, networking basics, confidentiality, integrity and
availability of data, authentication, cryptography, threats to
computer security such as viruses, computer security controls such as
antivirus software and firewalls and security and privacy on the
Internet. These topics are discussed in a manner to promote
awareness of computer security issues, not technical knowledge.
Prerequisites: None.
CPSC 110
Excursions in Computer Programming (3:3:0)
This course is intended to give the student with no programming
experience an introduction to algorithmic methods and can be used as
preparatory to CPSC 111. The principles of algorithm and computer
program design are presented using simple programming languages, such
as Basic, Pseudocode or Logo. Topics discussed include blocks,
conditional statements, loops, subprograms, libraries of subprograms
and modular design. This course is not open to students with credit
for CPSC 111 or above.
Prerequisites: None.
CPSC 111
Introduction to Computer Programming and Problem Solving (4:4:0)
This course, a first course in computer science, is intended mainly
for students who are either majoring or concentrating in computer
science. It teaches algorithmic problem solving emphasizing the
use of top-down Object Oriented program development to design and
implement programs in the Java programming language. No prior
familiarity with computer programming is assumed. Prerequisites:
None.
CPSC 141
Introduction to Computer Organization (3:3:0)
This course presents the organization and operation of the classic,
single-processor digital computer. Topics include the central
processing unit, primary and secondary memory, common peripheral
devices, and computer-usable communications hardware. Also featured is
an overview of parallel architectures.
Prerequisites: CPSC 111
CPSC 151 Linear
Data Structures and Elementary Algorithm Analysis (4:4:0)
This course discusses the implementation and use of common
one-dimensional data structures, including typed files, sets, strings,
lists, queues, and stacks. Array-based and pointer-based
implementations for these structures are developed, together with
iterative and recursive algorithms for structure access and
manipulation. Other topics covered include the concept of an abstract
data type, searching and sorting, and an introduction to algorithm
analysis.
Prerequisites: CPSC 111
CPSC 200 Advanced
Personal Computers and Their Uses (3:3:0)
This course builds on CPSC 100. Advanced topics in word processing and
spreadsheets will be covered. Integration of databases and
spreadsheets, as well as programming in an appropriate language will
be studied. Students will learn how to use operating system commands
and will write batch files.
Prerequisites: CPSC 100 or CPSC 101
CPSC 211
Scientific Computing with FORTRAN (3:3:0)
Scientific computing uses FORTRAN as a vehicle for numerical solutions
to applied mathematical problems. Some techniques include polynomial
curve fitting, roots of transcendental equations, numerical
integration and differentiation, simulations, initial value and
boundary value problems in differential equations and simultaneous
algebraic and differential equations.
Prerequisites: None.
Corequisites: MATH 141
Other: This course cannot be counted towards the elective
requirement for computer science majors.
CPSC 232
Introduction to Assembler Programming (3:3:0)
This course is an introduction to machine language and assembly
language programming. Concepts discussed include techniques for
encoding data as numbers, instruction set design, and the IEEE
floating point standard. Assignments, which reinforce ideas covered in
CPSC 141, teach assembly language programming techniques and allow
students to practice assembler.
Prerequisites: CPSC 141, CPSC 151
CPSC 234
Object Oriented Programming (3:3:0)
In
this course, each student will be given a variety of assignments where he or she
must create extensive, original, and executable computer programs. The
instructor will rigorously review each student’s source code to determine its
correctness, efficiency, originality, and adherence to documentation and style
guidelines.
Prerequisite: CPSC 111
CPSC 236
Programming Using Visual Basic.NET (3:3:0)
This course teaches students how to design and rapidly build
applications using the very popular and widely used programming
language, Visual Basic. It will stress how to effectively use Visual
Basic to take advantage of existing and tested objects and programs
such as Microsoft Access and Excel, so as to reduce program
development time and provide the user familiar graphical interfaces
and functionality.
Prerequisites: CPSC 111, CPSC 151.
CPSC 237
Internet and Web Programming (3:3:0)
This course is designed to teach the students how to effectively design efficient web-based applications. This course covers XHTML, Cascading Style Sheets, JavaScript, DHTML Language and Model, XML, ADO.NET, ASP.NET and PHP. The goal is to teach skills and languages to build platform-independent code for Internet- and Intranet-based applications.
Prerequisites: CPSC 151.
CPSC 240 Operating
System Concepts and Design (4:4:0)
This course is an introduction to operating systems concepts and
design principles. Topics will include all the major areas of
operating systems such as process control, memory management, file
systems, input/output and security. Theory will be demonstrated by
hands-on experience. Students will be required to complete operating
system kernel projects where they will write and/or modify operating
system code and demonstrate its impact on the performance of the
system.
Prerequisite: CPSC 232
CPSC 251 Non-Linear
Data Structures (4:4:0)
This course discusses the implementation and use of common non-linear
data structures, including random access files, sparse arrays, trees,
and graphs. Algorithms for accessing and updating structures are
presented and analyzed. Topics covered include hashing, sorting and
searching, and a selection of standard graph algorithms.
Prerequisites: CPSC 151
CPSC 290 Special
Topics (Semester hours arranged)
This course is designed to meet the specific needs of groups of
students or courses to be offered on a trial basis in order to
determine the demand for and the value of introducing them as part of
the university curriculum.
Prerequisites: Variable
CPSC 320 Topics in
Computer Science (Semester hours arranged)
Special topics in computing selected from various
areas such as compiler construction, formal languages, graphics, artificial
intelligence and data base management.
Prerequisites: CPSC 241, CPSC 251.
CPSC 321 Issues in
the Practice of Computer Science (3:3:0)
This course examines concerns relating to the practice of computer
science. Topics considered include uses of computers in professional
environments; an introduction to software development practices;
ethical and legal issues in computer science; and opportunities for
continued professional development.
Prerequisites: CPSC 111, CPSC 141, CPSC 151, CPSC 232, CPSC 251; Junior Standing.
CPSC 325
Fundamentals of Security Engineering I (3:3:0)
This course provides a comprehensive introduction to security
engineering concepts and technologies. The core technologies of access
control, cryptography, trusted computing bases, digital signatures,
authentication, network firewalls, and secure network architecture are
explained in detail. Legal issues, security policy, risk management,
certification and accreditation are covered in their supporting roles.
Case studies reinforce the lessons learned.
Prerequisites: CPSC 240, CPSC 251,MATH 220.
CPSC 326 Risk
Analysis / Certification & Accreditation (3:3:0)
Computer Certification and Accreditation (C&A) teaches students to successfully
perform US Government directed computer certifications leading to computer
system accreditation. Department of Defense (DoD) 5200.28 and Federal
Information processing Standard (FIPS) 102 guidelines are covered to ensure U.S.
Government compliance. In-class exercises guide discussions while student
projects reinforce the subject matter.
Prerequisites: CPSC 325.
CPSC 327 Introduction to Computer Forensics (3:3:0)
This course will provide a foundation in the field of Computer Forensics. The student will learn how to obtain and analyze digital information for possible use as evidence in civil, criminal or administrative cases. Topics include applications of hardware and software to computer forensics, computer forensics law, volume and file system analysis, computer forensics investigations, and computer forensics in the laboratory. Hands-on exercises guide discussions and reinforce the subject matter.
Prerequisites: CPSC 325.
CPSC 330
Programming Languages (4:4:0)
This course discusses the characteristics of Programming Languages,
and surveys the features, strengths, and limitations of specific
languages. Programming practice is provided in languages that
emphasize diverse approaches to problem solving: e.g., Scheme, Prolog
and a block-structured language.
Prerequisites: CPSC 141, CPSC 251
CPSC 335 Building
Graphical User Interfaces (GUIs), With Visual.NET (3:3:0)
This course teaches students to use Object-Oriented design techniques
to efficiently build effective Graphical User Interfaces (GUIs) for
applications software. It teaches the student how to use two of
the more popular tools, Visual C++ and Visual BASIC, and existing
class libraries to rapidly build and maintain GUIs. Students
will be required to demonstrate that they have learned how to build a
GUI by completing a final class project.
Prerequisites:CPSC 234, CPSC 251
CPSC 362 Cryptographic
Application Development (3:3:0)
In this course students will learn how to effectively design efficient, secure applications using the industry-strength Application Programming Interfaces from .NET and Java. This course covers fundamentals of Cryptography, .NET Symmetric Cryptography, .NET Asymmetric Cryptography, .NET Digital Signatures, XML Signatures, ASP.NET Security, Web Service Security, Java Cryptography Architecture (JCA), and Java Cryptography Extension (JCE). This is a programming intensive course.
Prerequisites: CPSC 151, CPSC 251 .
CPSC 421 Computer
Graphics (3:3:0)
This course is an introduction to computer graphics. Basic principles
for design, use, understanding of graphics systems will be studied.
Algorithms for creating and manipulating graphics displays and a
standard programming language for their implementation will be
presented. There will be programming practice. This course is usually offered in alternating years.
Prerequisites: CPSC 111, CPSC 251, MATH 320
CPSC 425 Expert
Systems (3:3:0)
This course is an introduction to knowledge based systems. Basic
concepts, characteristics, architectures, and tools will be studied.
Major paradigms for synthesis and analysis class systems, and exact
and inexact reasoning systems will be discussed. Computational and
knowledge engineering issues will be treated by case studies and there
will be programming practice. This course is usually offered in alternate years.
Prerequisites: CPSC 111, CPSC 251,
CPSC 330
CPSC 428
Artificial Intelligence and Heuristic Programming (3:3:0)
A study of symbolic processing and intelligent applications: major
models, state-space, problem-subproblem, automated deduction will be
applied to solve problems in heuristic programming and artificial
intelligence. This course is usually offered in alternate years.
Prerequisites: CPSC 111, CPSC 251
CPSC 429 Machine
Learning (3:3:0)
This course is an introduction to techniques that enable software to
improve its performance over time. History and classic experiments
will be presented. Programs will be studied which perform rote
learning, learn by being told, learn by analogy, learn from examples
(induction), and learn by observation and discovery. There will be
some programming practice. This course is usually offered in alternate
years.
Prerequisites: CPSC 111, CPSC 251, CPSC 428 is recommended
CPSC 430 Software
Engineering (3:3:0)
This course studies the principles of software engineering and various
programming methodologies as applied to the development of large,
complex software systems. Top-down, structured design and programming
will be emphasized. There will be practice in the construction of a
large software system. This course is usually offered in the fall.
Prerequisites: CPSC 111, CPSC 251, CPSC 330, MATH 311
CPSC 432 Natural
Language Processing (3:3:0)
This course is an introduction to natural language processing in
computer science. There will be a review of elementary text, tree and
graph processing, and an introduction to syntactic and semantic
processing. Syntax: Backus-Naur form grammars, sentence
generation/recognition, augmented transition networks and parsing
strategies. Semantics: case grammar theory, frame theory. There will
be case studies of current systems as well as programming practice. This
course is usually offered in alternate years.
Prerequisites: CPSC 111,
CPSC 141,
CPSC 251,
CPSC 330.
CPSC 433 Compiler
Construction (3:3:0)
This course introduces the student to the methods and techniques
involved in translating high level languages such as Ada and C into
executable machine code. Topics include study of lexical scanning,
parsing, symbol table construction, object code generation, and
optimization. The bulk of the student activity is spent writing a
compiler for a substantial subset of the Ada or C language. This course is
usually offered in alternate years.
Prerequisites:
CPSC 111,
CPSC 232,
CPSC 240,
CPSC 251.
CPSC 444 Realtime
Systems (3:3:0)
This course is an introduction to the problems, concepts and
techniques involved in computer systems, which must monitor and
control external devices or events. This includes techniques and
hardware for data collection and control functions. Applications
discussed will include microprocessor controlled intelligent devices
and process control. This course is usually offered in alternate years.
Prerequisites:
CPSC 111,
CPSC 141,
CPSC 232,
CPSC 240,
MATH 141.
CPSC 445 Networking
and Data Communication (3:3:0)
This course gives a foundation in the study of data communications and
computer networking. Topics covered will include basic data
communications, the Open Systems Interconnect (OSI) model, Local Area
Networks (LAN) and common communications standards. This course is usually
offered in alternate years.
Prerequisites:
CPSC 111,
CPSC 141,
CPSC 232,
CPSC 240
CPSC 447
Distributed Object Programming (3:3:0)
This course is intended for students who are interested in
understanding and developing application projects with an
object-oriented programming language such as Java in distributed
computing environments. The course begins with a brief introduction to
object technology with programming and introduction to computer
networking and is followed by understanding and developing programs in
the server/client model Remote Method Interface (RMI) and Common
Object Request Broker Architecture (CORBA).
For graduate credit a student will be required to write a term
paper that demands more insight of the topics covered in the course.
Prerequisite: CPSC
335, CPSC 445
CPSC 448
Applied Network Security (3:2:2)
This course builds on the foundation laid in CPSC 445 by providing in-depth
laboratory and classroom exercises using commercial-off-the-shelf (COTS)
technology. Students will configure network servers, routers, hubs, firewalls
and intrusion detection devices to discover the effect each device can have on
overall system security. In-class exercises guide discussions while student
projects reinforce subject matter.For graduate credit
students
will complete a research project in network security.
Prerequisite: CPSC
325, CPSC 445
CPSC 450
Algorithmic Graph Theory (3:3:0)
This course is an algorithmic approach to the mathematical theory of
graphs and their applications. Path problems, covers, network flows
and other problems will be formulated in graph theoretical terms and
solutions will be programmed. This course is usually offered in alternate
years.
Prerequisites: CPSC 111,
CPSC 251
CPSC 453 Database
Systems (3:3:0)
This course is an introduction to the management of large volumes of
interrelated data through integrated database management software.
Topics discussed will include relationships between data items,
effects of redundancy and database design. Representative examples of
the relational and network approaches to database management will be
examined.
Prerequisites: CPSC 111,
CPSC 251
Corequisites:
CPSC 232,
CPSC 240
CPSC 460 Applied
Computer Cryptography (3:3:0)
The focus of this course is developing computer algorithms for generating random
numbers, symmetric and asymmetric ciphers and cryptographic keys.
Programming assignments of stream and block ciphers will reinforce ideas covered
in CPSC 325. Students will be required to write basic public-key
cryptography code as a final project.
Prerequisites:
CPSC 251,
CPSC 325,
MATH 220.
CPSC 461 Legal
Impacts on Computer Security Solutions (3:3:0)
This course in computer security focuses on the foundation laid in
CPSC 325 and CPSC 326. Students are presented with the legal rational
behind the technical solutions studied in CPSC 325 and CPSC 326.
Criminal, civil, regulatory and intellectual property law will be
discussed in the context of professional computer environments.
Federal and State computer security statutes will guide discussions.
Student reports will reinforce the subject matter.
Prerequisites: CPSC 325, CPSC 326.
CPSC 463 Applied
Network Security (3)
This course has been replaced with
CPSC 448.
CPSC 485
Independent Study (Semester hours arranged)
This experience us taken upon the initiative of a student who seeks to
study with a knowledgeable faculty member in order to deepen a
specific interest in a particular discipline. Independent study
is a process through which a student either sharply increases his/her
already advanced knowledge of a subject area matter or increases
his/her appreciation about an academic discipline that is correlative
with a student's advanced knowledge of a subject. The proposed
independent study must be submitted to the department for
approval. The faculty member supervising the independent study
must provide a minimum of five hours of time per credit hour upon
request of the student.
Prerequisites: Variable
CPSC 486 Computer
Science Internship (Semester hours arranged)
This course consists of in-depth involvement in on-going projects under
direct professional supervision.
This
course may not be used as an elective in either the Computer Science major
or the Computer Security major.
Prerequisites:
CPSC 111,
CPSC 141,
CPSC 151,
CPSC 232,
CPSC 240,
CPSC 251,
CPSC 321,
CPSC 330.
CPSC 487 Security
Engineering Internship (Semester hours arranged)
This course consists of in-depth involvement in ongoing security
programming projects under direct professional supervision. This course may not be used as an elective in either the Computer Science major
or the Computer Security major.
Prerequisites:
CPSC 111,
CPSC 141,
CPSC 151,
CPSC 325,
CPSC 330,
CPSC 445.
Last update: 2006-10-05
This page is maintained by Ernie Miller,
Computer Science
Department, East Stroudsburg
University