Computer Science

Degrees and Certificates

Courses

CPSC 107: Introduction to Computing

Students develop a basic proficiency of computer usages in this course. Topics include the history of computing, the principal components of computers systems, and societal issues. Students discuss and use application software including word processors, spreadsheets, presentation software, and the World Wide Web. Students also learn elementary programming.

CPSC 140-150: Programming

The following courses provide an introduction to computers by programming in a high-level language. The emphasis is on programming real-life problems using efficient coding techniques. These courses are for students who want to use the computer as a problem-solving tool or who want to write programs for operating systems, compilers, artificial intelligence, or Internet applications.

CPSC 144: Programming in COBOL

The programming assignments in this course are related to mainframe application computing, especially providing familiarity with the IBM z System.

CPSC 151: Computer Science I

This course emphasizes techniques of algorithmic design, structured programming, and debugging. The course also introduces students the mission-critical and strategic importance of IBM z System mainframe transactions or real-time data analytic technologies used by U.S. and Global Fortune 500 companies. By learning the z System, students learn an overall structure of the enterprise computing from hardware architectures to application programming. This beginning course for computer science majors may also be taken by others who wish to learn a high-level computer language.

CPSC 152: Computer Science II

This course is an introduction to advanced features of a high-level computer language including stacks, queues, and user-defined data structures. The programming assignments involve the techniques of searching, sorting, and recursion.

CPSC 205: Web Design

This course introduces students to the tools and techniques used in designing web pages. Students learn HTML, CSS, JavaScript, and the web authoring software packages: CPSC 151

CPSC 210: Discrete Mathematics

This course introduces fundamental concepts of mathematics involved in computer science including induction, elementary counting, combinations and permutations, recursions and recurrence relations, graphs and trees, sorting and searching, and Boolean algebra. (This course may be taken for credit as MATH 210.)

CPSC 220: Master the Mainframe

The Master the Mainframe Contest administered by the IBM Academic Initiative gives students an opportunity to develop mainframe skills. There are three parts in the contest. A student who completes Part 1 and Part 2 will develop basic mainframe skills and will be awarded an IBM Basic Mainframe Skills badge. Part 3 provides hands-on project based learning. Through the hands-on projects, a student will learn z System programming languages including ReXX, COBOL, C, JAVA, assembler, SQL, and system programming. A student who completes Part 3 be awarded an IBM Acclaim Mainframe skills badge. A students complete Part 1 and Part 2 and selected hands-on projects in Part 3 received a certification from the department. CR/NCR Only.

CPSC 222: Electronics

The student is presented with the fundamentals of digital and analog circuit analysis. Among topics originally specific to analog circuits are DC circuit analysis using Kirchoff’s laws, mesh equations, transformations, the use of multimeters and oscilloscopes, AC circuit analysis using complex impedances, capacitors, and inductors, resonance, step function analysis, and transitions. Among the topics originally specific to digital analysis are simple logic gates, IC chips, Boolean algebra, adders, flip-flops, shift registers, and counters. After the fundamentals are covered, the emphasis shifts to circuit analysis involving knowledge of both perspectives. This course includes three hours of lecture and two hours of laboratory each week. (This course may be taken for credit as PHYS 222.)

CPSC 230: Project Management

This course is designed to prepare a student in completing a complex project by using the constraints needed for a successful project. Topics included planning, scheduling, score management, quality control, budget, and risk management of a project during its life cycle. The student experiences as a project manager to complete a project with the necessary tools and skills during the course.

CPSC 240: Introduction to Computer Security

The course provides an introduction to communication and networks, laying the groundwork for advanced courses in the field. It addresses theoretical and technical concepts of network technology and computer system security, as well as a broad spectrum of issues related to computer security and data privacy. Students will learn about the hardware and software used in computer networks and how these components communicate through protocols. They will also develop their knowledge of the mechanisms of the different topologies and how to construct a network from different hardware components including wiring concepts to network devices.

CPSC 245: Internetworking: Routing and Switching

This course is a study of concepts, theories, requirements and mechanisms of network and its communication. The course gives the essential knowledge to understand the network and lay the ground for advanced course in the field. Students gain experience designing, implementing, and testing a network infrastructure through lab work. This provides students with the knowledge of the hardware, software’s of the computer networks and how the components integrate to provide communication via protocols. It also highlights the mechanisms of different topologies, how to construct a network from different hardware components including cabling concepts to devices that compose the network.

CPSC 250: Content and Systems Design

If you’ve ever enjoyed the experience of playing a video game, you’ve had a first-hand lesson in how important content and systems design are. The experience of a game is driven by four major components: content, systems, narrative, and user experience. This class will help you learn to design all four components, and build a deeper understanding of the game development process and an introduction to concepts in scripting. This online class has optional live sessions.           

CPSC 275: Data Structures and Algorithms

This course is a study of the theory of and advanced techniques for representation of data, including link-lists, trees, graphs, analysis of algorithms, sorting, searching, and hashing techniques.

CPSC 277: Computer Ethics

This course is a study of the theory and practice of computer ethics. The aim of the course is to learn the basis for ethical decision-making and the methodology for reaching ethical decisions concerning the computer science field. Topics studied in the course are Computers in the Workplace, Computer Crime, Privacy and Anonymity, Intellectual Property, and Professional Responsibility. Methodologies used in the course include lectures by the instructor, lectures by visiting lecturers, in-class discussions, writing assignments, individual class presentations, and case analyses.

CPSC 310: Artificial Intelligence

This course is an introduction to the principles and programming methods of artificial intelligence. The fundamental issues involve logic and knowledge presentation, search, and learning. The programming language LISP is introduced and used to manipulate symbolic data.

CPSC 320: Software Engineering

This course is a general survey of software engineering. Among the topics covered are project planning and management, design techniques, verification and validation, and software maintenance.

CPSC 330: Computer Organization and Assembly Language

This course is a study of applications of Boolean algebra to combinational circuit design problems, organization of simplified computer components, memory organization, architecture, and assembly language programming.

CPSC 340: Computer Forensics

The course is designed to introduce the students to the software, hardware, legal, and ethical issues involved in computer forensics. Student will be developing the skills necessary to perform investigations into a variety of digital equipment through the use of practical projects.

CPSC 350 : Unity I: Working with Unity

The Unity engine powers nearly 50% of all games and nearly 75% of mobile games. This course, built in collaboration with Unity and the IGDA, will introduce you to developing games in Unity. By the end of this course, you'll learn how to build a fully functioning game within the Unity system, including all key elements. This online course has optional live sessions.

CPSC 360: Programming Languages

This course is a study of programming language constructs emphasizing the run-time behavior of programs. Topics include formal grammars, parsing, information binding, data storage, global and local variables and parameters, string handling and list processing.

CPSC 370: Operating Systems

This course is a study of batch processing systems, implementation techniques for parallel processing of input/output and interrupt handling, memory management, system accounting, interprocess communication and interfaces, and deadlocks.

CPSC 373: Writing for Mathematics and Computer Science

This course is designed to emphasize recognition of clarity and style of presentation in the reading and discussion of computer science related technical writing. (This course may also be taken for credit as MATH 373.)

CPSC 375: Computer Security

This course provides an overview of computer and network security. Topics covered include risks and vulnerabilities; related policies; controls and protection methods; access controls; database security; authentication technologies; and host-based and network based security. The students will learn how to design and build secure systems. Throughout the course, students will be given real world examples and projects to deepen their understanding.

CPSC 380: Data Base Design

This course is an intensive study of the design and the implementation of a database. Topics include entity-relationship model, relational model, SQL, relational database design, obj ect-oriented databases and obj ect-relational databases.

CPSC 390: Numerical Analysis

This course is a study of numerical methods of evaluating integrals and differential equations, techniques in finding the roots of polynomials, solving systems of linear equations, and matrix manipulation. (This course may be taken for credit as MATH 390.)

CPSC 405: Cryptography

This course focuses on the study of various cryptographic protocols, algorithms, and proofs of security. Topics include classical vs. modem cryptography; historical ciphers; principles of modem cryptography; perfectly secret encryption.

CPSC 420: Professional Internship

This course is a professionally supervised experience with off-campus mathematicians, computer scientists, or applied scientists using modem research and/or analytical techniques. Settings may vary from purely academic summer programs to private or public scientific institutions. The number of credits awarded depends on the number of imbedded hours in the internship experience. A minimum of 50 imbedded hours is expected per credit with the maximum number of credit earned is eight.

CPSC 440: Data Communications and Network Architecture

This course is a study of data communications and computer networks from the programmer’s point of view. Topics include direct link networks, including Ethernet and wireless networks; packet switching, internetworking, and routing, with an emphasis on the Internet Protocol; end-to-end communications, emphasizing UDP, TCP, and RPC; congestion control; data compression; network security; and applications. Students write programs that use the TCP/IP protocol stack via the UNIX or Java socket interfaces.

CPSC 450: Network Security

This course is a study of concepts, theories, requirements and mechanisms of network security. Topics include concepts related to network vulnerabilities and attacks, defense mechanisms against network attacks, cryptographic protection mechanisms, mechanism of identification and authentication, and real-time/non-real-time commutation security. Students gain experience designing, implementing, and testing a network security infrastructure through lab work.

CPSC 470: Operating System Security

This course provides the security issues including vulnerabilities, threats, exploits and defense mechanisms in operating systems. Topics include logging, auditing, address space randomization, memory protection, virtual machine introspection (VMI), malware and malware immunization.