Computer Science

Image Caption

College of Arts and Sciences

The Faculty of Science

Science & Technology Building, Room 318

570-422-3666......www.esu.edu/cpsc

About the Program

Two baccalaureate degree programs are offered by the Computer Science Department: a Bachelor of Science in Computer Science and a Bachelor of Science in Computer Security. These programs closely follow the recommended curriculum of the Association for Computing Machinery(ACM) and National Security Agency (NSA). The Bachelor of Science in Computer Science Program is accredited by the Accrediting Board for Engineering and Technology. The Computer Security Programs have led to the university being named a National Center for Academic Excellence in Information Assurance (Computer Security) by the U.S. Department of Homeland Security and NSA. We also offer a Computer Science Applications minor.

Admission standards are high, and extensive class work, laboratory and project involvement, motivation and commitment are required for successful development as Computer Science and Computer Security problem solvers.

In recent years, the department has received more than $7 million in research grants from outside sources. This has provided a very rich laboratory environment, as well as research opportunities for select undergraduates.

The department boasts an employment rate for graduates of approximately 100 percent in the field. Graduating students have been hired by the following organizations: Cisco, Coordinated Health, Hershey Foods, IBM, Lockheed Martin, Merck, New York Life, NSA, Pocono Medical Center, QuickChek, Sanofi Pasteur, Space and Navel Warfare Systems, U.S. Army R&D, Vanguard, Verizon, and Vonage.

Are you interested in...

  • Analyzing problems logically
  • Solving problems using computers
  • Knowing how computer works
  • Building a solid career path
  • Applying computer knowledge to everyday life
  • Growing with ever-changing technology

Choose Computer Science at ESU

  • Excellent computer facilities
  • Secure 24/7 computer science lab access
  • Ubiquitous computing environment
  • Faculty committed to teaching excellence
  • Advanced systems for upper-level classes / research

Is computer science a career path for me?

Career Potential

  • Software Engineer/Developer
  • E-commerce Engineer
  • IT Engineer/Manager
  • System Analyst/Manager
  • Game Programmer/Developer
  • Computer Scientist/Engineer

Career Settings

  • All companies using computing
  • IT companies
  • E-commerce industries
  • Industries using computers
  • Computer embedded industry
  • Research/Technology centers

More detailed career information is available from the department.

Bachelor of Science in Computer Science

  • 47 Semester Hours

    • Required major courses: CPSC 130, 131, 141, 230, 232, 250, 321, 330, 340, 430, 486; 12 semester hours of Computer Science electives numbered 220 and above.
    • Mathematics corequisite courses: MATH 140, 141, 220, 311, 320.
    • Distributive corequisite courses: ENGL 203; CMST 111; and one year of science courses that include laboratories: BIOL 114, 115, or CHEM 121, 123, 124, 126, or PHYS 161, 162; PHYS 240 may be substituted for PHYS 162.
    • Additional Requirements: Must have a total of 30 credits in Math and Science. The following courses count toward this requirement: Math (courses numbered 140 or higher), Biology (all), Chemistry (106 or higher), and Physics (106 or higher).

    Notes:

    1. All CPSC and MATH courses used to meet the requirements in the major must be completed with a grade of C or better.
    2. Students who have an interest in one of the following areas are strongly advised to include the listed courses in their program of studies:
    3. Students transferring into Computer Science or Computer Security, whether from off campus or on campus, must meet departmental admissions criteria. The criteria may be obtained from the department chair.
    4. In a program intensive 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.

  • Program Curriculum Plan

    • (Subject to change by the university without notice)

      Freshman Year

      Fall

      CPSC 130 GE: Introduction to Computer Programming I

      3

      MATH 140 GE: Calculus 1

      4

      ENGL 103: English Composition

      3

      General Education Elective

      3

      General Education Elective

      3

      Subtotal

      16

      Spring

      CPSC 131 GE: Introduction of Computer Programming II

      3

      CPSC 141: Introduction to Computer Organization

      3

      MATH 141 GE: Calculus 2

      4

      CMST 111 GE: Speech Communications

      3

      General Education Elective

      3

      Subtotal

      16

      Sophomore Year

      Fall

      CPSC 230: Programming Principles and Practice

      3

      CPSC 232: Introduction to Assembler Programming

      3

      MATH 220: Discrete Mathematical Structures

      3

      Science Sequence

      4

      General Education Elective

      3

      Subtotal

      16

      Spring

      CPSC 250: Data Structures and Algorithms

      3

      MATH 311: Statistics I

      3

      ENGL 203: Advanced Composition

      3

      Science Sequence

      4

      General Education Elective

      3

      Subtotal

      16

      Junior Year

      Fall

      CPSC 330: Programming Languages

      4

      CPSC 340: Operating Systems Concepts and Design

      4

      MATH 320: Linear Algebra

      3

      General Education Elective

      3

      Fitness Elective

      1

      Subtotal

      15

      Spring

      CPSC 321: Issues in the Practice of Computer Science

      3

      Computer Science Elective

      3

      Computer Science Elective

      3

      General Education Elective

      3

      General Education Elective

      3

      Fitness Elective

      1

      Subtotal

      16

      Senior Year

      Fall

      CPSC 430: Software Engineering

      3

      Computer Science Elective

      3

      General Education Elective

      3

      General Education Elective

      3

      Elective

      3

      Subtotal

      15

      Spring

      CPSC 486: Computer Science Internship

      3

      Computer Science Elective

      3

      Elective

      3

      Elective

      3

      Subtotal

      12

      Total Credits

      122

      For more information, contact the department by calling 570-422-3666 or visit www.esu.edu/cpsc

  • Computer Science Applications Minor

    • 20 semester hours

      • Required concentration courses: CPSC 111, 141, 151 and three additional courses from among the following: either CPSC 100 or 101, but not both; CPSC 105, 110, or any CPSC courses number 200 or higher; ECON 332, 415; MGT 451; HRTM 351; MATH 311, 411, 416, 470, 480; MCOM 355, 475, PHYS 111; SMGT 346.
      • Additional requirements: to complete the minor, the student must earn a "C" grade or better in all six courses applied to the minor, and must complete at least three CPSC courses at ESU with a "C" grade or better.

Computer Security

  • Is computer security a career path for me?

    Career Potential

    • Network Administrator
    • Security Administrator
    • Information Assurance Specialist
    • Security Developer
    • Information Security Officer

    Career Settings

    • Major corporations
    • Defense industry
    • Law Enforcement
    • Software houses
    • IT and E-commerce industries
    • Homeland Security industry
    • Research/Technology Centers

    More detailed career information is available from the department.

Bachelor of Science in Computer Security

  • Notes:

    1. All CPSC and MATH courses used to meet the requirements in the major must be completed with a grade of C or better.
    2. Students who have an interest in one of the following areas are strongly advised to include the listed courses in their program of studies:
    3. Students transferring into Computer Science or Computer Security, whether from off campus or on campus, must meet departmental admissions criteria. The criteria may be obtained from the department chair.
    4. In a program intensive 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.

  • Program Curriculum Plan

    • (Subject to change by the university without notice)

      Freshman Year

      Fall

      CPSC 130: GE: Introduction to Computer Programming I

      3

      ENGL 103: English Composition

      3

      MATH 140 GE: Calculus 1

      4

      General Education Elective

      3

      General Education Elective

      3

      Subtotal

      16

      Spring

      CPSC 131 GE: Introduction to Computer Programming II

      3

      CPSC 141: Introduction to Computer Organization

      3

      MATH 141 GE: Calculus 2

      4

      CMST 111 GE: Speech Communications

      3

      General Education Elective

      3

      Subtotal

      16

      Sophomore Year

      Fall

      CPSC 230: Programming Principles and Practice

      3

      CPSC 232: Introduction to Assembler Programming

      3

      MATH 220: Discrete Mathematical Structures

      3

      Science Sequence

      4

      General Education Elective

      3

      Subtotal

      16

      Spring

      CPSC 250: Data Structures and Algorithms

      3

      MATH 311: Statistics I

      3

      ENGL 204: Technical Writing

      3

      Science Sequence

      4

      General Education Elective

      3

      Subtotal

      16

      Junior Year

      Fall

      CPSC 325: Fundamentals of Security Engineering I

      3

      CPSC 340: Operating Systems Concepts and Design

      4

      Computer Science Elective

      3

      General Education Elective

      3

      General Education Elective

      3

      Subtotal

      16

      Spring

      CPSC 326: Risk Analysis/Certification & Accreditation

      3

      CPSC 445: Networking and Data Communications

      3

      CPSC 453: Database Systems

      3

      General Education Elective

      3

      General Education Elective

      3

      Subtotal

      15

      Senior Year

      Fall

      CPSC 460: Applied Computer Cyptograghy

      3

      CPSC 461: Legal Impacts on Computer Security Solutions

      3

      Computer Science Elective

      3

      General Education Elective

      3

      Fitness Elective

      1

      Subtotal

      13

      Spring

      CPSC 448: Applied Network Security

      3

      CPSC 487: Security Engineering Internship

      3

      Computer Science Elective

      3

      General Education Elective

      3

      Fitness Elective

      1

      Subtotal

      13

      Total Credits

      121

      For more information, contact the department by calling 570-422-3666 or visit www.esu.edu/cpsc

Faculty

Course Descriptions

  • CPSC 100 GE: Personal Computers and Their Uses (3)

    • 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)

    • 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 103 GE: Introduction to Information Technology (3)

    • In modern society, information technology is pervasive, ubiquitous, and firmly integrated into the most fundamental organizational processes. As such, an understanding of information technology and its applications are increasingly required in an ever broader range of disciplines. This course provides students with a thorough introduction to information technologies, applications, and issues. Special emphasis is placed on the role of information technology in enabling organizational strategies, processes, and problem solving.

  • CPSC 105 GE: PC Security and Privacy (3)

    • 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 108 GE: Games, Robots, and Intelligence (3)

    • This course provides a gentle introduction to computer concepts and technologies for the novice. Fundamentals os computer hardware and software will be covered. Students will gain direct experience with interesting computer science technologies (such as computer games and robotics) through hands on exercises. In addition, computer-related social issues (such as privacy), emerging trends in computing will also be discussed.

  • CPSC 110 GE: Excursions in Computer Programming (3)

    • This course is intended to give the student with no programming experience and introduction to algorithmic methods and can be used as preparatory to CPSC 111. The principles of algorithm and computer program design are presented and practiced using a simple programming language. Course is not open to students with credit for CPSC 111 or above.

  • CPSC 111 GE: Introduction to Computer Programing and Problem Solving (3)

    • This course, a first course in computer science, is intended mainly for students who either majoring or concentrating in computer science. It teaches algorithmic problem solving, emphasizing the use of top-down Object Oriented programs development to design and implement programs in the Java programing language. No prior familiarity with computer programing is assumed. This is a programing intensive course.

  • CPSC 130 GE: Introduction to Computer Programming I (3)

    • This course covers fundamental concepts and terminology of computer programming. Topics will include programming basics, debugging, and object-oriented programming. This is a programming intensive course. The course requires no programming background.

  • CPSC 131 GE: Introduction to Computer Programming II (3)

    • This course covers concepts and development of object-oriented programs. Topics will include classes and objects, one dimensional arrays, lists, stack, queues, and searching and sorting algorithms. This is a programming intensive course. Pre-requisite(s): CPSC 130

  • CPSC 141 Introduction to Computer Organization (3)

    • 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. Co-requisite(s): Concurrent enrollment in CPSC 130.

  • CPSC 151 GE: Linear Data Structure & Elementary Algorithm Analysis (3)

    • This course discusses the implementation and use of common one-dimensional data structure, including typed files, set, strings, list, queues, and stacks. Array-based and pointer-based implementations for these structure are developed, together with iterative and recursive algorithms fro structure access and manipulation. Other topics covered include the concept of an abstract data type searching and sorting, and an introduction to algorithms analysis. This programing intensive course. Pre-requisite: CSPC 111 with minimum of D

  • CPSC 200 GE: Advanced Personal Computers and Their Uses (3)

    • 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. Pre-requisite(s): CPSC 100 or 101.

  • CPSC 211 Scientific Computing with Fortran (3)

    • 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. Co-requisite(s): MATH 141. This course cannot be counted toward the elective requirements for computer science majors. This course is usually offered in alternate years.

  • CPSC 230 Programming Principles and Practice (3)

    • This course covers basic principles and techniques of program development. Topics will include implementation of elementary data structures and introduction to basic algorithm analysis. This is a programming intensive course. Pre-requisite(s): CPSC 130, 131.

  • CPSC 232 Introduction to Assembler Programming (3)

    • 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 130, 131, 141.

  • CPSC 234 Object Oriented Programming (3)

    • 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 130.

  • CPSC 236 Programming Using Visual Basic.NET (3)

    • 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 130, 131.

  • CPSC 237 Internet and Web Programing (3)

    • This course is designed to teach the students how to effectively design efficient web-based applications. This course covers XHTML, Cascading Style Sheets, Java Scipt, 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 programing intensive course. Pre-requisite: CPSC 151 minimum of D grade

  • CPSC 240 Operating Systems Concepts and Design (3)

    • 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 232 minimum D grade

  • CPSC 250 Data Structures and Algorithms (3)

    • This course covers the implementation and use of data structures and algorithms. Topics will include binary trees, priority queues, balanced trees, hash tables, graphs, recursion, binary tree searching, sorting, hashing, and graph searching. This is a programming intensive course. Pre-requisite(s): CPSC 130, 131, 230.

  • CPSC 251 Non-Linear Data Structures (4)

    • 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. Pre-requisite(s): CPSC 130, 131.

  • 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)

    • 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 130, 131, 141, 230, 250.

  • CPSC 321 Issues in the Practice of Computer Science (3)

    • 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 130, 131, 141, 230, 250;Minimum of 64 credits.

  • CPSC 325 Fundamentals of Security Engineering I (3)

    • 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 130, 131, 230, 250; MATH 220.

  • CPSC 326 Risk Analysis/Certification and Accreditation (3)

    • 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. Pre-requisite(s): CPSC 325

  • CPSC 327 Introduction to Computer Forensics (3)

    • 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. Pre-requisite(s): CPSC 325.

  • CPSC 328 Security in Web Programming (3)

    • 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.

      Pre-requisite(s): CPSC 130, 131, 230, 250, 325.

  • CPSC 330 Programming Languages (4)

    • 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. Pre-requisite(s): CPSC 130, 131, 230, 250.

  • 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. Pre-requisite(s): CPSC 130, 131, 230, 250.

  • CPSC 337 Internet and Web Programming (3)

    • This course is designed to teach the students how to effectively design efficient web-based applications. This course covers XHTML, Cascading Style Sheets, JavaScript, DHTM Language and Model, XTML, 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. Pre-requisite(s): CPSC 130, 131.

  • CPSC 340 Operating System Concepts and Design (4)

    • 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. Pre-requisite(s): CPSC 130, 131, 230, 250; MATH 220.

  • CPSC 362 Cryptographic Application Development (3)

    • 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. Pre-requisite(s): CPSC 130, 131, 230, 250.

  • CPSC 421 Computer Graphics (3)

    • 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 130, 131, 230, 250; MATH 320.

  • CPSC 425 Expert Systems (3)

    • 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. Pre-requisite(s): CPSC 130, 131, 230, 250, 330.

  • CPSC 428 Artificial Intelligence and Heuristic Programming (3)

    • 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. Pre-requisite(s): CPSC 130, 131, 230, 250.

  • CPSC 429 Machine Learning (3)

    • 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. Pre-requisite(s): CPSC 130, 131, 230, 250; CPSC 428 is recommended.

  • CPSC 430 Software Engineering (3)

    • 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. Pre-requisite(s): MATH 311, CPSC 130, 131, 230, 250, 330.

  • CPSC 432 Natural Language Processing (3)

    • 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. Pre-requisite(s): CPSC 130, 131, 141, 230, 250, 330.

  • CPSC 433 Compiler Construction (3)

    • 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. Pre-requisite(s): CPSC 130, 131, 230, 232, 250, 340.

  • CPSC 442 Introduction to Computer Game Development (3)

    • 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. Pre-requisite(s): CPSC 130, 131, 230, 250, 340.

  • CPSC 444 Realtime Systems (3)

    • 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. Pre-requisite(s): MATH 141; CPSC 130, 131, 141, 232, 340.

  • CPSC 445 Networking and Data Communication (3)

    • 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. Pre-requisite(s): CPSC 130, 131, 141, 232, 340.

  • CPSC 447 Distributed Object Programming (3)

    • 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). Pre-requisite(s): CPSC 335, 445.

  • CPSC 448 Applied Network Security (3)

    • 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. Pre-requisite(s): CPSC 325, 445.

  • CPSC 450 Algorithmic Graph Theory (3)

    • 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. Pre-requisite(s): CPSC 130, 131, 230, 250.

  • CPSC 453 Database Systems (3)

    • 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. Pre-requisite(s): CPSC 130, 131, 230, 250. Co-requisite(s): CPSC 232, 340.

  • CPSC 460 Applied Computer Cryptography (3)

    • 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. Pre-requisite(s): CPSC 325, 251, MATH 220.

  • CPSC 461 Legal Impacts on Computer Security Solutions (3)

    • 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. Pre-requisite(s): 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. Pre-requisite(s): CPSC 130, 131, 141, 230, 250, 321, 330, 340.

  • 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. Pre-requisite(s): CPSC 130, 131, 141, 230, 250, 325, 445.