CSC 110. Social and Ethical Issues in Computing. 3 Credit Hours.

History, social context and methods and tools of analysis. Professional and ethical responsibilities. Intellectual property. Privacy and civil liberties.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 113. Data Science for the World. 4 Credit Hours.

Introduction to the concepts of data science. Basic data analysis skills. The programming language R. Lecture 3 hours, laboratory 2 hours.
Prerequisite: MTH 108 or higher.
Components: LAB.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 115. Python Programming for Everyone. 3 Credit Hours.

lntroduction to computing, programming, and Python. Data and variables. Control flow. Methods. Arrays and lists. Object oriented programming.
Pre/Corequisite: MTH 107 or Higher, Or Math SAT score of 620 or higher OR ACT score of 27 or higher OR ALEKS score of 61 or higher.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 116. Cybersecurity: An Introduction to Security in Cyberspace. 3 Credit Hours.

An introduction to cybersecurity. Recent incidents. The Internet. Types of attacks. Tools for defending against attacks on users and networks. Legal, moral, and social aspects.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 118. Information Technology and Society. 3 Credit Hours.

A variety of topics on information technology and society through various course activities including research papers, experiments, and by reading articles. The topics covered include but are not limited to: history of computing, hardware mechanisms, algorithms design, software development principles, software tools, security, and artificial intelligence.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Summer.

CSC 119. Computers and Society. 3 Credit Hours.

Basic concepts of computer systems. Installing, configuring, and managing computer software. Internet information retrieval. Application software. HTML, programming for the www in JavaScript. E-commerce, cryptography, computer security. Social, legal, ethical issues and the future.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 120. Computer Programming I. 4 Credit Hours.

History of computing. Fundamental programming constructs. Algorithms and problem solving. Object-oriented programming. Recursion.
Prerequisite:CSC115 or MTH141 or MTH151 or MTH161 or MTH171 or MAS110.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 198. Freshman Topics in Computer Science. 1-3 Credit Hours.

Content varies by semester.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 200. Introduction to Data Science in R. 4 Credit Hours.

Introduction to the concepts of data science. Basic data analysis skills. The programming language R
Prerequisite: MTH 108 or MTH 140 or MTH 141 or MTH 161 or MTH 162 or MTH 171 or MTH 172 or MAS 110.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 210. Computing for Scientists. 3 Credit Hours.

Computing applications in science. Tools and algorithms for applications. Implementation of algorithms. Storage, retrieval analysis and visualization of data in science.
Prerequisite: MTH 141 or MTH 151 or MTH 161 or MTH 171.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 220. Computer Programming II. 4 Credit Hours.

Common APls including list, priority queue, set, and map, and their efficient implementations in an object-oriented language using fundamental data structures. Sorting and other applications of recursion. Combining asymptotic analysis and experiments to extrapolate running times. Using APls in a software project.
Prerequisites: CSC 120 or BTE 324 or ECE 218 and MTH 108 or MTH 140 or MTH 141 or MTH 161 or MTH 162 or MTH 171 or MTH 172 or MAS 110.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 298. Sophomore Topics in Computer Science. 1-3 Credit Hours.

Sophomore Topics in Computer Science - Content varies by semester.
Requisite: At Least 6 credits of CSC courses.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 314. Computer Organization and Architecture. 3 Credit Hours.

Digital logic and digital systems. Machine level representation of data. Assembly level machine organization. Memory system organization and architecture. Interfacing and communication. Functional organization. Multiprocessing and alternative architectures
Prerequisite: CSC 120. or BTE 324. or ECE 218. and Corequisite: MTH 309.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 315. Introduction to Python for Scientists. 3 Credit Hours.

Python programming. Python packages for scientific applications. Data science and machine learning applications. Designed for students from the sciences.
Prerequisite: MTH 161 and (CSC113 or MTH224 or other approved statistics course).
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 317. Data Structures and Algorithm Analysis. 3 Credit Hours.

Basic algorithmic analysis. Algorithmic strategies. Fundamental computing algorithms. Distributed algorithms. Cryptographic algorithms. Geometric algorithms.
Prerequisite: CSC 220 or ECE 318 and MTH 309.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 322. System Programming. 3 Credit Hours.

Using UNIX: User environment, Shells, File system, Tools, Scripting. C programming: Core language elements, Pointers, Libraries, Tools. Programming for UNIX: System calls, System information, Processes and threads, File system, Signals, Socket programming.
Prerequisite: CSC220 Or ECE218 And CSC314.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 329. Introduction to Game Programming. 3 Credit Hours.

Fundamental programming issues in game design: Software design; Version control; Basic graphics; GUI programming. Large-scale game project: Team development of a functional game; Graphics and GUI component; Networking component; Core game engine.
Prerequisite: CSC 220 or ECE 318.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 330. Android Programming. 3 Credit Hours.

The Android Studio programming environment. The Android execution model. User interfaces. Media. Data storage areas. Sensors and actuators. The Android market.
Prerequisite: "A" grade in CSC 220.
Components: LAB.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 398. Junior Topics in Computer Science. 1-3 Credit Hours.

Junior Topics in Computer Science - Content varies by semester.
Requisite: At Least 9 credits of CSC courses.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 401. Computer Science Practicum I. 1 Credit Hour.

Implementation of techniques, algorithms, and data structures being taught in a co-requisite computer science course.
Components: PRA.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 402. Computer Science Practicum II. 1 Credit Hour.

Implementation of techniques, algorithms, and data structures being taught in a co-requisite computer science course.
Components: PRA.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 403. Computer Science Practicum III. 1-3 Credit Hours.

Implementation of techniques, algorithms, and data structures being taught in a co-requisite computer science course.
Components: PRA.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 405. Computer Science Seminars. 1 Credit Hour.

A range of topics in Computer Science, as embodied in the seminars hosted by the Department.
Requisite: At least 12 credits of CSC courses.
Components: SEM.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 410. Computer Science Project Planning. 1-3 Credit Hours.

Planning for the implementation of a Computer Science project, including: Problem analysis, System architecture design, Algorithm and data structure selection, User interface design, Verification and validation plan, and Prototyping.
Requisite: At least 12 credits of CSC courses.
Components: PRA.
Grading: GRD.
Typically Offered: Fall, Spring, & Summer.

CSC 411. Computer Science Project Implementation. 1-3 Credit Hours.

Implementation of a Computer Science project, including: Hardware preparation, Component implementation, System integration, Verification and validation, and Documentation.
Requisite: At least 12 credits of CSC courses.
Components: PRA.
Grading: GRD.
Typically Offered: Fall, Spring, & Summer.

CSC 412. Computer Science Internship. 1-3 Credit Hours.

A commercial computing environment. Normally 50 internship hours are required per credit earned (the host company must supply documentary evidence of hours worked).
Requisite: At least 12 credits of CSC courses.
Components: PRA.
Grading: GRD.
Typically Offered: Fall, Spring, & Summer.

CSC 419. Programming Languages. 3 Credit Hours.

Overview of programming languages. Fundamental issues in language design. Virtual machines. Introduction to language translation. Models of execution control. Declaration, modularity, and storage management. Programming language semantics. Programming paradigms.
Prerequisite: CSC 317 or CSC 517.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 421. Principles of Computer Operating Systems. 3 Credit Hours.

Process management. Scheduling and dispatch. Interprocess communication. Memory management. File systems. Device management. Security and protection. System programming for UNIX.
Prerequisite: CSC 314 and CSC 322.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 423. Database Systems. 3 Credit Hours.

Information models and systems. Database systems. Data modeling. Relational databases. Relational database design. Database query languages, Data mining concepts, Web database programming.
Prerequisite: CSC 322 or ECE 322.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 424. Computer Networks. 3 Credit Hours.

Introduction to computer networks and network applications. The protocol stack. Routing, switching and bridging technologies. Models of network computing. Internet standards and protocols.
Prerequisite: CSC 314 and CSC 322.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 427. Theory of Computing. 3 Credit Hours.

Sets, relations, and languages. Automata theory. Basic computability theory. Turing machines. The complexity classes P and NP.
Prerequisite: CSC 220 or ECE 318 and MTH 309.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 431. Introduction to Software Engineering. 3 Credit Hours.

Software processes, requirements and specifications, design, validation, evolution. Project management, tools and environments. Foundations of human-computer interaction. Risks and liabilities of computer-based systems. Intellectual property.
Prerequisite: CSC 317 or CSC 322 or CSC 517.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 481. Teaching Assistant Training in Computer Science. 1-3 Credit Hours.

Training and teaching assistant for a specific course, in computer laboratories. May be taken multiple times, assisting maximally twice for a given course.
Requisite: At least 12 credits of CSC courses.
Components: PRA.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 498. Senior Topics in Computer Science. 1-3 Credit Hours.

Senior Topics in Computer Science - content varies by semester.
Requisite: At least 12 credits of CSC courses.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 506. Logic and Automated Reasoning. 3 Credit Hours.

Propositional and first order logic. Reasoning and resolution. More complex inference rules. Proof search refinements. Gödel's incompleteness theorem. Using contemporary Automated Theorem Proving (ATP) systems. Applications of ATP in research and industry.
Prerequisite: CSC317 or CSC545, MTH309.
Components: LEC.
Grading: GRD.
Typically Offered: Fall Odd Years.

CSC 507. Data Security and Cryptography. 3 Credit Hours.

Access, information flow, and inference controls. Network security and management. Encryption algorithms. Cryptographic techniques.
Prerequisite: CSC 317 or CSC 427.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 516. Cybersecurity. 3 Credit Hours.

Introduction to Cyberspace. Foundations of Cybersecurity. Blockchain and its applications. Malware and counter measures against malware. Firewalls. lntrusion detection and prevention systems. Security for cloud computing and the Internet of Things. Design and implementation of secure software systems.
Prerequisite: CSC 317 And MTH 224 And MTH 309.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 518. Interpreters and Compiler Theory. 3 Credit Hours.

Translation of higher-level languages into machine language. Grammars, parsing, scanners, precedence relations. Run-time storage and symbol table organization. Semantic routines. Chaining and hashing. Code generation and optimization. Macro implementation.
Prerequisite: CSC 419.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 528. Introduction to Parallel Computing. 3 Credit Hours.

Parallel computing systems shared-memory parallel programming, with open MP, distributed-memory parallel programming, software with open MPI software package. Applications: vector and matrix operations, sorting, image processing.
Prerequisite: CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 529. Introduction to Computer Graphics. 3 Credit Hours.

Graphic systems. Graphic communication. Geometric modeling (2D and 3D representations). Rendering. Advanced techniques. Display and input devices. Software packages.
Prerequisite: CSC 220. or ECE 318. and MTH 210.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 540. Algorithm Design and Analysis. 3 Credit Hours.

Design techniques include divide-and-conquer, greedy method, dynamic programming, backtracking. Time and space complexity. Sorting, searching, combinatorial and graph algorithms.
Prerequisite: CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 542. Statistical Learning with Applications. 3 Credit Hours.

Supervised and unsupervised learning. Regression and classification. Statistical learning methods: K-Nearest Neighbors, linear models, tree-based methods, support vector machines. Dimensionality reduction and clustering. Applications of statistical learning methods using R.
Prerequisite: MTH 224.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 545. Introduction to Artificial Intelligence. 3 Credit Hours.

Search and constraint satisfaction. Knowledge representation and reasoning. Natural language processing. Machine learning and neural networks. Game theory. AI programming.
Prerequisite: CSC 317 or ECE 318 and MTH 224 or ECE 310 or IEN 310.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 546. Introduction to Machine Learning with Applications. 3 Credit Hours.

Python and probability, the Numpy package. K-means clustering. The Gaussian mixture model. Kernel density estimation. Dimensionality reduction. Classification. Regression, SVM, and SVR. Ensemble learning. Cross validation for model selection. Signal encoding-decoding. Dictionary learning. Metrics for performance evaluation. Deep neural networks. Neural networks, the Pytorch and Keras packages. Computational graph and automatic differentiation. Convolutional neural networks. Autoencoders. Generative adversarial networks. Transfer learning.
Prerequisite: MTH 210 and MTH 224.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 547. Computational Geometry. 3 Credit Hours.

Algorithms for solving geometric problems arising from application domains including graphics, robotics, and GIS.
Prerequisite: CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 548. Problem Solving for Bioinformatics. 3 Credit Hours.

Grand challenges, solutions, and emerging opportunities in bioinformatics. PERL programming from the most basic to advanced contents such as multidimensional array, regular expression, hash, and sorting. Theories and hands-on projects in 3D genome structure inference, protein secondary structure prediction, protein tertiary structure prediction, protein model quality assessment, protein function prediction, and biological network analysis. Analysis of real-world biomedical data. Applications of machine learning algorithms.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 549. Biomedical Data Science. 3 Credit Hours.

The computational skills needed for analysis of genomic and biomedical data sets, including: The basics of a command line interface; programming in (bio-)python; running programs on Pegasus2; writing scripts for downloading, manipulating, and analyzing data; file sharing and version control using github; analyzing a Next Generation Sequencing data set, and interpreting the results; and responsible conduct of Research.
Prerequisite: CSC 120 and BIL 150.
Components: LEC.
Grading: GRD.
Typically Offered: Fall.

CSC 550. Computational Neuroscience. 3 Credit Hours.

Introduction to computational neuroscience. Analysis and modeling of neural systems. Neurons, populations of neurons, perception, behavior. Connections to machine learning. Tutorials in Matlab.
Prerequisite: MTH 162 and MTH 224.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 552. Bioinformatics Tools. 3 Credit Hours.

Databases and tools of bioinformatics, as relevant to research in genomics and molecular biology. Bioinformatics applications. Information retrieval, analytical tools, BLAST searches, promoter analysis, and protein structure- function analysis, and various applications.
Prerequisite: BIL 250 or BIL 150.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 555. Multimedia Systems. 3 Credit Hours.

Specification and requirements of a multimedia hardware system. Multimedia data technologies. Graphics file formats. Compression and decompression. Multimedia application development.
Prerequisite: CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 595. Topics in Computer Science. 1-3 Credit Hours.

Topics in Computer Science - content varies by semester.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 596. Topics in Computer Science. 1-3 Credit Hours.

Topics in Computer Science - content varies by semester.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 597. Topics in Computer Science. 1-3 Credit Hours.

Topics in Computer Science - content varies by semester.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 598. Topics in Computer Science. 1-3 Credit Hours.

Topics in Computer Science - content varies by semester.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 599. Topics in Computer Science. 1-3 Credit Hours.

Topics in Computer Science - content varies by semester.
Components: THI.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 607. Logic. 3 Credit Hours.

Propositional and first order logic: completeness. Computational logic: Robinson's resolution. Formalized theories: arithmetic, Godel's incompleteness theorem, Tarski's theorem on undefinability of truth.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 609. Data Security and Cryptography. 3 Credit Hours.

Access, information flow, and inference controls. Network security and management. Encryption algorithms. Cryptographic techniques.
Prerequisite: CSC 317 or CSC 427.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 616. Cybersecurity. 3 Credit Hours.

Introduction to Cyberspace. Foundations of Cybersecurity. Blockchain and its applications. Malware and counter measures against malware. Firewalls. lntrusion detection and prevention systems. Security for cloud computing and the Internet of Things. Design and implementation of secure software systems.
Prerequisite: CSC 317 And MTH 224 And MTH 309.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 618. Interpreters and Compiler Theory. 3 Credit Hours.

Translation of higher-level languages into machine language. Grammars, parsing, scanners, precedence relations. Run-time storage and symbol table organization. Semantic routines. Chaining and hashing. Code generation and optimization. Macro implementation.
Prerequisite: CSC 419.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 623. Theory of Relational Databases. 3 Credit Hours.

Relational operators.Functional dependencies.Covers for functional dependencies. Multivalued dependencies. Joint dependencies. Normal Forms, Representation theory. Query systems. Acyclic database schemes.
Prerequisite: CSC 423.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 629. Introduction to Computer Graphics. 3 Credit Hours.

Graphic systems. Graphic communication. Geometric modeling (2D and 3D representations). Rendering. Advanced techniques. Display and input devices. Software packages.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 631. Introduction to Software Engineering. 3 Credit Hours.

Software processes, requirements and specifications, design, validation, evolution. Project management, tools and environments. Foundations of human-computer interaction. Risks and liabilities of computer-based systems. Intellectual property.
Prerequisite: CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 632. Introduction to Parallel Computing. 3 Credit Hours.

Parallel computing systems shared-memory parallel programming, with open MP, distributed-memory parallel programming, software with open MPI software package. Applications: vector and matrix operations, sorting, image processing.
Prerequisite: CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 640. Algorithm Design and Analysis. 3 Credit Hours.

Design techniques include divide-and-conquer, greedy method, dynamic programming, backtracking. Time and space complexity. Sorting, searching, combinatorial and graph algorithms.
Prerequisite: CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 642. Statistical Learning with Applications. 3 Credit Hours.

Supervised and unsupervised learning. Regression and classification. Model assessment and selection. Resampling methods. Statistical learning methods: K-Nearest Neighbors, linear models and regularization, non-linear regression models, tree-based and ensemble methods, kernels and support vector machines. Dimensionality reduction and clustering. Applications using R.
Prerequisite: MTH 224.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 645. Introduction to Artificial Intelligence. 3 Credit Hours.

Search and constraint satisfaction. Knowledge representation and reasoning. Natural language processing. Machine learning and neural networks. Game theory. AI programming.
Prerequisite: CSC 317 Or ECE 318 And MTH 224 Or ECE 310 Or IEN 310.
Components: LEC.
Grading: GRD.
Typically Offered: Fall.

CSC 646. Introduction to Machine Learning with Applications. 3 Credit Hours.

Python and probability, the Numpy package. K-means clustering. The Gaussian mixture model. Kernel density estimation. Dimensionality reduction. Classification. Regression, SVM, and SVR. Ensemble learning. Cross validation for model selection. Signal encoding-decoding. Dictionary learning. Metrics for performance evaluation. Deep neural networks. Neural networks, the Pytorch and Keras packages. Computational graph and automatic differentiation. Convolutional neural networks. Autoencoders. Generative adversarial networks. Transfer learning.
Prerequisite: MTH 210 and MTH 224.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 647. Computational Geometry. 3 Credit Hours.

Algorithms for solving geometric problems arising from application domains including graphics, robotics, and GIS.
Prerequisite: CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 648. Problem Solving for Bioinformatics. 3 Credit Hours.

Grand challenges, solutions, and emerging opportunities in bioinformatics. PERL programming from the most basic to advanced contents such as multidimensional array, regular expression, hash, and sorting. Theories and hands-on projects in 3D genome structure inference, protein secondary structure prediction, protein tertiary structure prediction, protein model quality assessment, protein function prediction, and biological network analysis. Analysis of real-world biomedical data. Applications of machine learning algorithms.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 649. Biomedical Data Science. 3 Credit Hours.

The computational skills needed for analysis of genomic and biomedical data sets, including: The basics of a command line interface. Programming in (bio-)python. Running programs on Pegasus. Writing scripts for downloading, manipulating, and analyzing data. File sharing and version control using Github. Analyzing a Next Generation Sequencing data set, and Interpreting the results. Responsible Conduct of Research.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 650. Computational Neuroscience. 3 Credit Hours.

Introduction to computational neuroscience. Analysis and modeling of neural systems. Neurons, populations of neurons, perception, behavior. Connections to machine learning. Tutorials in Matlab.
Prerequisite: MTH 162 and MTH 224.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 656. Multimedia Systems. 3 Credit Hours.

Specification and requirements of a multimedia hardware system. Multimedia data technologies. Graphics file formats. Compression and decompression. Multimedia application development.
Prerequisite: CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 670. Directed Reading. 1-3 Credit Hours.

Directed reading in Computer Science - content varies by semester.
Components: THI.
Grading: GRD.
Typically Offered: Fall, Spring, & Summer.

CSC 685. Topics in Computer Science. 1-3 Credit Hours.

Topics in Computer Science - content varies by semester.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 686. Topics in Computer Science. 1-3 Credit Hours.

Topics in Computer Science - content varies by semester.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 687. Topics in Computer Science. 1-3 Credit Hours.

Topics in Computer Science - content varies by semester.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 688. Topics in Computer Science. 1-3 Credit Hours.

Topics in Computer Science - content varies by semester.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 689. Topics in Computer Science. 1-3 Credit Hours.

Topics in Computer Science - content varies by semester.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 690. Seminar for Graduate Students I. 1-3 Credit Hours.

Flexible topics of interest to graduate students.
Components: THI.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 692. Seminar for Graduate Students II. 1-3 Credit Hours.

Flexible topics of interest to graduate students.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 707. Logic Programming. 3 Credit Hours.

Programming in Prolog, Fix-point semantics, Declarative semantics, Completeness of SLD-resolution, Negation, Implementation of logic programming languages. Deductive databases.
Prerequisite: MTH 506 and CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 710. Computer Science Software Project Design. 1-3 Credit Hours.

Design of a Computer Science software project, including: Problem analysis. System architecture design. Algorithm and data structure selection. User interface design. Verification and validation plan. Prototyping.
Requisite: Students must complete at least 18 credits prior to enrolling.
Components: PRA.
Grading: GRD.
Typically Offered: Fall, Spring, & Summer.

CSC 712. Computer Science Graduate Internship. 1-6 Credit Hours.

This course monitors students doing an internship in a professional computer science environment. The exact nature of the course will be dependent on the nature of the internship and the requirements of the host organizations. Normally 50 internship hours are required per credit earned (the host organization must supply documentary evidence of hours worked).
Requisite: Students must complete at least 18 credits prior to enrolling in the internship course.
Components: PRA.
Grading: GRD.
Typically Offered: Fall, Spring, & Summer.

CSC 713. Computer Science Software Project Implementation. 1-3 Credit Hours.

Implementation of a Computer Science software project, including: Hardware preparation. Component implementation. System integration. Verification and validation. Documentation.
Requisite: Students must complete at least 18 credits prior to enrolling.
Components: PRA.
Grading: GRD.
Typically Offered: Fall, Spring, & Summer.

CSC 724. Mobile Wireless Systems. 3 Credit Hours.

Cellular Systems, multiple access techniques, wireless networking, mobile IP, power management, user location information management, TDMA, CDMA, and GSM systems, data broadcasting.
Prerequisite: CSC 424.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 727. Theory of Computation. 3 Credit Hours.

Recursive functions, Markov algorithms, Turing machines. Unsolvability.
Prerequisite: CSC 317 or CSC 517.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 732. Parallel Algorithms. 3 Credit Hours.

Parallel computation models; sorting networks; parallel algorithms for sorting, searching, graph problems, prefix computation, pattern matching, and fast Fourier transforms; theory of P-completeness, the class NC.
Prerequisite: CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Fall.

CSC 746. Neural Networks and Deep Learning. 3 Credit Hours.

Fundamentals of artificial neural networks: Perceptrons, Single-layer perceptron classifiers, Multi-Layer feedforward networks, Error back-propagation training. Deep Feedforward Networks: Regularization for deep learning, Optimization for training deep models, Convolution networks. Applications: Computer vision, speech recognition, Natural language processing.
Prerequisite: CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 747. Complexity Theory. 3 Credit Hours.

Models of computations, Blum's axioms, intractability, NP-completeness.
Prerequisite: CSC 427.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 749. Automated Reasoning. 3 Credit Hours.

Propositional and 1st order logic. Reasoning and resolution. More complex inference rules. Using contemporary ATP systems. Prolog as an ATP system and as a programming language. Applications of ATP in research and industry.
Prerequisite: CSC 317 or CSC 645.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 751. Semantic Web. 3 Credit Hours.

An overview of the underlying semantic web technologies. Ontology construction and implementation using tools and APIs (logic, XML, RDF, RDFS). Theoretical and practical aspects of knowledge representation (description logic, RDF, RDFS, SPARQL, SROIQ(D)). Designing and debugging ontologies (ontology engineering, entailment tools, project).
Prerequisite: CSC 317 and MTH 309.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 752. Autonomous Robotic Systems. 3 Credit Hours.

Introduction: autonomous systems, autonomous robots, RoboCup, typical components of an autonomous robot. Modeling: perception, noise, modeling, recursive state estimation, Bayes' filter, particle filter, self-localization. Control and motion: PIO-control, calibration of parameters, controlling a wheeled robot, controlling joints, walking motion. Learning (optional, if time permits): overview, different types of learning, reinforcement learning.
Prerequisite: CSC 317 and MTH 210.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 785. Advanced Topics in Computer Science. 1-3 Credit Hours.

Advanced Topics in Computer Science
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 786. Advanced Topics in Computer Science. 1-3 Credit Hours.

Advanced Topics in Computer Science
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 787. Advanced Topics in Computer Science. 1-3 Credit Hours.

Advanced Topics in Computer Science
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 788. Advanced Topics in Computer Science. 1-3 Credit Hours.

Advanced Topics in Computer Science
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 789. Advanced Topics in Computer Science. 1-3 Credit Hours.

Advanced Topics in Computer Science
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 793. Research Project. 1-6 Credit Hours.

Supervised research project preceding dissertation research for the Ph.D.
Components: IND.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 794. Research Project. 1-6 Credit Hours.

Supervised research project preceding dissertation research for the Ph.D.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 810. Master's Thesis. 1-6 Credit Hours.

The student working on his/her master's thesis enrolls for the number of credit s as determined by his/her advisor. Credit is not awarded until the thesis has been accepted.
Components: THI.
Grading: SUS.
Typically Offered: Fall & Spring.

CSC 825. Continuous Registration--Master's Study. 1 Credit Hour.

To establish residence for non-thesis master's students who are preparing for major examinations. Credit not granted. Regarded as full time residence.
Components: THI.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 830. Pre-Candidacy DOCTORAL DISSERTATION. 1-12 Credit Hours.

Required of all candidates for the Ph.D. The student will enroll for credit as determined by his/her advisor, but for not less than a total of 12 hours. Up to 12 hours may be taken in a regular semester, but not more than six in a summer session.
Components: THI.
Grading: SUS.
Typically Offered: Fall, Spring, & Summer.

CSC 840. Post-Candidacy Doctoral Dissertation. 1-12 Credit Hours.

Required of all candidates for the Ph.D. who have advanced to candidacy. The student will enroll for credit as determined by his/her advisor, but not for less than a total of 12. Not more than 12 hours of CSC 740 may be taken in a regular semester, nor more than six in a summer session.
Components: THI.
Grading: SUS.
Typically Offered: Fall, Spring, & Summer.

CSC 850. Research in Residence. 1 Credit Hour.

Used to establish research in residence for Ph.D. students after the student has enrolled for permissible cumulative total in appropriate doctoral research. Regarded as full-time residence.
Components: THI.
Grading: SUS.
Typically Offered: Fall, Spring, & Summer.