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); procedural abstraction and software design;
modular programming (including sub-programs or the equivalent).
CPSC 1302. Computer Science 2 (3-0-3) Prerequisite: 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) Prerequisite:
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) Prerequisite: 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
CPSC 2175. Object-Oriented Design (3-0-3) Prerequisite: 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 2555. Selected Topics in Computer Science (1-3 hours) Prerequisite:
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 3111. Structured Programming with COBOL 1 (3-0-3) Introduction
to programming in COBOL. Emphasis on structured design techniques. Computer assignments
CPSC 3112. Structured Programming with COBOL 2 (3-0-3) Prerequisite:
CPSC 3111. A continuation of CPSC 3111.
CPSC 3115. Discrete Structures in Computer Science (3-0-3) Prerequisite:
MATH 1131. An introduction to the mathematical foundations of computer science. Topics
include set theory, functions, relations, Boolean algebra, counting, graph theory and
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) Prerequisite: 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
CPSC 3121. Assembly Language Programming 1 (3-0-3) An introduction
to assembly language for mainframes or PCs. Topics include machine architecture
(registers, memory, instruction formats), character data processing, decimal arithmetic,
binary arithmetic, subroutine and program linkage.
CPSC 3122. Assembly Language Programming 2 (3-0-3) Prerequisite:
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) Prerequisite:
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) Prerequisite:
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) Prerequisite:
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
CPSC 3165. Professionalism in Computing (3-0-3) Prerequisite:
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 4175. Introduction to Software Engineering (3-0-3) Prerequisite:
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) Prerequisite: 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) Prerequisite: 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) Prerequisite:
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
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,
CPSC 5135. Programming Languages (3-0-3) Prerequisite: CPSC
2108. Emphasizes the run-time behavior of programs. Languages are studied from two
points of view: (1) the fundamental elements of languages and their inclusion in
commercially available systems; and, (2) the difference between implementations of common
elements in languages.
CPSC 5136. Compiler Construction (3-0-3) Prerequisite: CPSC
2108. Includes the theory, the design, and the implementation of a large language
translator system. Lexical analysis, syntactic analysis, core generation, and optimization
CPSC 5137. Client-Server Database Systems (3-0-3) Prerequisite:
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) Prerequisite: 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) Prerequisite: 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 SISD 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
CPSC 5156. Parallel and Distributed Computing (3-0-3) Prerequisite:
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
CPSC 5157. Computer Networks (3-0-3) Prerequisite: 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 5165. Multimedia, Hypertext, and Information Access (3-0-3) Prerequisite:
CPSC 2108. Introduces the architectures, concepts, data, hardware, methods, models,
software, standards, structures, technologies , and issues involved with: multi-media
information and systems; hypertext and hyper media; networked information; electronic
publishing; virtual reality; and information access. Students will learn how to capture,
represent, store, compress, manipulate, interact with, and present: text, drawing, still
images, animations, audio and videos. They will work with video conferencing, authoring
systems, and digital libraries.
CPSC 5185. Introduction to Artificial Intelligence (3-0-3) Prerequisite:
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) Prerequisite:
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) 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) 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) Prerequisite: 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 emphasizes distributed software architecture and the MSF
(Microsoft Solutions Framework). Topics include project, technology and resource
management, establishing business requirements, analyzing project scope, infrastructure,
technology migration, security requirements, etc.
CPSC 6137. Distributed Software Architecture and Design (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 6155. Advanced Computer Architecture (3-0-3) Prerequisite:
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
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,
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)
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
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) and
other process standards.
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.) May be taken twice