Skip Navigation Links

Undergraduate Bulletin
Skip Navigation LinksUndergraduate Bulletin > Computer Science > Courses (CSC)

Computer Science Courses (CSC)

GE Core denotes General Education Core credit;
GE Marker
denotes General Education Marker credit;
CAR denotes College Additional Requirement credit.

Courses for Undergraduates

100 The Beauty and Joy of Computing (3:2: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.

101 Introduction to Computer Concepts (3:3)

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

110 Computational Problem Solving (3:3)

GE Core: GMT

Pr. non-Computer Science majors only or permission of instructor

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.

130 Introduction to Computer Science (3:2:2 )

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

Computer Science majors should not take MAT 120.

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

230 Elementary Data Structures and Algorithms (3:3)

Pr. grade of at least C (2.0) in CSC 130

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.

237 Programming Language Laboratory (1–3)

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

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

250 Foundations of Computer Science I (3:3)

Pr. grade of at least C (2.0) in CSC 130 or permission of instructor

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

261 Computer Organization and Assembly Language (3:3)

Pr. grade of at least C (2.0) in CSC 230 and in CSC 250, or permission of instructor

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.

312 Ethics in Computer Science (1:1)

Pr. grade of at least C (2.0) in CSC 230 and in CSC 250, or permission of instructor

Computer Science majors only.

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

330 Advanced Data Structures (3:3)

Pr. grade of at least C (2.0) in CSC 230 and in CSC 250

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.

339 Concepts of Programming Languages (3:3)

Pr. grade of at least C (2.0) in CSC 330

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.

340 Software Engineering (3:3)

Pr. grade of at least C (2.0) in CSC 330

Practical and theoretical concepts of software engineering.

343 Experimental Course: Art and Code (3:2:3)

Pr. ART 241 or permission of instructor

Studio-based exploration of computational art-making. Introduction to programming and visual art through collaborative projects and exposure to the broad variety of software-generated work being done in contemporary art practice. (Offered spring '11) (Same as ART 343)

350 Foundations of Computer Science II (3:3)

Pr. grade of at least C (2.0) in CSC 250, or permission of instructor

High level concepts in the theoretical foundations of computer science.

463 Basic Systems Administration Laboratory (1:0:3)

Coreq. CSC 562 and CSC 567, or permission of instructor

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

464 Intermediate Systems Administration Laboratory (1:0:3)

Pr. grade of at least C (2.0) in CSC 463

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

465 Advanced Systems Administration Laboratory (1:0:3)

Pr. grade of at least C (2.0) in CSC 464

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

471 Principles of Database Systems (3:3)

Pr. grade of at least C (2.0) in CSC 330, or permission of instructor

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.

490 Senior Project (3:3)

Pr. CSC 340 and senior standing, or permission of instructor

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

493 Honors Work in Computer Science (3:3)

Pr. permission of instructor

May be repeated for credit when topic changes.

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

495 Selected Topics in Computer Science (3:3)

Pr. junior standing and permission of instructor

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

A topic of special interest is studied in depth.

Courses for Advanced Undergraduates & Graduate Students

521 Computer Graphics (3:3)

Pr. grades of at least C (2.0) in CSC 340, CSC 350, and MAT 292, or permission of instructor

Survey of graphics algorithms, data structures, and techniques.

522 Digital Image Processing (3:3)

Pr. grades of at least C (2.0) in CSC 330, CSC 350, and MAT 292, or permission of instructor. Successful completion of STA 271 or STA 290 recommended.

Image representation, enhancement, compression, coding, restoration, and wavelet transforms.

523 Numerical Analysis and Computing (3:3)

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

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

524 Numerical Analysis and Computing (3:3)

Pr. grade of at least C (2.0) in CSC 523

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

526 Bioinformatics (3:3)

Pr. permission of instructor

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

529 Artificial Intelligence (3:3)

Pr. grade of at least C (2.0) in CSC 330 and CSC 350 or permission of instructor

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

539 Introduction to Compiler Design (3:3)

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

Successful completion of CSC 553 helpful.

Basic techniques of compiler design and implementation: lexical analysis, parsing, code generation. Sizable programming project implementing a compiler for a block-structured language with strong typing.

540 Human-Computer Interface Development (3:3)

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

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

550 Combinatorics on Words (3:3)

Pr. permission of instructor

Introduction to the problems and methods in algorithmic combinatorics on words. Problem areas include periodicity, primitivity, and borderedness.

553 Theory of Computation (3:3)

Pr. grade of at least C (2.0) in CSC 350, or permission of instructor

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.

555 Algorithm Analysis and Design (3:3)

Pr. grade of at least C (2.0) in CSC 330

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.

561 Principles of Computer Architecture (3:3)

Pr. grades of at least C (2.0) in CSC 261, CSC 330, and CSC 350, or permission of instructor

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.

562 Principles of Operating Systems (3:3)

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

Successful completion of CSC 561 helpful.

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

567 Principles of Computer Networks (3:3)

Pr. grades of at least C (2.0) in CSC 261 and CSC 330, or permission of instructor

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.

568 Principles of Wireless Networks (3:3)

Pr. grades of at least C (2.0) in CSC 330 and CSC 567, or permission of instructor

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

580 Cryptography and Security in Computing (3:3)

Pr. 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

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

583 Firewall Architecture and Computer Security (3:3)

Pr. grades of at least C (2.0) in CSC 567 and CSC 580, or permission of instructor

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

593 Directed Study in Computer Science (1–3)

594 Directed Study in Computer Science (1–3)

Grade: Pass/Not Pass (P/NP)

Please refer to The Graduate School Bulletin for additional graduate-level courses.

This page was last updated on June 6, 2012.