Register for courses - Computer Science (CSC)

Visit your program page or contact your advisorĀ for a full overview of the courses you'll need.

Upcoming or current semester courses offered

CSC 995 Coop Work Experience

Offered for S and U grades only. Open only to computer science students. No degree credit. May not be used to satisfy undergraduate computer science elective requirements.

Review of computer science practical experiences resulting from participation in coop/internship program.

CSC 1000 Introduction to Computer Science

Students must attend orientation as listed in the Schedule of Classes. Offered only as computer-based instruction on main campus. If main campus section is elected, students must complete a minimum of two hours per week in CSC lab successfully completing the assigned computer-based lessons (for lab hours, see Schedule of Classes).

Provides an overview of current computing technology, organization, and use. Topics surveyed include data representation and storage, hardware and software organization, communications technologies, ethical and security issues. Provides hands-on training in common application software, such as word processing, spreadsheets, presentation, as well as in electronic telecommunications, such as e-mail, Internet and database searches. The University database and Internet pages are emphasized.

CSC 1002 Personal Digital Security

Students learn how to reduce exposure to risks and how to identify, assess and repair infected devices.

CSC 1050 Introduction to C and Unix

Prereq: MAT 1800. No credit for computer science students after CSC 1100.

Introduction to Unix, Unix editor, and C Programming Language. Unix development tools and fundamentals of C language discussed.

CSC 1100 Problem Solving and Programming

Coreq: CSC 1101

Problem solving with algorithms, and their realization as computer programs using a structured, general purpose programming language; data types, operators, expressions, assignment, input and output, selection and repetition control structures; modularity and procedural abstraction using functions with parameters; structured data types, arrays, pointers and strings.

CSC 1101 Problem Solving and Programming Laboratory

Coreq: CSC 1100.

Mandatory two-hour closed laboratory; discussion of lecture materials and completion of hands-on exercises. Implementing programs using a general purpose programming language; software resulting from this can be used in more advanced computer science courses.

CSC 1500 Fundamental Structures in Computer Science

Prereq: CSC 1100 and CSC 1101, both with grade of C or better; and MAT 2010 with grade of C-minus or better; coreq: CSC 1501.

Introduction to fundamental control and data structures in computer science such as algorithms and complexity; recursive algorithms; program correctness using the predicate calculus; reasoning about algorithms using mathematical induction; divide and conquer algorithms; recurrence relations; set properties and their computation; and computing with relations. Graph properties and their computation, and tree properties and their computation, will be covered if time permits.

CSC 1501 Fundamental Structures in Computer Science Lab

Prereq: CSC 1100 and CSC 1101, both with grade of C or better; and MAT 2010 with grade of C-minus or better; coreq: CSC 1500.

Discussion and supervised hands-on exercises to complement CSC 1500.

CSC 2000 Introduction to C++ Programming Language

Prereq: MAT 1800. No credit for Computer Science majors.

Elements of C++; carrays, pointers and references; operators; classes and objects.

CSC 2110 Computer Science I

Prereq: CSC 1100 and CSC 1101, each with grade of C or better; MAT 2010 with grade of C-minus or better; coreq: CSC 2111.

Rigorous introduction to fundamental object-oriented concepts and techniques of computer programming using an object-oriented language. Introduction to data abstraction; design of abstract data types. Introduction to recursion; programming with generic data types; inheritance; polymorphism; and exception handlers. Concepts applied to console programs and event-driven programming using a simple graphics API.

CSC 2111 Computer Science I Lab

Prereq: CSC 1100 and CSC 1101, both with grade of C or better; MAT 2010 with grade of C-minus or better; coreq: CSC 2110.

Mandatory two-hour supervised lab; hands-on exercises to complement CSC 2110. Object-oriented techniques in a general-purpose object-oriented programming language. Resulting software may be used in more advanced computer science courses.

CSC 2200 Computer Science II

Prereq: CSC 1500 and CSC 1501, CSC 2110 and CSC 2111, all with grade of C or better; MAT 2010 with grade of C-minus or better; coreq: CSC 2201.

Design and implementation of fundamental abstract data types of computer science (such as stacks, queues, trees, lists, hashing, and graphs), using an object-oriented language. Programming requirements include the implementation of abstract data types using arrays and dynamic links; recursion; sorting and searching; hashing; and string processing. Introduction to algorithm analysis.

CSC 2201 Computer Science II: Lab

Prereq: CSC 1500 and CSC 1501, CSC 2110 and CSC 2111, all with grade of C or better; MAT 2010 with grade of C-minus or better; coreq: CSC 2200.

Hands-on lab which complements lecture material in CSC 2200. Lab attendance is mandatory. Implementing data structures and algorithms using object-oriented techniques; techniques of analysis of algorithms; resulting implementations are working pieces of software that can be used in more advanced computer science courses.

CSC 3020 Java Programming

Prereq: CSC 1100 and CSC 1101, each with grade of C or better; and MAT 1800 with grade of C-minus or better.

Introduction to the fundamentals of programming using Java. Topics include: object-oriented programming, classes, constructors, flow control statements, data types, methods, inheritance, data hiding, abstraction, exceptions, file I/O, Java GUI, and Java packages.

CSC 3100 Computer Architecture and Organization

Prereq: CSC 2200 and 2201, both with grade of C or better; MAT 2010 with grade of C-minus or better; coreq: CSC 3101.

Organization and architecture of computer systems. Topics include: digital logic and digital systems; machine-level representation of data and programs; assembly level machine organization and programming; register-level description of computer execution and the functional organization of a computer; role and function of programming languages, libraries and operating systems; performance evaluation; systems programming.

CSC 3101 Computer Architecture and Organization: Lab

Prereq: CSC 2200 and CSC 2201, both with grade of C or better; MAT 2010 with grade of C-minus or better; coreq: CSC 3100.

Two-hour closed lab; students explore and experiment with assembly language programming, data representation, and simple circuit design. Lab attendance is mandatory.

CSC 3110 Algorithm Design and Analysis

Prereq: CSC 2200 and CSC 2201, both with grade of C or better; MAT 2020, MAT 2250 and BE 2100 with grades of C-minus or better.

Formal techniques to support design and analysis of algorithms: underlying mathematical theory and practical considerations of efficiency. Topics include asymptotic complexity bounds, techniques of analysis, algorithmic strategies, advanced data and file structures, and introduction to automata theory and its application to language translation.

CSC 3400 Human-Computer Interaction

Prereq: CSC 2200 and CSC 2201, both with grade of C or better,

User interface design, usability, evaluation, user-centered design.

CSC 3750 Introduction to Web Technology

No credit after CSC 5750. Prereq: CSC 1100 and CSC 1101, both with grade of C or better.

Understanding the Internet using several access methods; required software and tools. Topics include: e-mail, FTP, Telnet, Gopher, Archie, Newsgroups, WWW, HTML, CGI and PHP scripting and how to create an active web site. Laboratory exercises required.

CSC 4110 Software Engineering

Prereq: CSC 2200 and CSC 2201, both with grade of C or better; MAT 2010 with grade of C-minus or better or MAT 3430; coreq: CSC 4111.

Software life cycle; software requirement analysis; software system design; software implementation and testing; software maintenance; team programming; ethics and programmers.

CSC 4111 Software Engineering: Lab

Prereq: CSC 2200 and CSC 2201, both with grade of C or better; MAT 2010 with grade of C-minus or better; coreq: CSC 4110.

Mandatory two-hour closed lab; lecture materials and hands-on exercises which complement CSC 4110.

CSC 4290 Introduction to Computer Networking

Prereq: CSC 2200 and CSC 2201, both with grade of C or better, CSC 3100 and CSC 3101, or equiv.

Introduction of topics such as network architecture, multiple access control, packet switching, routing and flow control, congestion control and quality-of-service, Internet protocols, and elements of distributed computing.

CSC 4420 Computer Operating Systems

Prereq: CSC 2200 and CSC 2201, both with grade of C or better; CSC 3100 and CSC 3101, both with grade of C-minus or better; coreq: CSC 4421. Offered for undergraduate major credit only.

Operating system services; file systems; CPU scheduling; memory management; virtual memory; disk scheduling; deadlocks; concurrent processes.

CSC 4421 Computer Operating Systems: Lab

Prereq: CSC 2200 and CSC 2201, both with grade of C or better; CSC 3100 and CSC 3101, both with grade of C-minus or better; coreq: CSC 4420.

Mandatory two-hour closed lab; lecture materials and hands-on exercises which complement CSC 4420. System call interface; introduction to operating systems programming; use of simulation to better understand operating systems behavior.

CSC 4500 Introduction to Theoretical Computer Science

Prereq: CSC 2200 and CSC 2201, both with grade of C or better, or CSC 5050; MAT 2010 with grade of C-minus or better.

Finite automata and regular expressions; context-free grammars; pushdown automata; Turing machines; hierarchy of formal languages and automata; computability and decidability.

CSC 4710 Introduction to Database Management Systems

Prereq: CSC 2200 and CSC 2201 with grades of C or better.

Topics include: database concepts, ER modeling, schemas and constraints, SQL and relational algebra, web-based database applications, triggers and views, physical organization and indexing, query processing, query optimization, NoSQL databases.

CSC 4990 Directed Study

Prereq: written consent of instructor. Not for graduate credit.

Individual study as agreed on by student and supervising faculty. Primarily for material not covered in regular courses.

CSC 4992 Special Topics in Computer Science

Prereq: CSC 2110 and CSC 2111, both with grade of C or better. Maximum of six credits may be applied toward satisfying the computer science elective, in any computer science degree program.

Topics to be announced in the Schedule of Classes.

CSC 4995 Professional Practice in Computer Science

Prereq: junior or senior standing. Offered for S and U grades only. Open only to computer science co-op students. Must be taken after each full-time co-op work assignment. May not be used to satisfy undergraduate computer science elective requirements.

Review of computer science practical experiences resulting from participation in the cooperative work-study program.

CSC 4996 (WI) Senior Project and Computer Ethics

Prereq: CSC 4110, CSC 4111, and CSC 4710 all with grade of C-minus or better; senior standing in computer science; coreq: CSC 4997.

Development of skills for planning, managing, implementing, and documenting complex software projects; legal, social and ethical issues in software development and computer use. Project management techniques; professional conduct, social responsibility, liability, ownership of information, privacy, security and crime.

CSC 4997 Senior Project Lab

Prereq: CSC 4110, CSC 4111, and CSC 4710 all with grade of C-minus or better; senior standing in computer science; coreq: CSC 4996.

Development of project management skills while managing, implementing and documenting a real-world project from initial idea to final implementation. Theory, software engineering techniques, group activities, and computer tools such as Microsoft Project. Mandatory lab.

CSC 4999 Honors Thesis

Prereq: senior standing, written consent of instructor. Offered for 6 credits with written consent of thesis advisor and undergraduate committee.

Independent study under supervision.

CSC 5050 Algorithms and Data Structures

Prereq: knowledge of C or C++ programming. Not for CSC major credit. Offered for graduate credit only.

Introduction to problem solving methods and algorithm development; data abstraction for structures such as stacks, queues, linked lists, trees, and graphs; searching and sorting algorithms and their analysis.

CSC 5250 Network, Distributed, and Concurrent Programming

Prereq: CSC 4420 and CSC 4421.

Fundamental concepts and skills of developing networked, distributed, and concurrent applications. Topics include: inter-process communication, TCP/IP sockets programming, remote method invocation, multithreading, concurrency and synchronization.

CSC 5270 Computer Systems Security

Prereq: CSC 4420, CSC 4421, and CSC 5250.

Fundamental technologies for enabling an e-society which is more predictable, more accountable, and less vulnerable to attacks. Covers three components: security requirements and protocols, cryptography algorithms, and case studies.

CSC 5430 Game Programming and Design I

Prereq: CSC 2200 and CSC 2201, both with grade of C or better, or CSC 5050.

Fundamentals of game programming and game design using C++, DirectX, Windows, and C#.

CSC 5431 Game Programming and Design I: Lab

Prereq: MAT 2010, C++ programming experience; coreq: CSC 5430.

Laboratory for CSC 5430. Focus on modding, or making changes to existing programs to achieve specific results.

CSC 5750 Principles of Web Technology

Prereq: MAT 2010, CSC 3750; or senior or graduate standing.

History and development of the world-wide web. Techniques for authoring static and dynamic content for the world-wide web. Web security techniques. Electronic commerce on the web. Lab exercises required.

CSC 5800 Intelligent Systems: Algorithms and Tools

Prereq: CSC 2200 and CSC 2201, both with grade of C or better, or CSC 5050; MAT 2010.

Introduction to basic algorithms and software tools for intelligent data representation and analysis, including: data pre-processing, data exploration and visualization, model evaluation, predictive modeling, classification methods, association analysis, clustering, anomaly detection, representing extracted patterns as expertise, tools for data mining and intelligent systems such as WEKA, CLIPS, and MATLAB.

CSC 5825 Introduction to Machine Learning and Applications

Prereq: CSC 3110.

Through algorithmic investigation, brainstorming, and case analysis, students develop the skills and strategies that are necessary for effective leaning from data, including Big Data emerging from science and engineering.

CSC 5991 Special Topics in Computer Science

Prereq: CSC 2200 and CSC 2201, both with grade of 'C' or better; or graduate standing.

Topics to be announced in the Schedule of Classes.

CSC 6110 Software Engineering

Prereq: CSC 2200 and CSC 2201, both with grade of C or better, or CSC 5050; MAT 2010.

Software process models; advanced software system design; software project management; software analysis; testing and performance analysis; software maintenance; reverse engineering; software reuse; software metrics; object-oriented development.

CSC 6220 Parallel Computing I: Programming

Prereq: CSC 2200 and CSC 2201, both with grade of C or better, or CSC 5050; and CSC 3100 and CSC 3101.

Parallel computing concepts, examples of parallel computers, parallelism in algorithms / data / programs, experiences with state of the art parallel computers.

CSC 6280 Real-Time and Embedded Operating Systems

Prereq: CSC 4420 and CSC 4421.

Operating system design for real-time and embedded systems. Focus on scheduling, synchronization, communication, and process and memory management for time-critical and resource-constrained applications.

CSC 6290 Data Communication and Computer Networks

Prereq: CSC 5250.

Data communication fundamentals and principles governing computer communication networks. Components of networks, how they are connected; basics of design and implementation of network protocols.

CSC 6500 Theory of Languages and Automata

Prereq: CSC 4500.

Recursive and recursively enumerable languages; decidability and computability; Rice's theorem; time complexity; space complexity.

CSC 6580 Design and Analysis of Algorithms

Prereq: CSC 3110.

Best case, worst case, and expected case complexity analysis; asymptotic approximations; solutions of recurrence equations; probabilistic techniques; divide-and-conquer; the greedy approach; dynamic programming; branch and bound; NP-completeness; parallel algorithms.

CSC 6800 Artificial Intelligence I

Prereq: CSC 5800 or CSC 3200.

Basic concepts; topics include: recursive problem solving, knowledge representation using semantic networks and frames, state space search methods, planning and problem solving, game playing and adversarial search methods, rules and production systems (RETE networks), constraint satisfaction techniques and applications, optimization algorithms including genetic algorithms, logic programming. Implementation in Lisp and Prolog.

CSC 6860 Digital Image Processing and Analysis

Prereq: graduate standing. Offered for graduate credit only.

Review of image formation and acquisition; image transformation; image enhancement and restoration; image compression; morphological image processing; edge detection and segmentation; architecture for image processing.

CSC 6870 Computer Graphics II

Prereq: CSC 5870.

Representing curves and surfaces; solid modeling; fractal geometry; camera models; illumination models; ray tracing; radiosity methods; transparency; texture; graphics packages.

CSC 6991 Topics in Computer Science

Prereq: CSC 2200 and CSC 2201, both with grade of 'C' or better; or graduate standing.

Current topics to be announced in the Schedule of Classes.

CSC 6995 Internship in Computer Science

Prereq: written consent of advisor; 3.0 g.p.a. or above; completion of nine credits in computer science graduate course work. Open only to computer science majors. Offered for S and U grades only.

Experience in industry using tools from the computer science curriculum. Students provide a written report based on the internship experience.

CSC 7220 Parallel Computing II: Algorithms and Applications

Prereq: CSC 6220 or equiv.

Problems in parallel algorithms: design, analysis, complexity. Cluster and grid computing: tools, programming, and applications.

CSC 7260 Distributed Systems

Prereq: CSC 5250.

Models of distributed systems, distributed synchronization, algorithms, consistency and replication models and algorithms, fault-tolerance in distributed systems.

CSC 7290 Advanced Computer Networking

Prereq: CSC 6290.

Foundations of computer networking (e.g., performance evaluation and analysis, protocol specification and verification), latest development in network architecture and technology (e.g., wireless networks, sensor networks, peer-to-peer networks, vehicular networks).

CSC 7300 Bioinformatics I: Biological Databases and Data Analysis

Prereq: MAT 2010; coreq: CSC 7301/MGG 7301.

Concepts of bioinformatics; tools for storing and analysis of bioinformatics data.

CSC 7301 Bioinformatics I: Programming Lab

Coreq: CSC 7300/MGG 7300.

Hands-on experience and exercises for CSC 7300/MBG 7300 lectures.

CSC 7710 Database Management Systems II

Prereq: CSC 6710.

Concurrency control, transaction processing, crash recovery, security, distributed and heterogeneous databases, data warehousing, data mining, multimedia systems, student Oracle project.

CSC 7810 Data Mining: Algorithms and Applications

Prereq: CSC 5800.

Application of various basic/advanced data mining techniques to real-world problems.

CSC 7990 Directed Study

Prereq: written consent of advisor prior to registration.

CSC 7991 Advanced Topics in Computer Science

Prereq: graduate standing.

Topics to be announced in the Schedule of Classes.

CSC 8710 Seminar in Database Management Systems

Prereq: CSC 6710.

Discussion of current papers in the field.

CSC 8860 Seminar Topics in Computer Vision and Pattern Recognition

Prereq: CSC 7860 and written consent of instructor.

Discussion of current papers in the field.

CSC 8990 Graduate Seminar

Prereq: graduate standing. Offered for S and U grades only. Required of all master's and Ph.D. students.

Discussion of current research by faculty and visitors.

CSC 8999 Master's Thesis Research and Direction

Prereq: written consent of advisor prior to registration.

CSC 9990 Pre-Doctoral Candidacy Research

Prereq: written consent of department and approval by Ph.D. Officer of the Graduate School. Offered for S and U grades only.

Research in preparation for doctoral dissertation.

CSC 9991 Doctoral Candidate Status I: Dissertation Research and Direction

Prereq: Ph.D. candidate in department and approval by the Ph.D Officer of the Graduate School. Required in academic-year semester following advancement to Ph.D. candidacy. Offered for S and U grades only.

CSC 9992 Doctoral Candidate Status II: Dissertation Research and Direction

Prereq: CSC 9991 and approval by the Ph.D. Officer of the Graduate School. Required in academic-year semester following CSC 9991. Offered for S and U grades only.

CSC 9993 Doctoral Candidate Status III: Dissertation Research and Direction

Prereq: CSC 9992 and approval by the Ph.D. officer of the Graduate School. Required in academic-year semester following CSC 9992. Offered for S and U grades only.

CSC 9994 Doctoral Candidate Status IV: Dissertation Research and Direction

Prereq: CSC 9993 and approval of Ph.D. of the Graduate School. Required in academic-year semester following CSC 9993. Offered for S and U grades only.

CSC 9995 Candidate Maintenance Status: Doctoral Dissertation Research and Direction

Prereq: approval by the Ph.D. Officer of the Graduate School; completion of 30 credits in CSC 9991-9994. Offered for S and U grades only.