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