| COMPUTER
SCIENCE (CSC) |
|
|
| All
prerequisites must be passed with a minimum grade
of C. |
| |
| CSC 108 |
Introduction to Computer Science |
1 cr |
| The big picture of computer science is brought to life through an introduction to the major areas of computer science, such as data encoding and storage, machine architecture and machine language, operating systems, networking and the Internet, algorithms, programming languages, software engineering, data abstractions, database systems, computer graphics, artificial intelligence, and theory of computation. Individual student participation and an end-of-the-semester team presentation will be required. |
| |
|
|
| CSC 120 |
CS Introduction to Programming |
4 cr |
| Introduction to the design of algorithms and their implementation in a high-level programming language. Topics include: algorithm design strategies, programming concepts, programming environment, data structures, searching and sorting methods, and internal representation of data types. Prerequisites: MA 113, MA 115, MA 125 or Math-ACT score of 27 or higher or Math Placement Test score of 90 or higher. |
| |
|
|
| CSC 121 |
CS Introduction to Programming II |
4 cr |
| Continuation of CSC 120. Topics include: design concepts, abstract data types, use of object libraries, dynamic storage allocation, stacks, queues, link lists, random access files, testing and software engineering practices. Prerequisites: CSC 120. |
| |
|
|
| CSC 190 |
Computer
Science Special Topics |
1 cr |
|
| Selected
topics in computer science. Prerequisite: Permission
of the CSC coordinator. |
| |
| CSC
228 |
Digital
Logic and Computer Architecture |
3
cr |
|
| Topics
include: Boolean algebra, minimization techniques,
combinatorial and sequential circuit analysis,
memory organization, microprocessor concepts, and
system architecture. Prerequisite: CSC 121. |
| |
| CSC 230 |
Data Structures |
3 cr |
| Extension of elementary data structures as covered in CSC 121, techniques to organize and access collections of data. Definition, implementation, and use of Classes and Abstract Data Types (ADT). The use of ADTs and objects for solving CIS problems. Network, hierarchical, and relational data models leading to Database Management Systems. Topics include: recursion, search trees, algorithmic complexity, advanced searching and sorting algorithms, and graphs. CSC 108, MA 267, and one of CSC 121 or CIS 211.
|
| |
|
|
| CSC 311 |
Networking and Communications |
3 cr |
|
| An introduction to computer networks. Topics include: data transmission, network architectures, communication devices and protocols, network routing and flow algorithms. Prerequisite: CSC 230. |
| |
| CSC 320 |
Computer
Organization and Architecture |
3 cr |
|
| An
introduction to computer organization using a
top down approach from system component to the
register level, internal representation of data,
general assembly and linking concepts, addressing
modes, and introduction to a specific processor,
its architecture and operating system. Prerequisite:
CSC 230, CSC
228. |
| |
| CSC 322 |
Operating Systems |
3 cr |
| This course covers the development of operating systems that control computing systems. Topics include: file systems, process management, scheduling, memory management (real and virtual), security, and concurrency. Case studies of operating systems are examined. Prerequisite: CSC 230. |
| |
|
|
| CSC 324 |
Database Concepts |
3 cr |
|
| Introduction to database design and implementation. Aspects of data modeling, database design theory, storage, indexing, and database application development. Entity-relationship model, relational data model, schema refinement, normal forms, file organizations, index structures, and embedded SQL application development. Prerequisite: CSC 230. |
| |
| CSC 331 |
Software Engineering Principles (W) |
3 cr |
|
| Models, techniques, and tools used in project management. Topics include: software development process, task scheduling, estimation and progress measurement. Coordination of development teams. Standards, testing plans, configuration management, metrics and use of CASE tools, systems delivery and maintenance strategies. Prerequisite: CA 275 and one of CSC 230 or ITE 285. |
| |
| CSC 333 |
Programming
Language Theory |
3 cr |
|
| Formal
examination of programming languages. Formal language
concepts including syntax and basic grammars are
studied. Language features such as data types
and structures, control structures and data flow
are examined. The run-time environment and the
process of interpretation/compilation are covered.
Interpreter and compilation techniques are introduced.
Prerequisite: CSC 230, CSC 331, and MA 267. |
| |
| CSC 340 |
Secure Software Engineering |
3 cr |
| This course will present sound security principles that should be incorporated into the software development process. Students will learn a risk management framework for software engineering efforts as well as best practices for software security including code reviews, architectural risk analysis, penetration testing, risk-based security tests, abuse cases, security requirements, and security operations. Students will also learn common flaws that lead to exploitation and be able to identify and mitigate such errors in practice. Out of class labs and exercises reinforce concepts presented in class. Prerequisite: CSC 331. |
| |
| CSC 410 |
Compiler
Design and Construction |
3 cr |
|
| Lexical
analysis, syntactic analysis, intermediate code
generation, object code generation, optimization,
memory use, generators for scanners and parsers.
Prerequisite: CSC 333. |
| |
| CSC 411 |
Communications
and Network Analysis |
3 cr |
|
| Data
communications and computer networks. An in-depth
treatment of network architectures and protocols
for both WANs and LANs. Topics include: network
routing and flow algorithms, Internet working,
and distributed systems. Prerequisite: CSC 311 and CSC 322. |
| |
| CSC 412 |
Real-Time
Software Systems |
3 cr |
|
| Design
and implementation of software for real-time computer
systems. Survey of typical real-time systems;
techniques for code-conversation, error checking,
and transmission monitoring. Prerequisite: CSC 311 and CSC 322. |
| |
| CSC 413 |
Computer
Graphics |
3 cr |
|
| An
in-depth study of hardware and software techniques
used in computer graphics. Study of display and
entry devices including refresh, storage, and
raster scan topics. Software techniques will include
display files, windowing, clipping, two and three-dimensional
transformations, and hidden-surface removal. Prerequisite: CSC 230 and MA 126. |
| |
| CSC 414 |
Modeling
and Simulation |
3 cr |
|
| Analytic
and simulation models developed using deterministic
and stochastic techniques. Topics include: event-driven
simulations, queuing theory, Markov processes,
and dynamic systems. Real world project
required. Prerequisite: CSC 230 and MA 126, and one of ST 310, ST 315, or ST 320. |
| |
| CSC 415 |
Numerical
Analysis |
3 cr |
|
| Mathematical
preliminaries, solving linear systems, numerical
solution of ordinary and partial differential
equations. Prerequisites: CSC 230 and MA 126. |
| |
| CSC
416 |
Artificial
Intelligence Theory and Programming |
3 cr |
|
| Introduction
to basic concepts, implementation techniques,
and philosophies of artificial intelligence and
intelligent systems. Introduction to expert systems,
fuzzy logic systems, neural networks, and techniques
for Artificial Intelligence Programming. The fundamentals
of an AI programming language (LISP or PROLOG)
will be presented. The language will then be used
to solve problems in typical AI applications.
Prerequisite: CSC 230. |
| |
| CSC 417 |
Game Development |
3 cr |
| Introduction to computer game development, including a variety of related topics. The course will be driven by research/technical paper discussions, student presentations, and projects. The direction of the course will be guided to some extent by student interest. Prerequisite:
CSC 230 and MA 126.
|
| |
| CSC 432 |
Performance
Evaluation of Algorithms |
3 cr |
|
|
Classification and analysis
of algorithms including recursive, divide and
conquer, greedy, etc. Data structures and algorithms
design and performance. Run time and main storage
complexity analysis. Performance evaluation
measurements will be discussed and popular benchmarking
techniques reviewed. P, NP, and NP complete
complexities will be discussed. Prerequisites: CSC 230 and MA 126 and one of ST 315 or
320. |
| |
| CSC 434 |
Formal
Language and Automata Theory |
3 cr |
|
| Mathematical
preliminaries, languages, context-free grammars,
parsing, normal forms, finite automata, regular
languages, pushdown automata, Turing machines.
Prerequisites: CSC 333. |
| |
| CSC 490 |
Computer
Science Special Topics |
3 cr |
|
| Advanced
selected topics in computer science. Prerequisite:
Permission of the CSC Coordinator. |
| |
| CSC 510 |
Compiler
Design and Construction |
3 cr |
|
| Lexical
analysis, syntactic analysis, intermediate code
generation, object code generation, optimization,
memory use, generators for scanners and parsers.
Prerequisite: CIS Graduate
Professional Component. |
| |
| CSC 511 |
Communications
and Network Analysis |
3 cr |
|
| Data
communications and computer networks. An in-depth
treatment of network architectures and protocols
for both WANs and LANs. Topics include: network
routing and flow algorithms, internet working,
and distributed systems. Prerequisite: CIS
Graduate Professional Component. |
| |
| CSC 512 |
Real-time
Software Systems |
3 cr |
|
| Design
and implementation of software for real-time computer
systems. Survey of typical real-time systems;
techniques for code-conversion, error checking,
and transmission monitoring. Prerequisite: CIS
Graduate Professional Component. |
| |
| CSC 513 |
Computer
Graphics |
3 cr |
|
| An
in-depth study of hardware and software techniques
used in computer graphics. Study of display and
entry devices including refresh, storage, and
raster scan topics. Software techniques will include
display files, windowing, clipping, two and three
dimensional transformations, and hidden-surface
removal. Prerequisite: CIS
Graduate Professional Component. |
| |
| CSC 514 |
Modeling
and Simulation |
3 cr |
|
| Analytic
and simulation models developed using deterministic
and stochastic techniques. Topics include: event-driven
simulations, queuing theory, Markov processes,
and dynamic systems. Real world project
required. Prerequisites: CIS
Graduate Professional Component. |
| |
| CSC 515 |
Numerical
Analysis |
3 cr |
|
| Mathematical
preliminaries, solving linear systems, numerical
solution of ordinary and partial differential
equations. Prerequisites: CSC 327 and MA 238. |
| |
| CSC 516 |
Artificial Intelligence Theory and Programming |
3 cr |
| Introduction to basic concepts, implementation techniques, and philosophies of artificial intelligence and intelligent systems. Introduction to expert systems, fuzzy logic systems, neural networks, and techniques for Artificial Intelligence Programming. The fundamentals of an AI programming language (LISP or PROLOG) will be presented. The language will then be used to solve problems in typical AI applications. Prerequisite: Professional Component Standing.
|
| |
| CSC 517 |
Game Development |
3 cr |
| Introduction to computer game development, including a variety of related topics. The course will be driven by research/technical paper discussions, student presentations, and projects. The direction of the course will be guided to some extent by student interest. Prerequisite: Graduate Professional Component.
|
| |
| CSC 520 |
Computer
Architecture |
3 cr |
|
| Instruction
set design, pipelining, instruction-level parallelism,
memory hierarchy design, and multiprocessors.
Prerequisite: CIS Graduate
Professional Component. |
| |
| CSC 522 |
Performance
Evaluation of Algorithms |
3 cr |
|
| Mathematical
foundations, analytic, empirical, and qualitative
evaluation techniques; dynamic programming, greedy
algorithms, graph algorithms; and selected advanced
topics. Prerequisite: CIS
Graduate Professional Component. |
| |
| CSC 524 |
Computer
Language Design |
3 cr |
|
| A
study of programming language design and specification,
including the compiling process, parsing, BNF
grammars, and models of semantics. Differences
between interpreters, assemblers, and compilers
will be studied. Prerequisite: CIS
Graduate Professional Component. |
| |
| CSC 525 |
Complexity
Theory |
3 cr |
|
| Mathematical
preliminaries, languages, finite automata, Turing
machines, decidability, recursive function theory,
computational complexity, tractability and NP-complete
problems. Prerequisite: CIS
Graduate Professional Component. |
| |
| CSC 526 |
Database
Structure and Design |
3 cr |
|
| An
in-depth study of the underlying principles of
database management system models. Database design
issues are examined from algorithmic and structural
perspective. Prerequisite: CIS
Graduate Professional Component. |
| |
| CSC 527 |
Software
Engineering Principles |
3 cr |
|
| Advanced
concepts of software engineering will be discussed.
Program testing techniques including: structured
design and walk-throughs, proving program correctness
and verifiability, and system coding standardization
and integration will be covered in depth. Software
team formulation and management techniques will
be discussed. Prerequisite: CIS
Graduate Professional Component. |
| |
| CSC 532 |
Advanced
Operating Systems |
3 cr |
|
| Monitors,
non-time-sharing operating systems, and multiuser
systems will be discussed. Memory management techniques
will be stressed. Disk and other secondary storage
media and their associated drivers will be discussed.
Analytic modeling techniques will be used to discuss
operating systems or simulate sections of an operating
system in a high-level programming language. Prerequisite: Graduate Professional Component. |
| |
| CSC 533 |
Artificial
Intelligence and Heuristic Programming |
3 cr |
|
| Methods
of heuristic programming, the production of intelligent
algorithms, and simulation of human cognitive
processes will be studied. AI languages, such
as LISP and PROLOG, will be discussed. Attention
placed on the relationship between man-made machines
(robots) and biological organisms with natural
intelligence. Expert Systems and neural network
research will be studied. Prerequisite: CIS
Graduate Professional Component. |
| |
| CSC 580 |
Data Security |
3 cr |
| The objective of this course is to introduce the inherent strengths and limitations of cryptography in data security applications, focusing on the basic principles of message privacy, key negotiation, and key management. The course covers various aspects of symmetric and asymmetric ciphers and provides a broad coverage of the core areas for engineering cryptographic systems. Sh1dents will be expected to implement and analyze simple cryptographic schemes and read supporting articles and papers for presentation. Prerequisite: CIS Graduate Professional Component. |
| |
|
|
| CSC 582 |
Network Security |
3 cr |
| The objective of this course is to provide students with the knowledge and skills to begin supporting network security within an organization. Students will gain an understanding of fundamental netvvork security concepts and mechanisms, be able to identify security threats and vulnerabilities, and help respond to and recover from security incidents. Prerequisite: CSC 580. |
| |
|
|
| CSC 590 |
Computer
Science Special Topics |
3 cr |
|
| Advanced
selected topics in computer science. Prerequisite:
Permission of the CSC Coordinator. |
| |
| CSC 595 |
Computer
Science Project Proposal Development |
1-3 cr |
|
| Development
of the project proposal for the CSC masters
project. Prerequisites: Permission of the Director
of CIS Graduate Studies. |
| |
| CSC 598 |
Computer
Science Project |
1-3 cr |
|
|
This course may be repeated
for a maximum of six (6) credits. A CIS project
committee will provide direction during the
project. Prerequisite: CSC 595, approval of
project proposal by the students project
committee, and permission by the Director of
CIS Graduate Studies.
|
| |
|
|
|
|