CPSC Computer Science
CPSC 1105 Technological Solutions - (3-0-3)
A problems solving course using the newest technologies to develop an understanding
of and skills in electronic communications, information retrieval, word processing
and desktop publishing, spreadsheet and data analysis, and electronic presentation
techniques. Emphasis will be placed on using technology to solve practical problems.
Students with credit for ITDS 2745 Computers and the World Wide Web seminar may not
receive credit for this course.
CPSC 1301 Computer Science 1 - (3-0-3)
This course includes an overview of computers and programming; problem solving and
algorithm development; simple data types; arithmetic and logic operators; selection
structures; repetition structures; text files; arrays (one-and-two-dimensional)
CPSC 1302 Computer Science 2 - (3-0-3)
Prerequisites: CPSC 1301. A continuation of CPSC 1301. This course emphasizes programming using
object-oriented methods. The fundamentals used in designing, developing and using
classes, encapsulation, inheritance mechanisms, polymorphism and dynamic binding.
CPSC 2105 Introduction to Computer Organization - (3-0-3)
Prerequisites: CPSC 1302. Basic computer organization at the machine language and assembly language
level. Digital logic and circuits. Basic components of computer hardware and their
implementation. Interaction with the operating system. Alternative computer organizations
and implementations. Introduces students to the operation of a computer, stressing
the relationships and compromises between software and hardware.
CPSC 2108 Data Structures - (3-0-3)
Prerequisites: CPSC 1302. This course extends the concepts of primitive data types by teaching the
student a set of data structures that pervades both the theoretical and practical
domains of computer science.
CPSC 2125 Introduction to Web Development - (3-0-3)
Prerequisites: CPSC 1302. This course is an introduction to application development for the World
Wide Web. Topics include: hypertext markup languages, web design (styles, themes,
and color schemes)
CPSC 2175 Object-Oriented Design - (3-0-3)
Prerequisites: CPSC 2108. An introduction to designing windows applications using object-oriented
and component technologies. Course emphasizes event-driven programming using controls
and components to develop desktop windows applications.
CPSC 3111 Structured Programming with COBOL 1 - (3-0-3)
Introduction to programming in COBOL. Emphasis on structured design techniques. Computer
assignments required.
CPSC 3112 Structured Programming with COBOL 2 - (3-0-3)
Prerequisites: CPSC 3111. A continuation of CPSC 3111. CPSC 3115. Discrete Structures in Computer
Science
CPSC 3116 Mainframe Basics and JCL - (3-0-3)
This course presents an overview of IBM mainframe operating systems currently in use
in the area. It includes common terminology and the most used JCL features.
CPSC 3117 Visual Basic Programming - (3-0-3)
Prerequisites: CPSC 2108. The primary purpose of this course is to provide experience and skills
in designing and programming event-driven Windows applications using visual development
environment and tools. A popular and powerful development environment Visual Basic
will be used in this course. Subjects covered include: Visual Basic environment, controls,
creating menus, VB programming, working with forms, OLE objects, ActiveX controls,
adding Internet access, providing help systems, and Windows API. Extensive lab work
and programming required.
CPSC 3121 Assembly Language Programming 1 - (3-0-3)
An introduction to assembly language for mainframes or PC's. Topics include machine
architecture (registers, memory, instruction formats)
CPSC 3122 Assembly Language Programming 2 - (3-0-3)
Prerequisites: CPSC 3121. Topics include Macro writing, Dsects, Multi-dsect programs, Standard Linkage
Conventions, VSAM processing, Assembler and Linkage Editor design.
CPSC 3125 Introduction to Operating Systems - (3-0-3)
Prerequisites: CPSC 2108. An introduction to basic operating system level software concepts. Course
topics include processes, threads, symmetric multi-processing, thread synchronization
and memory management techniques.
CPSC 3131 Introduction to Database Systems 1 - (3-0-3)
Prerequisites: CPSC 2108. The course covers the fundamentals of database systems. Topics to be covered
include the following: file systems and database concepts, database models, relational
database model, introduction to SQL, database design and implementation, database
integrity, and normalization of database tables. Implementation techniques using commercial
DBMS will be considered. The course includes lab work and individual database application
programming projects.
CPSC 3132 Introduction to Database Systems 2 - (3-0-3)
Prerequisites: CPSC 3131. A continuation of Database Systems 1. Database architecture and administration.
New developments in databases. A different database will be introduced. Lab work and
database application projects.
CPSC 3156 Introduction to Transaction Processing - (3-0-3)
Prerequisites: CPSC 3112. An introduction to interactive processing in a transaction-based computer
system. Topics include multitasking, multi threading, maps, pseudo conversational
programming and large system design. A language for writing transaction-based systems
will be introduced.
CPSC 3165 Professionalism in Computing - (3-0-3)
Prerequisites: CPSC 1302. The social impact, implications and effects of computers on society, and
the responsibilities of computer professionals in directing the emerging technology.
Includes the examinations of reliable, risk-free technologies, and systems which provide
user friendly processes. Specific topics include an overview of the history of computing,
computer applications and their impact, the computing profession, and the legal and
ethical responsibilities of professionals.
CPSC 3555 Selected Topics in Computer Science - (1-3 hours)
Prerequisites: CPSC 2108. Study of topics of special interest, independent study, or directed experience
in the field of computing. Course may be taken three times. Course may be taken three
times. A maximum of three credit hours may be applied to the degree program.
CPSC 4125 Introduction to Server-Side Web Development - (3-0-3)
Prerequisites: CPSC 2125 and CPSC 3131. This course is a continuation of CPSC 2125, Introduction
to Web Development. Topics include: server-side scripting languages, interfacing web
applications with databases, advanced topics in hypertext markup languages and client-side
scripting. Modern software tools for the server-side web application development will
be introduced. Students will complete individual subjects-development of a web site
with a database connectivity.
CPSC 4175 Introduction to Software Engineering - (3-0-3)
Prerequisites: CPSC 2175. Introduction to the basic principles of software engineering. Issues in
the software life cycle. Emphasis on methods for software design and testing. Project
management and quality assurance. Significant software project required.
CPSC 4698 Internship - (1-3 hours)
Prerequisites: Junior Standing. Work experience on an approved project supervised by a faculty member.
May be repeated for a maximum of three credit hours. (S/U grading.)
CPSC 4899 Independent Study - (3-0-3)
Prerequisites: Junior Standing. Course project approved and supervised by a faculty member. May
be taken only once for credit.
CPSC 5115 Algorithm Analysis and Design - (3-0-3)
Prerequisites: CPSC 2108 or MATH 3125 or CPSC 3115. This course emphasizes the understanding of
data structures and algorithms from an analytical perspective rather than from an
implementation standpoint. The concepts developed allow discussion of the efficiency
of an algorithm and the comparison of two or more algorithms with respect to space
and run-time requirements. Analytical methods are used to describe theoretical bounds
as well as practical ones. In general, this course addresses the constraints that
affect problem solvability.
CPSC 5125 Introduction to Computer Graphics - (3-0-3)
Prerequisites: CPSC 2108. Introduction to the input, construction, storage, retrieval, manipulation,
alternations, and analysis of computer graphics objects. Graphics computer hardware,
graphics primitives, two-dimensional and three-dimensional viewing and transformations,
basic modeling.
CPSC 5135 Programming Languages - (3-0-3)
Prerequisites: CPSC 2108. Emphasizes the run-time behavior of programs. Languages are studied from
two points of view: (1)
CPSC 5136 Compiler Construction - (3-0-3)
Prerequisites: CPSC 2108. Includes the theory, the design, and the implementation of a large language
translator system. Lexical analysis, syntactic analysis, core generation, and optimization
are emphasized.
CPSC 5137 Client-Server Database Systems - (3-0-3)
Prerequisites: CPSC 3117 and CPSC 3131. This course teaches how to build three-tier client-server
applications that access corporate SQL databases. The course emphasizes multi-tiered
development at the presentation, business and data layers using Visual Basic, Transact
SQL, COM, ActiveX, business objects, and SQL server.
CPSC 5138 Advanced Database Systems - (3-0-3)
Prerequisites: CPSC 3131. This course is intended for computer science students and professionals
who have already acquired a basic background on databases. The objective of the course
is to introduce the students to the most advanced concepts and recent issues in several
areas of database technology, including the following: advanced database design and
implementation, transaction management and concurrency control, distributed database
management systems, object-oriented databases, client/server systems. The course includes
lab work and individual database application projects.
CPSC 5155 Computer Architecture - (3-0-3)
Prerequisites: CPSC 2105. Information representation and transfer; instructions and data access
methods; the control unit and micro planning' memories; input/output and interrupts;
secondary storage; the von Neumann SIS organization; high-level language machines;
the RISC concept; special-purpose processors including operation system, file, text,
floating-point, communication, etc. Multicomputers; multiprocessors; concurrent processing
support; pipeline machines, processor arrays, database machines; the data flow/data
directed approach.
CPSC 5156 Parallel and Distributed Computing - (3-0-3)
Prerequisites: CPSC 3125. Survey of parallel computer architectures, including interconnection networks
and synchronization techniques. Algorithms and programming languages for parallel
computers. Applications. Interprocess communications, communication protocols, communication
network architectures, and distributed programming interfaces. Performance implications.
CPSC 5157 Computer Networks - (3-0-3)
Prerequisites: CPSC 2108. Local area networks, wide area networks, and internets. Protocols and
the ISO Open Systems Interconnect reference model. Design, analysis, and performance
evaluation. Emphasis on data link, network, and transport protocols.
CPSC 5166 Advanced Web Development - (3-0-3)
Prerequisites: CPSC 4125 and CPSC 4175. This course is a continuation of CPSC 4225, Introduction
to Server-Side Web Development. This is a project-based class. Teams consisting of
3-4 students will develop working prototypes of large-scale web applications. Teams
and their individual members will be required to make presentations reflecting progress
through each stage of the project development: task formulation, analysis, prototyping
and design, coding, debugging and testing. The final report will include a demonstration
of the fully functional project.
CPSC 5185 Introduction to Artificial Intelligence - (3-0-3)
Prerequisites: CPSC 2108. Heuristic Techniques in Artificial Intelligence. Foundations of heuristic
methods, problem representation and search methods, knowledge representation, learning
and inference, natural language processing. Appropriate programming language and software
tools for Artificial Intelligence.
CPSC 5555 Selected Topics in Computer Science - (3-0-3)
Prerequisites: Senior standing. Study of topics of special interest in computer science, or directed
experience in computer science by means of lecture, discussion, seminar, and research.
May be taken for a maximum of nine hours.
CPSC 6118 Graphical User Interface Development - (3-0-3)
Prerequisites: CPSC 6166 and CPSC 6175. Examines the software development techniques used in the
design of graphical user interfaces. Particular emphasis is placed on available software
development tools for such interfaces.
CPSC 6119 Object-Oriented Development with Components - (3-0-3)
Prerequisites: CPSC 6119. This course teaches object-oriented developing techniques and how to create
advanced Visual Basic applications using classes, COM components and ActiveX controls.
Fundamentals developing client applications that include database access using COM
components. Topics include creating and managing COM components, creating data services,
testing, deploying and maintaining a component based solution.
CPSC 6125 Advanced Operating Systems - (3-0-3)
Issues in the design and functioning of operating systems. Emphasis on synchronization
of concurrent activity in both centralized and distributed systems. Deadlock, scheduling,
performance analysis, operation system design, and memory systems including distributed
file systems.
CPSC 6126 Computer Security - (3-0-3)
Prerequisites: CPSC 5115. Covers network security technology, the latest standards for security
in an Internet working environment, and the practical issues involved in developing
security applications. The main contents are conventional encryption, confidentiality
using conventional encryption, public-key cryptography, authentication and digital
signatures, intruders, viruses, and worms, cryptographic algorithms, authentication
and key exchange, electronic mail security, and network management security
CPSC 6127 Client-Server Database Management Systems - (3-0-3)
Prerequisite: CPSC 6119. This course teaches how to design and implement relational
databases using Transact SQL and SQL-Server Database management system. Topics include
developing a logical model, deriving the physical design creating data services, creating
a physical database, maintaining a database.
CPSC 6137 Distributed Software Architecture and Design - (3-0-3)
Prerequisites: CPSC 6119. This course emphasizes distributed software architecture and the MSF (Microsoft
Solutions Framework)
CPSC 6155 Advanced Computer Architecture - (3-0-3)
Prerequisites: CPSC 5155. Covers theory of parallelism, advanced hardware technology and software
for parallel programming. The main contents are parallel computer models; program
and network properties; principles of scalable performance; processor and memory hierarchy,
bus, cache, and shared memory; pipelining and superscalar techniques; multiprocessors
and multicomputers; multivector and SIMD computers; scalable, multithreaded, and dataflow
architectures; parallel models, languages, and compilers; and parallel program development
and environments.
CPSC 6166 Distributed Enterprise Software Development - (3-0-3)
Prerequisites: CPSC 6127 and CPSC 6137. This course teaches how to build distributed three tier
enterprise client-server applications that access corporate databases using the DNA
architecture. The course focus is with multi-tiered distributed developing using COM,
ActiveX, business objects, MTS, MSMQ, SQL server and client-slide presentation.
CPSC 6175 Web Site Development and Technologies - (3-0-3)
This course teaches the fundamentals of Web technologies and Web site development
using authoring tools such as Microsoft Front Page. It uses HTML, DHTML, client-side
javascript, ActiveX controls and Java applets. Topics include analyzing business requirements,
defining the technical architecture, developing the user interface and user services,
publishing and managing the web site.
CPSC 6176 Enterprise Web Application Development - (3-0-3)
Prerequisites: CPSC 6118. This course teaches how to perform web site architectural planning, make
technology selection and create enterprise-level Web sites. The course uses Microsoft
Visual Interdev to develop client-server DNA Web applications using COM components
on both the client and the server. Web application developing using Active Server
Pages, COM, ActiveX, MTS, DNA architecture, Server-side scripting, SQL Server and
Microsoft Visual Interdev.
CPSC 6177 Advanced Software Design - (3-0-3)
Examines software requirements and design methodologies. Studies defining software
requirements: interacting with end-users to determine system requirements and identifying
functional, performance, and other requirements. Examines techniques to support requirements
including prototyping, modeling, and simulation; the relation of requirements to design;
design in the system life cycle; and hardware versus software trade-offs. Discusses
subsystem definition and design and covers principles of design, including abstraction,
information hiding, modularity, and reuse. Uses examples of design paradigms.
CPSC 6178 Software Testing and Quality Assurance - (3-0-3)
Examines the relationship between software testing and quality with an emphasis on
the role of testing in the validation of system requirements. Topics include module
and unit testing, integration, code inspection, peer review, verification and validation,
statistical testing methods, preventing and detecting errors, selecting and implementing
project metrics, and defining test plans and strategies that map to system requirements.
Examines testing principle formal models of testing, performance monitoring, and measurement.
CPSC 6179 Software Project Planning and Management - (3-0-3)
Centers on the concept of a software engineering process and includes discussion of
life-cycle models for software development. Addresses issues associated with the successful
management of software development including planning, scheduling, tracking, cost
and size, estimating, risk management, configuration, management quality, and engineering
and process improvement. Includes the SEI software process Capability Maturity Model
(CMM)
CPSC 6555 Selected Topics in Computer Science - (3-0-3)
Study of topics of special interest in the field of computing.
CPSC 6899 Independent Study - (3-0-3)
Course project approved and supervised by an appropriate member of the graduate faculty.
CPSC 6985 Research and Thesis - (3-0-3)
A research project designed in consultation with the faculty to apply the student's
course work to a current problem in either client-server, mainframe, or communications
applications. The course includes a formal paper detailing the student's research
and conclusions. (S/U grading.)