CPSC 140 INTRODUCTION TO COMPUTER PROGRAMMING FOR NON-MAJORS (3)
This course is designed for the non-major and does not count toward the computer science
major or minor. It covers the basics of computer programming, including structured programming
constructs and object-oriented programming. Students will develop Windows-based applications.
Prerequisite: MATH 120 or placement above MATH 120
CPSC 155 COMPUTER PROGRAMMING (3)
An object early introduction to programming. The course emphasizes the fundamentals of
object-oriented programming (classes, objects, methods, inheritance, polymorphism, libraries,
implementation, interfaces, encapsulation) and at the same time introduces other software
engineering and programming concepts (conditional statements, iteration, input/output, arrays,
types, files, collections).
Prerequisite: MATH 120 or placement exam above MATH 120
CPSC 165 COMPUTER PROGRAMMING II—DATA STRUCTURES (3)
This course focuses on commonly used data structure, including stacks, queues, linked lists,
and binary search trees. Students will study each data structure’s design and implementation, use
data structures in applications, and consider data structures from a comparative perspective.
Topics covered include array handling, sorting and searching algorithms, recursion, inheritance,
abstract classes, and interfaces.
Prerequisite: CPSC 155
CPSC 245 OPERATING SYSTEMS (3)
This course provides an introduction to computer operating systems, their role, organization,
and control. Topics discussed include resource allocation and management, scheduling algorithms,
process management, memory management, process synchronization mechanisms, concurrent programming,
and techniques employed in multiprogramming and multiprocessing environments. In addition, a
special emphasis is placed on contemporary operating systems.
Prerequisites: CPSC 165 and MATH 240
CPSC 275 WINDOWS-BASED APPLICATION DEVELOPMENT (4)
The main objective of this course is to teach the student the concepts of Windows-based
application development using Visual Studio and the .NET Framework. Students will use both C# and
Visual Basic .NET. Besides creating standard Windows-based applications in .NET, students will also
create front ends to databases, games, and build their own controls.
Prerequisite: CPSC 165
CPSC 280 WEB DEVELOPMENT (3)
Students will design and develop websites using client-side technologies. While much of the course will focus on HTML, CSS and JavaScript, other technologies may also be surveyed. In addition, the course will provide an overview of web architecture, web clients and servers, browsers and website design principles.
Prerequisites: CPSC 155 and sophomore standing
CPSC 285 DATABASE DESIGN AND PROGRAMMING (3)
The study of relational database systems. Topics include SQL, the relational model, security, normalization, functional dependecy and entity
relationship diagrams, database design, recovery, transaction processing, ethics and client server systems. The course also covers DBMS packages,
report generations and the use of Visual Studio and .NET languages as a front-end to database systems.
Prerequisite: CIS 120 and CPSC 275
CPSC 299 SERVICE LEARNING (1)
Students will perform computer-related volunteer work for one semester, under the supervision
of an instructor. Students will work for at least 45 hours on their service learning project. This
course can only be taken on a satisfactory/fail basis.
Prerequisites: CIS 120 and CPSC 280
CPSC 312 NETWORK PROGRAMMING (3)
Students will study how networks operate and how network applications are written. The course will include an overview of networking topics such as
transmission protocols and routing, and will focus on software running over these networks: building network programs using sockets and higher-level
networking objects, and designing application protocols. The course also includes an introduction to cloud computing.
Prerequisite: CPSC 275
CPSC 320 SECURITY (3)
This course is an examination of information security, including the discussion of network security and application security. The course covers
the theory and practice of information security, including security principles, practices, methods and tools. The course covers the spectrum of information
security, from rish assessment to preventing, detecting and responding to breaches of security.
Prerequisite: CPSC 165
CPSC 321 WEB DEVELOPMENT II (3)
Students will design and develop server-side web applications. Programming using server-side
technologies including ASP.NET, Ajax, PHP, XML. Web applications that use database platforms will be a primary focus. The role and use of web servers and database servers will be central to the
course. Multi-tier applications will be developed and content management systems will be
introduced.
Prerequisites: CPSC 280 and CPSC 285
CPSC 323 ADVANCED DATA STRUCTURES AND ALGORITHM ANALYSIS (3)
This course focuses on the design and analysis of efficient algorithms. Major topics include
advanced data structures; tree balancing algorithms; graph theory; dynamic programming; additional
techniques for sorting and searching, including hash coding techniques; automata theory;
NP-completeness and program verification.
Prerequisites: CPSC 165 and MATH 240
CPSC 325 DATABASE ORGANIZATION AND DESIGN (3)
The study of relational database systems. Topics include SQL, the relational model, security,
normalization, functional dependency diagrams, optimization, entity relationship diagrams, database
design, recovery, transaction processing, ethics, multi-user systems, and client server systems.
The course also covers DBMS packages, report generators, and the use of Visual Studio and .NET
languages as a front-end to database systems.
Prerequisites: CIS 120 and CPSC 275
CPSC 361 COMPUTER ARCHITECTURE (3)
This course presents an introduction to the functional elements and structures of digital computers. Topics
include basic gates and circuits, CPU design and organization, registers, buses, I/O device interfaces, hardware interrupts, pipelining, memory structures and organizations.
Prerequisites: CPSC 165 and MATH 240
CPSC 415 ADVANCED DATABASE DEVELOPMENT (3)
This course explores advanced topics in client server and database development. It covers the
programming and administration of database systems and includes views, stored procedures, triggers,
indexes, constraints, security, roles, logs, maintenance, transaction processing, XML, reporting,
and other relevant topics. Students will be exposed to several database packages and will do
considerable database programming.
Prerequisite: CPSC 285
CPSC 425 ARTIFICIAL INTELLIGENCE (3)
This course introduces the student to the basic concepts and techniques of artificial
intelligence (AI). Topics include intelligent agents, knowledge representation, knowledge
engineering, natural language, vision systems, robotics, and machine learning. Students will also
learn to write AI programs in AI languages.
Prerequisite: CPSC 323 or concurrent enrollment
CPSC 430 SYSTEMS ANALYSIS AND DESIGN (3)
Study of the information systems development process, from scope definition through
implementation, with focus on methods for capturing system requirements, modeling requirements, and
performing systems design. Different methodologies for systems development are looked at. Major
topics include use case development, data modeling, process modeling, and object-oriented analysis
and design. Purpose and usage of entity relationship diagrams, data flow diagrams, and several UML
diagrams are covered.
Prerequisite: CPSC 285 and senior standing.
CPSC 434 PRINCIPLES OF UNIX (3)
This course will introduce the students to UNIX and systems programming. Students will use
UNIX commands, shell scripts, PERL, and C. Students will use Linux to solidify their understanding
of operating systems concepts.
Prerequisite: CPSC 245
CPSC 446 MOBILE APPLICATIONS DEVELOPMENT (3)
Students will design and code mobile applications using the latest in wireless application development
technologies. Topics include wireless mobile platform operating systems and micro-browsers,
the Android SDK, the iPhone SDK, the Windows .NET mobile
development environment.
Prerequisites: CPSC 275 and CPSC 280
CPSC 447 GAME DEVELOPMENT (3)
This course introduces the student to game development. Students will learn how to use the
XNA toolset to develop different types of games for multiple platforms—the personal computer, the
Xbox, and the Windows Phone.
Prerequisite: CPSC 275
CPSC 450 INDEPENDENT STUDY (1-4)
Independent reading and/or research on special topics in computer science.
Prerequisite: Consent of faculty supervisor
CPSC 455 INTERNSHIP (1-8)
Experience as a computer professional under the joint supervision of a faculty member and an
assigned business manager.
Prerequisites: Junior or senior standing in computer science and the permission of the
department
CPSC 461 ADVANCED TOPICS IN COMPUTER SCIENCE (1-3)
Topics of current interest. May be repeated for credit.
Prerequisite: Approval of the instructor
CPSC 471 SENIOR PROJECT (3)
A comprehensive, independent project in the senior year under the guidance of a computer
science faculty member. It includes design, development, coding, testing, and documentation of a
software application.
Prerequisites: Senior standing and consent of department
CPSC 475 SENIOR SOFTWARE DEVELOPMENT EXPERIENCE (3)
Students will work in teams to develop, test and deliver substantial information systems begun during Systems Analysis and Design.
Prerequisites: CPSC 321, CPSC 430 and senior standing
INDEPENDENT RESEARCH OR CREATIVE INVESTIGATION (1-3)
Introductory, Intermediate, Advanced, Senior Thesis Independent Research or Creative
Investigation is a course in which students collaborate with faculty mentors on an ongoing faculty
research project or conduct an independent project under the guidance of a faculty member. This
directed undergraduate research or creative investigation culminates in a conference presentation,
journal article, or other creative/scholarly project.
Prerequisite: Consent of instructor