| |
CPSC
- Computer Science |
|
CPSC 1105. Technological Solutions (3-0-3) Equivalent Course:
ITDS 2745 seminar, Computers and the World Wide Web and CISM 2105. 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.
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 1301 or successful completion of the ICAPP program. Overview of basic
computer organization. Representation of data in computers. Introduction
of Boolean Algebra and logic gates used to implement Boolean functions.
Introduction to flip-flops and sequential logic. Methods to reduce the
complexity of Boolean functions-algebraic and K-Maps. Overview of computer
arithmetic. Instruction set architecture of a sample computer. Interaction
of the machine and computer languages including discussion of the
compilation, assembly, and loading process.
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 science.
CPSC 2125. Introduction to Internet Programming (3-0-3)
Prerequisite: CPSC 1301. This course is an introduction to Internet
programming and Web application development. Subjects covered include
basic Web page development and an introduction to dynamic Web page
development using client-side scripting, server-side scripting, and
database connectivity.
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 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) 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 algorithm analysis.
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 programming required.
CPSC 3121. Assembly Language Programming 1 (3-0-3) Prerequisite:
CPSC 2105 or Admission to the ICAPP program. An introduction to assembly
language for mainframes or PC's. 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 be introduced.
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 3555. 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. 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) Prerequisite:
CPSC 2108 and Senior standing. In this course, students are introduced to
the basic principles of software engineering. The course focuses on the
issues, methods and tools applied at every phase of the iterative
development life cycle spanning from the conception of the actual
requirements, through the analysis, design, development, testing,
deployment and maintenance of the software product. Other subjects include
project management and quality assurance. Students must complete a
significant software project.
CPSC 4176. Senior Software Engineering Project (3-0-3)
Prerequisite: CPSC 4175 with a C or better. The course encompasses a
practical application of knowledge and skills mastered in the Computer
Science curriculum through the development of a significant project.
Students will apply a software engineering methodology in a team
environment to develop a complex real-world application with an external
customer under the guidance of instructor. Team members are involved in
all phases of the software development life cycle.
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 and MATH 3125 or CPSC 3115, or Admission to the Masters in
Applied Computer Science program. 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 5127. Introduction to Computer and Network Security (3-0-3)
Prerequisite: CPSC 2108. This course is a basic introduction to the
issues of software security with a focus on raising the students'
awareness of the difficulties of maintaining a secure software
environment. It reviews traditional security techniques and discusses the
vulnerabilities of such methods. The course emphasizes well-written
software as a prerequisite to network security and highlights security
implications of common programming mistakes.
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 are emphasized.
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. Introduction to Computer Architecture (3-0-3) Prerequisite:
CPSC 2105 and CPSC 3121. Review of combinational and sequential logic.
Description of computer memory. Study of the instruction set architecture
and addressing modes of a simple computer. Design on the computer control
unit including both hard-wired and microprogrammed CPU's. Design of
Input/Output including program-controlled I/O, interrupted-driven I/O,
direct memory access (DMA), and I/O channels.
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 implications.
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 5166. Web Development Projects (3-0-3) Prerequisites: CPSC 4125 and CPSC 4175. This course is a continuation of CPSC 4125, 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) 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.
The course will focus on issues in HCI (Human Computer Interaction).
CPSC 6119. Object-Oriented Development (3-0-3) This course teaches
object-oriented developing techniques and how to create advanced
applications using classes, components, and objects. Fundamentals of
developing client applications that include database access using
server-level components. Topics include creating and managing objects,
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. Information Systems Assurance (3-0-3) Prerequisite: CPSC
5157 or equivalent. This course focuses on the protection of information systems against
unauthorized access to or modification of information whether in storage,
processing or transit, and against the denial of service to authorized
users, including those measures necessary to detect, document, and counter
such threats. This course creates sensitivity to the threats and
vulnerabilities of information systems, recognition of the need and means
to protect data and information, and builds a working knowledge of
principles and practices in information security.
CPSC 6127. Contemporary Issues in Database Management Systems (3-0-3)
This course provides an overview of modern database management systems and
issues relating to these systems. Topics include developing a logical
model, deriving the physical design, creating data services, creating a
physical database, and maintaining a database in a variety of
environments.
CPSC 6128. Network Security (3-0-3) Prerequisite: CPSC 6126.
This course examines the fundamentals of security issues arising from
computer networks. Topics include intrusion detection, firewalls, threats
and vulnerabilities, denial of service attacks, viruses and worms, use and
effectiveness of encryption, secure transactions and e-commerce, and
network exploits.
CPSC 6129. Advanced Programming Languages (3-0-3) Prerequisite:
CPSC 5135. A study of the principles, concepts, and mechanisms of
computer programming languages-their syntax, semantics, and pragmatics;
the processing and interpretation of computer programs; programming
paradigms; and language design. Additional topics will include language
design principles and models of language implementation.
CPSC 6136. Advanced System Security (3-0-3) Prerequisite:
CPSC 6126. This course provides the student with the skill or ability to
design, execute, and evaluate information security procedures and
practices. This level of understanding will ensure that students are able
to apply security concepts while performing their tasks. Topics include
encryption algorithms, developing a security policy, attack monitoring,
attack response, and disaster planning and recovery. The student will be
presented with practical approaches to security and the use of security
tools.
CPSC 6137. Distributed Software Architecture and Design (3-0-3)
Prerequisite: CPSC 6119. This course emphasizes distributed software
architecture. Topics include project, technology, and resource management;
establishing business requirements; analyzing project scope;
infrastructure; technology migration; and security requirements.
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 and environments.
CPSC 6157. Network Management (3-0-3) Prerequisite: CPSC
5157. Application of networking concepts related to the management of
computer networks. Includes topics related to setup, management, and
maintenance of networks. Additional topics will include network protocols
used to manage computer networks.
CPSC 6159. Computer Forensics (3-0-3) Prerequisite: CPSC
6126. Review of the specific manifestations of cybercrime, including
hacking, viruses, and other forms of malicious software. Methods to
investigate cybercirme, focusing on requirements for collection and
reporting of evidence for possible use in criminal cases. Topics include
an overview of the forensic relevance of encryption, the examination of
digital evidence for clues, and the most effective way to present evidence
and conclusions in a court of law.
CPSC 6166. Distributed Enterprise Software Development (3-0-3)
Prerequisites: CPSC 6127 and CPSC 6137. This course teaches how to
build distributed multi-tier enterprise client-server applications that
access corporate databases. The course focuses on development of
three-tiered distributed software systems with user interface, business
logic, and database server tiers.
CPSC 6167. Network Risk Assessment (3-0-3) Prerequisite:
CPSC 6126. This course introduces risk analysis techniques that can be
used to identify and quantify both accidental and malicious threats to
computer systems within an organization. Introduction to issues associated
with physical site security. This includes an introduction to standard
risk analysis tools, such as PARA and FRAP.
CPSC 6175. Web Site Development and Technologies (3-0-3) This
course teaches the fundamentals of Web technologies and Web site
development. This course covers many open technologies including XML and
its related standards.
CPSC 6176. Enterprise Web Application Development (3-0-3)
Prerequisite: CPSC 6127. This course teaches how to perform web site
architectural planning, make technology selection, and create
enterprise-level Web sites. Topics include database connectivity options;
distributed object technologies; n-tier client/server applications;
transaction systems; web-enabled applications; source code management and
version control; and application installation, deployment, and security
issues.
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) This
course examines the relationship between software testing and quality with
an emphasis on the role of requirements in validating test results. Focus
on designing tests specific to detection of security flaws, such as buffer
overflows and memory leaks. Includes an overview of structured analysis
and design, as well as other traditional methods of software engineering.
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) Application of a student's
coursework to a significant and current problem in computer science. This
involves a research project to be designed in consultation with a member
of the graduate faculty of the Computer Science Department who agrees to
direct the research and become the thesis advisor. Additional requirements
include:
A) The creation of a thesis committee of at least three members of the
graduate faculty of the Computer Science Department.
B) A proposal approved by the Chairperson of the Computer Science
Department in consultation with the student's thesis committee.
C) Successful defense of the thesis to the thesis committee.
May be taken twice for credit. (S/U grading)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|