University Bulletin 2017-2018

Print Bulletin Page

Computer Science

*Filter this list of courses alphabetically, by prefix, by title, by keyword, or by department of instruction.
Jump To:

Course Listings

  • CSC 108
    Intro to Computer Science
    3 cr

    An introduction to the major areas of computer science, such as computing systems, the binary number system, data representation, hardware, programming languages, operating systems, applications, and communications. Historical, societal, ethical, and current issues associated with computer science are discussed as students explore academic, research, and career opportunities in the field of computer science.

  • CSC 120
    Prob Solv and Prog Concepts
    4 cr

    An introduction to the design of algorithms and their implementation in a high-level programming language. Topics include: problem solving strategies, programming concepts, programming environment, control structures, methods, arrays, searching, sorting, object-oriented programming, and file input/output.

    Pre-requisite: (MA 113 Minimum Grade of C or MA 172 Minimum Grade of C) or (MA 115 Minimum Grade of C or MA 121 Minimum Grade of C) or (MA 125 Minimum Grade of C or MA 132 Minimum Grade of C) or ACT Math 27 or MyMathTest 090
  • CSC 121
    Prob Solv and Prog Concepts II
    4 cr

    Continuation of CSC 120. Topics include: object-oriented programming concepts, abstract data types, graphical user interfaces and event-driven programming, exception handling, text and binary file I/O, and an overview of dynamic data structures.

    Pre-requisite: CSC 120 Minimum Grade of C or CIS 120 Minimum Grade of C
  • CSC 190
    CSC Special Topics -
    1 cr

    Selected topics in computer science. Prerequisite: Permission of the CSC coordinator.

  • CSC 228
    Digital Logic Computer Arch
    3 cr

    Topics include: Boolean algebra, minimization techniques, combinatorial and sequential circuit analysis, memory organization, microprocessor concepts, and CPU architecture.

    Pre-requisite: CSC 120 Minimum Grade of C
  • 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). Topics include: recursion, search trees, algorithmic complexity, advancing searching and sorting algorithms, and graphs and their application to problems.

    Pre-requisite: (CIS 211 Minimum Grade of C or CSC 121 Minimum Grade of C) and MA 267 Minimum Grade of C
  • CSC 231
    Intro Data Structures Algs
    4 cr

    The course will cover techniques to organize and access collections of data, definition, implementation, and use of Classes and Abstract Data Types(ADT). Topics include: stacks, queues, heaps, search trees, recursion, algorithmic complexity, advance searching and sorting algorithms, and graphs and their application to problems.

    Pre-requisite: CSC 120 Minimum Grade of C or CIS 210 Minimum Grade of C
  • CSC 311
    Networking and Communications
    3 cr

    An introduction to computer networks. Topics include: data transmission, network architectures, file compression algorithms, communication devices and protocols, network routing and flow algorithms.

    Pre-requisite: CSC 231 Minimum Grade of C or CSC 230 Minimum Grade of C
  • CSC 320
    Computer Org-Architect
    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.

    Pre-requisite: CSC 228 Minimum Grade of C and CSC 231 Minimum Grade of C
  • 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.

    Pre-requisite: CSC 231 Minimum Grade of C
  • 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.

    Pre-requisite: CSC 231 Minimum Grade of C
  • CSC 331
    Software Engineering Prin - 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, system delivery and maintenance strategies.

    Pre-requisite: ( (CSC 231 Minimum Grade of C or CSC 230 Minimum Grade of C or CIS 230 Minimum Grade of C) ) and CA 275 Minimum Grade of C
  • CSC 332
    Adv Data Structures and Algs
    3 cr

    This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics to be covered include: mathematical foundations; analytic, empirical, and qualitative evaluation techniques; hash tables; graph algorithms; balanced trees; priority queues; dynamic programming; and divide-and-conquer.

    Pre-requisite: CSC 231 and MA 267
  • CSC 333
    Prog 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.

    Pre-requisite: CSC 231 Minimum Grade of C or CSC 230 Minimum Grade of C
  • CSC 399
    Conc and Distributed Comp
    3 cr

    This course focuses on security issues in concurrent and distributed systems. Security features in the current advent of cloud computing are vital. Example topics include secure multi-threading, agent-based security, security policy composition, secure compartmentalization and more.

    Pre-requisite: CSC 311 Minimum Grade of C and CSC 322 Minimum Grade of C
  • CSC 410
    Compiler Design-Construction
    3 cr

    Lexical analysis, syntactic analysis, intermediate code generation, object code generation, optimization, memory use, generators for scanners and parsers.

    Pre-requisite: CSC 332 Minimum Grade of C and CSC 333 Minimum Grade of C
  • CSC 411
    Comm - 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.

    Pre-requisite: CSC 311 Minimum Grade of C and (CSC 322 Minimum Grade of C or CIS 322 Minimum Grade of C)
  • 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-conversion, error checking, and transmission monitoring.

    Pre-requisite: CSC 311 Minimum Grade of C and CSC 322 Minimum Grade of C and CSC 332 Minimum Grade of C
  • 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.

    Pre-requisite: (CSC 231 Minimum Grade of C) and (MA 237 Minimum Grade of C or MA 227 Minimum Grade of C)
  • 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 dynamical systems. "Real World" project required.

    Pre-requisite: (CSC 230 Minimum Grade of C or CIS 230 Minimum Grade of C) and (MA 126 Minimum Grade of C or MA 233 Minimum Grade of C) and (ST 310 Minimum Grade of C or ST 275 Minimum Grade of C) or ST 315 Minimum Grade of C or ST 320 Minimum Grade of C
  • CSC 415
    Numerical Analysis
    3 cr

    Mathematical preliminaries, solving linear systems numerical solution of ordinary and partial differential equations.

    Pre-requisite: (CSC 230 Minimum Grade of C or CIS 230 Minimum Grade of C) and (MA 126 Minimum Grade of C or MA 233 Minimum Grade of C)
  • CSC 416
    AI 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.

    Pre-requisite: CSC 332 Minimum Grade of C or CSC 230 Minimum Grade of C or CIS 230 Minimum Grade of C
  • CSC 417
    Computer 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.

    Pre-requisite: CSC 331 Minimum Grade of C or EE 368 Minimum Grade of C
  • CSC 418
    Adv Game & Simulation Dev
    3 cr

    This course will cover advance topics related to the development of game and simulation software. Topics include game physics, collision techniques, game mechanics, level design, artificial intelligence, and security. Students will design and implement a game or simulation program that includes elements of artificial intelligence.

    Pre-requisite: CSC 417 Minimum Grade of C and CSC 413 Minimum Grade of C
  • CSC 428
    Introduction to Bioinformatics
    3 cr

    Students in this course will study algorithms pertaining to bioinformatics (e.g. sequence alignment, biological database search, and phylogeny reconstruction); gain hands-on experience using bioinformatics tools; and understand the interaction of computer science and modern biology within the context of data-driven knowledge discovery.

    Pre-requisite: CSC 230 Minimum Grade of C
  • CSC 432
    Perf Eval 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.

    Pre-requisite: CSC 230 Minimum Grade of C and MA 126 Minimum Grade of C
  • CSC 434
    Form Lang - Automata Theory
    3 cr

    Mathematical preliminaries, languages, context-free grammars, parsing, normal forms, finite automata, regular languages, pushdown automata, Turing machines.

    Pre-requisite: (CSC 333 Minimum Grade of C or CSC 340 Minimum Grade of C)
  • CSC 440
    Secure Software Engineering
    3 cr

    The objective of this course is to enhance the security of software by introducing sound security principles that should be incorporated into the software development process. Students will learn a risk management framework and best practices for software security including code reviews, architectural risk analysis, penetration testing, risk-based security test, 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.

    Pre-requisite: CSC 331 Minimum Grade of C
  • CSC 450
    Surreptitious Software
    3 cr

    Students in this course will learn about algorithms for software protection and learn how to use tools for program transformation. Specific topics include obfuscation, watermarking, tamperproofing, birthmarking, and hardware protection. Programming projects will be required in several different languages and course activities will involve preparing student-led lectures, working on programming projects, and writing reports.

    Pre-requisite: CSC 440 Minimum Grade of C
  • CSC 457
    Data Warehousing
    3 cr

    This course focuses on the design, development and usage of data warehouses. Course content includes dimensional modeling, ETL processes, physical design, and analytical processing. New research areas related to data warehousing technology will also be discussed.

    Pre-requisite: CIS 324 Minimum Grade of C
  • CSC 485
    Cyber-Physical Security
    3 cr

    This course focuses on the Security of Cyber-Physical Systems (CPS) and Internet of Things (IoT) that go beyond topics commonly considered in Computer and Network Security. This course aims to prepare participants for the cutting edge research undergoing in both areas. The successful participation in this course will require reading number of research papers, presenting learned material, active participation in in-class discussions, and successful accomplishment of a small research project.

    Pre-requisite: CSC 311 Minimum Grade of C and CSC 322 Minimum Grade of C
  • CSC 490
    Sp Top -
    3 cr

    Advanced selected topics in computer science. Prerequisite: Permission of the CSC Coordinator.

  • CSC 510
    Compiler Design-Construction
    3 cr

    Lexical analysis, syntactic analysis, intermediate code generation, object code generation, memory use, generators for scanners and parsers.

    Pre-requisite: Computer Science Graduate 030
  • CSC 511
    Comm-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.

    Pre-requisite: Computer Science Graduate 030
  • 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.

    Pre-requisite: Computer Science Graduate 030
  • 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 transformation, and hidden-surface removal.

    Pre-requisite: Computer Science Graduate 030
  • CSC 514
    Modeling and Simulation
    3 cr

    Analytic and simulation models developed using deterministic and stochastic techniques. Topics include: event-driven simulations, queueing theory, Markov processes, and dynamical systems. "Real World" project required.

    Pre-requisite: Computer Science Graduate 030
  • CSC 515
    Numerical Analysis
    3 cr

    Mathematical preliminaries, solving linear systems, numerical solution of ordinary and partial differential equations.

    Pre-requisite: Computer Science Graduate 030
  • CSC 516
    AI 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: Graduate Professional Component Standing.

    Pre-requisite: Computer Science Graduate 030
  • CSC 517
    Computer Game Development
    3 cr

    Introduction to computer game development, including a variety of related topics. The course will be driven be research/technical paper discussions, student presentations, and projects. The direction of the course will be guided to some extent by student interest.

    Pre-requisite: Computer Science Graduate 030
  • CSC 520
    Computer Architecture
    3 cr

    Instruction set design, pipelining, instruction-level parallelism, memory hierarchy design, and multiprocessors.

    Pre-requisite: Computer Science Graduate 030
  • CSC 522
    Performance Eval of Algorithms
    3 cr

    Mathematical foundations; analytic, empirical, and qualitative evaluation techniques; dynamic programming, greedy algorithms, graph algorithms; and selected advanced topics.

    Pre-requisite: Computer Science Graduate 030
  • 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.

    Pre-requisite: Computer Science Graduate 030
  • CSC 525
    Complexity Theory
    3 cr

    Mathematical preliminaries, languages, finite automata, Turing machines, decidability, recursive function theory, complexity, tractability and NP-complete problems.

    Pre-requisite: Computer Science Graduate 030
  • CSC 526
    Data Mining
    3 cr

    This course provides an in-depth study of data mining. Course content includes data preparation, feature selection, pattern mining, classification, clustering, and sequence mining. New research areas in data mining will also be discussed. Laboratory assignments will provide students with opportunities to interact with and develop data mining technologies.

    Pre-requisite: Computer Science Graduate 030
  • CSC 527
    Software Engineering Princ
    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.

    Pre-requisite: Computer Science Graduate 030
  • CSC 528
    Introduction to Bioinformatics
    3 cr

    Bioinformatics is a highly interdisciplinary course between computer science and biology. It focuses on the analysis of proteins, genes, and genomes using computing technologies such as computer algorithms and computer databases. Students in this course will learn algorithms and databases pertaining to bioinformatics (e.g., sequence alignment, suffix tree and its biological/biomedical applications, genome alignment, biological/biomedical database search, and phylogeny reconstruction); gain knowledge and hands-on experience of bioinformatics tools; understand the interaction between computer science (in particular, semantic technologies) and modern biology within the context of data-driven knowledge discovery.

  • CSC 532
    Distributed Systems
    3 cr

    This course will further enhance the students understanding of the details of how an operating system functions. It will focus on the advanced concepts associated with distributed systems. The student will learn the underlying concepts of such systems and the algorithms needed to provide the required synchronization and communication.

    Pre-requisite: Computer Science Graduate 030
  • CSC 533
    Art Intel-Heuristic Prog
    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.

    Pre-requisite: Computer Science Graduate 030
  • CSC 550
    Surreptitious Software
    3 cr

    Students in this course will learn about Algorithms for software protection and learn how to use tools for program transformation. Specific topics include obfuscation, watermarking, tamperproofing, birthmarking and hardware protection. Programming projects will be required in several different languages and course activities will involve preparing student-led lectures, working on programming projects, and writing reports.

  • CSC 557
    Data Warehousing
    3 cr

    This course focuses on the design, development and usage of data warehouses. Course content includes dimensional modeling, ETL processes, physical design, and analytical processing. New research areas related to data warehousing technology will also be discussed.

  • 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. Students will be expected to implement and analyze simple crytographic 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 network security concepts and mechanisms, be able to identify security threats and vulnerabilities, and help respond to and recover from security incidents. The course will provide an understanding of how to design and build secure network algorithms and environments while gaining an in-depth knowledge of protocol security, intrusion detection, and principles of cyber defense.

    Pre-requisite: CSC 580 Minimum Grade of C
  • CSC 585
    Cyber-Physical Security
    3 cr

    This course focuses on the Security of Cyber-Physical Systems (CPS) and Internet of Things (IoT) that go beyond topics commonly considered in Computer and Network Security. This course aims to prepare participants for the cutting edge research undergoing in both areas. The successful participation in this course will require reading number of research papers, presenting learned material, active participation in in-class discussions, and successful accomplishment of a small research project.

  • CSC 590
    CSC Sp Top -
    3 cr

    Advanced selected topics in computer science. Prerequisite: Permission of the CSC coordinator.

    Pre-requisite: Computer Science Graduate 030
  • CSC 595
    CS Project Proposal Develop
    1 TO 3 cr

    Development of the project proposal for the Computer Science specialization master's project. Prerequisite: Graduate Professional Component and Permission of the Director of Graduate Studies.

    Pre-requisite: CIS 518 Minimum Grade of S and Computer Science Graduate 030
  • CSC 598
    Computer Science Project
    1 TO 3 cr

    This course may be repeated for a maximum of six (6) credits. A CIS project committee will provide direction during the project. Prerequisites: Approval of project proposal by student's project committee and permission of the Director of CIS Graduate Studies.

    Pre-requisite: CSC 595 Minimum Grade of B
  • CSC 612
    Cybersecurity
    3 cr

    This course focuses on developing expertise and preparation for independent research in Cybersecurity through an in-depth review of the Cybersecurity literature. The student will be conversant in broad issues and trends in Cybersecurity as defined by skill sets and occupations.

  • CSC 626
    Advanced Big Data
    3 cr

    This course focuses on developing expertise and preparation for independent research in big data through an in--depth review of the big data and data science literature. The student will be conversant in broad issues and trends in big data as defined by current tools and technologies.