Computer Science (CSC)

CSC 100 The Beauty and Joy of Computing 3

A broad-based introduction to key concepts and principles of computer science. Exploration of seven big ideas of computing: creativity, abstraction, data, algorithms, programming, the Internet, and impact of computing.

CSC 101 Introduction to Computer Concepts 3

Introduction to computers and computing. Topics cover impact of computers on society, ethical issues, hardware, and software applications.

CSC 110 Computational Problem Solving 3

Using computing to apply mathematical concepts in developing algorithmic solutions to real-world problems, stressing analysis and logical reasoning. A modern programming language will be introduced for examples and assignments.

GE Core: GMT

Prerequisites: Non-Computer Science majors only or permission of instructor .

CSC 130 Introduction to Computer Science 3

Programming in a high-level language. Emphasis on problem analysis, problem-solving techniques, and software design principles and techniques.

Prerequisites: Acceptable score on the computer science placement test or a grade of at least C (2.0) in MAT 120, MAT 150, MAT 151, MAT 190, or MAT 191.

Notes: Computer Science majors should not take MAT 120.

CSC 230 Elementary Data Structures and Algorithms 3

Advanced syntax of high level language taught in CSC 130. Emphasis on modularization and abstraction. Big-O analysis of algorithms. Design and use of abstract data types with various implementations.

Prerequisites: Grade of at least C (2.0) in CSC 130.

CSC 237 Programming Language Laboratory 1-3

Syntax and use of a programming language. Language covered announced at preregistration.

Notes: May be taken twice for credit with permission of the Department Head.

CSC 250 Foundations of Computer Science I 3

An introduction to the fundamental ideas underlying contemporary computer science with a focus on the computation and construction of objects.

Prerequisites: Grade of at least C (2.0) in CSC 130 or permission of instructor.

CSC 261 Computer Organization and Assembly Language 3

Introduction to the organization of the computer through the use of Assembly Language programming. Data representation, parts of the computer system, Assembly Language fundamentals, instruction sets, memory, and floating-point operations.

Prerequisites: Grade of at least C (2.0) in CSC 230 and in CSC 250, or permission of instructor.

CSC 312 Ethics in Computer Science 1

Historical and social context of computing, ethical responsibilities of the computing professional, intellectual property rights, and risks and liabilities.

Prerequisites: Grade of at least C (2.0) in CSC 230 and in CSC 250, or permission of instructor.

Notes: Computer Science majors only.

CSC 330 Advanced Data Structures 3

Static and dynamic data structures emphasizing binary trees and graphs. Advanced programming techniques. Advanced sorting and searching algorithms. Hashing techniques. Performance analysis. Methods of developing large applications programs.

Prerequisites: Grade of at least C (2.0) in CSC 230 and in CSC 250.

CSC 339 Concepts of Programming Languages 3

Concepts of block-structured, object-oriented, functional, logic, and concurrent programming languages. Comparative study of syntactic and semantic features of these languages and writing programs using them.

Prerequisites: Grade of at least C (2.0) in CSC 330.

CSC 340 Software Engineering 3

Practical and theoretical concepts of software engineering.

Prerequisites: Grade of at least C (2.0) in CSC 330.

CSC 350 Foundations of Computer Science II 3

High level concepts in the theoretical foundations of computer science.

Prerequisites: Grade of at least C (2.0) in CSC 250, or permission of instructor.

CSC 463 Basic Systems Administration Laboratory 1

Installing operating systems, peripherals, hardware, and software. Backups, recompiling the kernel (loading/unloading modules), providing Web services, and user administration.

Corequisites: CSC 562 and CSC 567. or permission of instructor .

CSC 464 Intermediate Systems Administration Laboratory 1

Topics selected from routing, firewall, Primary Domain Controller, Backup Domain Controller, Domain Controller trust, SAMBA, DNS round robin, and PPP connectivity setup.

Prerequisites: Grade of at least C (2.0) in CSC 463 .

CSC 465 Advanced Systems Administration Laboratory 1

Automated installation, software installation, systems programming, system administration in a large organization. Projects will include departmental or university computer system work.

Prerequisites: Grade of at least C (2.0) in CSC 464 .

CSC 471 Principles of Database Systems 3

Contemporary database systems. Emphasis on query processing, design, and implementation of applications in relational (SQL) databases. Introduction to other database models such as XML, object-oriented, and deductive.

Prerequisites: Grade of at least C (2.0) in CSC 330, or permission of instructor.

CSC 490 Senior Capstone 3

Application of classroom knowledge and skills in computer science to solve real-world problems and to develop research and development skills.

Prerequisites: Permission of instructor. student must be in the final semester of major coursework.

CSC 493 Honors Work in Computer Science 3

Research in a topic of special interest at the Honors level.

Prerequisites: Permission of instructor.

Notes: May be repeated for credit when topic changes.

CSC 495 Selected Topics in Computer Science 3

A topic of special interest is studied in depth.

Prerequisites: Junior standing and permission of instructor.

Notes: May be repeated for credit for a total of 6 s.h. when topic of study changes.

CSC 505 Data Science 3

Problem-based learning introduction to Data Science, including programming with data; data mining, munging, and wrangling; statistics, analytics, visualization; and applied machine learning, directed towards scientific, social, and environmental challenges.

Prerequisites: A grade of C or better in CSC 330 and (STA 271 or STA 290), or permission of instructor (prior programming and statistics experience is required).

CSC 510 Big Data and Machine Learning 3

Big data definitions and characteristics, computing environment for big data management and processing, machine learning models and algorithms, and scaling up maching learning (high dimensionality reduction).

Prerequisites: CSC 330. MAT 191; STA 271;

Corequisites: CSC 567. MAT 292.

CSC 523 Numerical Analysis and Computing 3

Number systems and errors, solutions of non-linear and linear systems, eigenvalue problems, interpolation and approximation, numerical differentiation and integration, solution of differential equations.

Prerequisites: Pr. grades of at least C (2.0) in CSC 130, CSC 350, and MAT 293, or permission of instructor.

CSC 524 Numerical Analysis and Computing 3

Continuation of CSC 523 with special topics in numerical analysis, emphasis on applied mathematics.

Prerequisites: Grade of at least C (2.0) in CSC 523.

CSC 526 Bioinformatics 3

Introduction to the problems and methods in Bioinformatics. Problem areas include restriction mapping, map assembly, sequencing, DNA arrays, and sequence comparison.

Prerequisites: Permission of instructor.

CSC 529 Artificial Intelligence 3

Logical foundations, knowledge representation and reasoning, search, and selected topics such as natural language processing and reasoning under uncertainty.

Prerequisites: Grade of at least C (2.0) in CSC 330 and CSC 350 or permission of instructor.

CSC 540 Human-Computer Interface Development 3

Survey of concepts and techniques for human-computer interface development. Topics include user-centered design, user interface programming, and usability evaluation.

Prerequisites: Grades of at least C (2.0) in CSC 340 or permission of instructor.

CSC 553 Theory of Computation 3

Finite state automata and regular expressions, context-free grammars, push-down automata and their use in parsing, overview of language translation systems, models for programming language semantics, computability and undecidability.

Prerequisites: Grade of at least C (2.0) in CSC 350. or permission of instructor.

CSC 555 Algorithm Analysis and Design 3

Sequential algorithm design and complexity analysis. Dynamic programming. Greedy algorithms. Graph algorithms. Selected advanced topics from NP-completeness; approximation, randomized, parallel, number-theoretic algorithms; Fast Fourier Transform; computational geometry; string matching.

Prerequisites: Grade of at least C (2.0) in CSC 330.

CSC 561 Principles of Computer Architecture 3

Hardware and software components of computer systems, their organization and operations. Topics: comparative instruction set architectures, microprogramming, memory management, processor management, I/O, interrupts, and emulation of processors.

Prerequisites: Grades of at least C (2.0) in CSC 261, CSC 330, and CSC 350, or permission of instructor.

CSC 562 Principles of Operating Systems 3

Techniques and strategies used in operating system design and implementation: managing processes, input/output, memory, scheduling, file systems, and protection.

Prerequisites: Pr. grades of at least C (2.0) in CSC 261 and CSC 340 or permission of instructor.

Notes: Successful completion of CSC 561 helpful.

CSC 567 Principles of Computer Networks 3

Hardware and software components of computer networks, their organization and operations. Topics: open system interconnection; local area networks; TCP/IP internetworking, routing, and packet switching; network programming.

Prerequisites: Grades of at least C (2.0) in CSC 261 and CSC 330, or permission of instructor.

CSC 568 Principles of Wireless Networks 3

Digital communications, communication networks, wireless communication technology, wireless networking, wireless LANs, and wireless network programming.

Prerequisites: Grades of at least C (2.0) in CSC 330 and CSC 567, or permission of instructor.

CSC 580 Cryptography and Security in Computing 3

Modern development of cryptography and secure encryption protocols. Program security and viruses. Operating system protection. Network and distributed system security. Database security. Administering security.

Prerequisites: Grades of at least C (2.0) in CSC 330 and one of CSC 471, CSC 561, CSC 562, or CSC 567, or permission of instructor.

CSC 581 Principles of Computer Security 3

Core concepts in computer security, including the security goals of confidentiality, integrity, and availability; authentication; access control; security software development; use of cryptography; and basic network security.

Prerequisites: Grade of C or better in CSC 261 and CSC 330, or permission of instructor.

CSC 583 Firewall Architecture and Computer Security 3

Firewall hardware and software technologies. Architectures, protocols and their applications.

Prerequisites: Grades of at least C (2.0) in CSC 567 and CSC 580, or permission of instructor.

CSC 593 Directed Study in Computer Science 1-3

Directed study in Computer Science.

CSC 594 Directed Study in Computer Science 1-3

Notes: Grade: Pass/Not Pass (P/NP).

CSC 622 Advanced Digital Image Processing 3

Image restoration, segmentation, coding, representation and description, morphological transforms, object recognition.

Prerequisites: CSC 522 or permission of instructor.

CSC 626 Advanced Bioinformatics 3

Advanced topics in bioinformatics related to sequence comparison and database search, fragment assembly of DNA, physical mapping of DNA, phylogenetic trees, genome rearrangements, and molecular structure prediction.

Prerequisites: CSC 526 or permission of instructor.

CSC 640 Software Engineering 3

Organization and scheduling of software engineering projects and structured software design. Specification methods, metrics, software engineering tools, design, prototyping, version control, and testing.

Prerequisites: CSC 330 or permission of instructor.

CSC 650 Language Theory 3

Important aspects of language theory. Advanced topics such as grammar, codes, L systems, and combinatorics on words.

Prerequisites: CSC 550 or permission of instructor.

CSC 653 Advanced Theory of Computation 3

Computability theory including Church-Turing thesis (Turing machines, variants, other models), decidability (decidable and undecidable problems for automata and grammars, the halting problem), reducibility (undecidability of mathematical truth).

Prerequisites: CSC 553, or permission of instructor.

CSC 655 Advanced Topics in Algorithms 3

Modern development of algorithm design and analysis for sequential and parallel computers; parallel, number-theoretic, probabilistic, and approximation algorithms, string matching, computational geometry, NP-completeness: worst-case versus average-case.

Prerequisites: Grade of at least C in CSC 555.

CSC 656 Foundations of Computer Science 3

Introduces the mathematical foundations that support advanced studies in computer science including computer programming and the analysis of algorithms.

Prerequisites: CSC 350 or permission of instructor.

CSC 663 Advanced Topics in Computer Systems 3

Distributed and parallel systems. High-speed and wireless networks. Mobile computing. Communication, synchronization, distributed shared memory, real-time and fault-tolerant systems; current implementations.

Prerequisites: CSC 330 and CSC 567 or CSC 561 or CSC 562 or permission of instructor.

Notes: May be repeated for credit when topics vary.

CSC 665 Advanced Wireless Networks 3

Wireless technology and architecture, wireless network types, wireless network design approaches, wireless application development and wireless network programming.

Prerequisites: CSC 330 or equivalent and one of the following: CSC 561 or CSC 562 or CSC 567 or permission of instructor.

CSC 671 Advanced Database Systems 3

Modern database models. User interface and operations. Applications design. Introduction to multi-database systems: interoperability and data integration. Selected topics of current interest.

Prerequisites: CSC 330 or permission of instructor.

CSC 672 Database System Architecture 3

File organization and indexing techniques. Query processing and optimization. Concurrency control and crash recovery. Distributed and heterogeneous database systems. Selected topics of current interest in database and knowledge-base systems.

Prerequisites: CSC 570 or CSC 671, or permission of instructor.

CSC 675 Principles of XML Databases 3

XML from a database point of view, concentrating on information retrieval (querying) and integration.

Prerequisites: CSC 671 or permission of instructor.

CSC 676 Topics in Database Systems 3

Selected topics of current interest such as: deductive databases, modeling and management of uncertain and inaccurate information, multi-database systems, data mining, on-line analytical processing and data warehousing.

Prerequisites: CSC 671 or permission of instructor.

CSC 680 Advanced Topics in Computer Security 3

Topics in cryptography and computer security, including cryptographic protocols, Web server security, Java security, security in the healthcare domain, and experimental quantum cryptography.

Prerequisites: CSC 339 and CSC 580.

CSC 693 Advanced Topics in Computer Science 3-6

Algorithms, architecture, languages, systems, theory, or other areas of computer science.

Prerequisites: Permission of instructor.

Notes: May be repeated once for credit.

CSC 695 Current Problems in Computer Science 3

Topics of current research interest in computer science.

Prerequisites: Permission of instructor.

CSC 697 Research Problems in Computer Science 3

Advanced research in specialized areas of computer science under the direction of a faculty member. Preparation for master's thesis.

Prerequisites: Permission of instructor.

Notes: Grade: Satisfactory/Unsatisfactory (S/U).

CSC 698 Project in Computer Science 3-6

Prerequisite: Permission of instructor;

Notes: May be repeated for up to 6 credit hours with permission of instructor. Grade: Satisfactory/Unsatisfactory (S/U).

CSC 699 Thesis 1-6

CSC 711 Experimental Course 3

This number reserved for experimental courses. Refer to Course Schedule for current offerings.

CSC 801 Thesis Extension 1-3

CSC 803 Research Extension 1-3