ESU HOME BUSINESS & COMMUNITY SUPPORT ESU SITE MAP
Reibman Building
Text Size: S N M L       

Course Description


Search ESU

East Stroudsburg University
Stroud Hall Room 310
East Stroudsburg, PA 18301
(570) 422-3666
(570) 422-3490 (Fax)


Department Chair
Computer Science

Richard Amori
ramori@po-box.esu.edu
(570)422-3779

 

CPSC 100 GE: Personal Computers and Their Uses (3:3:0)
This course is an introduction to personal computers (PCs) for non-science majors. The course teaches the use of standard PC software, including an operating system, a word processing program, a spreadsheet, a presentation package, and a database package. The course also provides a non-technical understanding of how computers function, and how society uses computers to obtain and manage information. Students may receive credit for either CPSC 100 or CPSC 101, but not both.

CPSC 101 GE: 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. Students may receive credit for either CPSC 100 or CPSC 101, but not both.

CPSC 105 GE: 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.

CPSC 111 GE: 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. This is a programming intensive course.

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. Prerequisite: CPSC 111.

CPSC 151 GE: 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. This is a programming intensive course. Prerequisite: CPSC 111.

CPSC 200 GE: 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. Prerequisite: CPSC 100 or 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. Corequisite: MATH 141. This course cannot be counted toward the elective requirements for computer science majors. This course is usually offered in alternate years.

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 programming. This course is usually offered in the fall. This is a programming intensive course. Prerequisites: CPSC 141, 151.

CPSC 234 Object Oriented Programming (3:3:0)
This course is designed to teach the student how to effectively design efficient programs to solve real world problems using the techniques of Object Oriented Programming (OOP) rather than conventional functional programming. It has the student use and compare two popular OOP languages, C++ and C#, to implement the design of their objects and build their application programs stressing good OOP techniques. 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.NET. It will stress how to effectively use Visual Basic.NET 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. This is a programming intensive course. Prerequisites: CPSC 111, 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. This is a programming intensive course. Prerequisite: 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. This is a programming intensive course. Prerequisites: CPSC 111, 151.

CPSC 290 Special Topics (Semester hours arranged)
This course is designed to meet specific needs of groups of students or courses to be offered on a trial basis in order to determine the demand for and value of introducing them as part of the university curriculum.

CPSC 320 Topics in Computer Science (3:3:0)
This course focuses on special topics in computing selected from such areas as compiler construction, formal languages, information retrieval, graphics, artificial intelligence. This may be taken more than once, with permission in advance. Prerequisites: CPSC 141, 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, 141, 151, 232, 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. Pre-requisites: CPSC 240, 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. Prerequisite 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. Prerequisite: CPSC 325.

CPSC 328 Security in Web Programming (3:3:0)
This course covers Web safety and browser vulnerabilities, privacy concerns, issues with Java, JavaScript, ActiveX, and web plug-ins. Digital certificates are examined to see how they assure identity in networked environments and how server certificates work. The course also provides technical details about SSL (Secure Socket Layer), TLS (Transport Layer Security), host security, server access methods, and secure CGI/API programming. Prerequisites: CPSC 251 and 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. This is a programming intensive course. Prerequisites: CPSC 111, 141, 151, 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 most popular tools, Visual C++.NET and Visual Basic.NET, and existing class libraries to rapidly build and maintain GUIs. All students will be required to demonstrate that they have learned how to build a GUI by completing a final class project. This is a programming intensive course. Prerequisite: 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. Prerequisite: CPSC 151, 251.

CPSC 421 Computer Graphics (3:3:0)
This course is an introduction to computer graphics. Basic principles for design, use, understanding of graphic systems will be studied. Algorithms for creating and manipulating graphic displays and a standard programming language for their implementation will be presented. There will be programming practice. This course is usually offered in alternate years. Prerequisites: CPSC 111, 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, 251, 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, 251.

CPSC 429 Machine Learning (3:3:0)
This course is an introduction to techniques which 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, 251; CPSC 428 is recommended.

CPSC 430 Software Engineering (3:3:0)
This course is a study of 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. This is a programming intensive course. Prerequisites: MATH 311, CPSC 111, 251, 330.

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 grammars, sentence generation, recognition, augmented transition networks, 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, 141, 251, 330.

CPSC 433 Compiler Construction (3:3:0)
This course introduces the student to the methods and techniques involved in translating highlevel 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, 232, 240, 251.

CPSC 442 Introduction to Computer Game Development (3:3:0)
This course provides students with a comprehensive introduction to computer game design principles, techniques, and algorithms. It covers the following areas of computer game design: game concept development, user interface design, graphics (2D, 3D, animation, and advanced techniques), game physics, real-time interaction, intelligent characters, and software engineering considerations. During the course, each student will develop a functional, live-action computer game for the PC/Windows-XP platform. Prerequisites: CPSC 240, 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: MATH 141, CPSC 111, 141, 232, 240.

CPSC 445 Networking and Data Communication (3:3:0)
This course gives students a foundation in the study of data communications and computer networking. Topics covered will include basic data communications, Open Systems Interconnect (OSI) Model, Local Area Networks (LAN), and common communications standards. This course is usually offered in alternate years. Prerequisites: CPSC 111, 141, 232, 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). Prerequisites: CPSC 335, 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. Prerequisites: CPSC 325, 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. This is a programming intensive course. Prerequisites: CPSC 111, 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, effect of redundancy, and database design. Representative examples of the relational and network approaches to database management will be examined. Prerequisites: CPSC 111, 251. Corequisites: CPSC 232, 240.

CPSC 460 Applied Computer Cryptography (3:3:0)
The focus of this course is developing computer algorithms for generating random numbers, symmetric and asymetric 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 325, 251, 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 rationale 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, 326.

CPSC 485 Independent Study (Semester hours arranged)
This experience is 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 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.

CPSC 486 Computer Science Internship (Semester hours arranged)
This course consists of in-depth involvement in ongoing 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, 141, 151, 232, 240, 251, 321, 330.

CPSC 487 Security Engineering Internship (Semester hours arranged)
This course consists of involvement in ongoing network security tactics, techniques and procedures under direct professional supervision. This course may not be used as an elective in either the Computer Security major or the Computer Science major. Prerequisites: CPSC 111, 141, 151, 325, 330, 445.

 

© 2008 East Stroudsburg University • 200 Prospect Street • East Stroudsburg, Pa 18301
Contact Admissions • Contact the Webmaster
570-422-3211

East Stroudsburg University
A Member of the Pennsylvania State System of Higher Education