100-Level Courses
C S 100 : Fundamentals of Computing and Information.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F, W, Sp, Su |
| DESCRIPTION: | Computing, information structures, programming principles, Internet, World Wide Web, text, spreadsheets, data representations for images, sound and video. |
| NOTE: | For nonmajors. |
C S 124 : (C S-EC En) Introduction to Computer Systems.
(3:3:2)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F, W, Sp, Su |
| PREREQUISITE: | C S 142 or concurrent enrollment. |
| DESCRIPTION: | How a computer works, from hardware to high-level programming. Logic circuits, computer instructions, assembly language, binary arithmetic, C programming, program translation, data structures, and algorithm analysis. |
C S 142 : Introduction to Computer Programming.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F, W, Sp, Su |
| PREREQUISITE: | Knowledge of algebra. |
| DESCRIPTION: | Introduction to object-oriented program design and development. Principles of algorithm formulation and implementation. |
200-Level Courses
C S 235 : Data Structures and Algorithms.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F, W, Sp, Su |
| PREREQUISITE: | C S 142. |
| DESCRIPTION: | Fundamental data structures and algorithms of computer science; basic algorithm analysis; recursion; sorting and searching; lists, stacks, queues, trees, hashing; object-oriented data abstraction. |
C S 236 : Discrete Structures.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F, W, Sp, Su |
| PREREQUISITE: | C S 235. |
| DESCRIPTION: | Introduction to grammars and parsing; predicate and propositional logic; proof techniques; sets, functions, relations, relational data model; graphs and graph algorithms. |
C S 240 : Advanced Programming Concepts.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F, W, Su |
| PREREQUISITE: | C S 236. |
| DESCRIPTION: | Advanced software development with an object-oriented focus. Development and testing of several 1500 to 2000 line modules from formal specifications. UNIX and C++ environment. |
C S 252 : Introduction to Computational Theory.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F, W, Sp |
| PREREQUISITE: | C S 236 or concurrent enrollment. |
| DESCRIPTION: | Finite state automata, regular languages, lexical analysis; push-down automata, context-free languages, parsing; Turing machines and unrestricted grammars; computability complexity, NP-completeness. |
300-Level Courses
C S 330 : Concepts of Programming Languages.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F, W, Sp |
| PREREQUISITE: | C S 240. |
| DESCRIPTION: | Principles and concepts characterizing high-level computer programming languages, process and data abstration, encapsulation, inheritance, functional programming, logic programming, scanners, and parsers. |
C S 340 : Software Design and Testing.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F, W |
| PREREQUISITE: | C S 240. |
| DESCRIPTION: | Principles of software design, design patterns, design representation, refactoring. Principles of software quality assurance and testing. Development and testing tools. |
C S 345 : Operating Systems Design.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F, W, Su |
| PREREQUISITE: | C S 124, 240. |
| DESCRIPTION: | Principles and concepts of operating systems design and the implementation of an operating system. |
400-Level Courses
C S 404 : Ethics and Computers in Society.
(2:2:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F, W |
| PREREQUISITE: | C S 240, Engl 316; junior-senior status. |
| DESCRIPTION: | Societal impact of computer technology, the computer scientist's place in society, ethical issues. Reading, discussion, and writing seminar. |
C S 405 : Creating and Managing a Software Business.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | W |
| PREREQUISITE: | C S 240, Engl 316. |
| DESCRIPTION: | Entrepreneurship, idea/opportunity generation, strategic planning, legal organization, product development, marketing/sales, customer support, fund raising, and effective management. |
C S 412 : Linear Programming and Convex Optimization.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | W |
| PREREQUISITE: | C S 312, Math 313, or instructor's consent. |
| DESCRIPTION: | Optimization, problem formulation, and solution algorithms, including simplex and interior point methods. Applications from control, data mining, finance, game theory, learning, network flow, operations research, and statistical estimation. |
C S 418 : Bioinformatics.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | W |
| PREREQUISITE: | C S 312. |
| DESCRIPTION: | Computational methods for analyzing biological systems. Dynamic programming, Markov models, Neural Networks, and Bayesian analysis are used to predict secondary structure, tertiary structure, and active sites for drug docking given molecular DNA sequence data. |
C S 431 : Algorithmic Languages and Compilers.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | W, Su |
| PREREQUISITE: | C S 330, 340. |
| DESCRIPTION: | Formal description of algorithmic languages and techniques used in their compilation: semantics, ambiguities, procedures, replication, iteration, recursion. |
C S 450 : Introduction to Digital Signal and Image Processing.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | W |
| PREREQUISITE: | C S 312, Math 313, Stat 221. |
| DESCRIPTION: | One- and two-dimensional signal-processing fundamentals, including sampling, noise, transforms, filtering, enhancement, and compression. Hands-on experimentation with speech, music, still images, and full-motion video. |
C S 452 : Database Modeling Concepts.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F, W, Sp |
| PREREQUISITE: | C S 340, 360. |
| DESCRIPTION: | Database models: relational, deductive, object-oriented. Integrity constraints, query languages, database design. |
C S 456 : Introduction to User Interface Software.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F |
| PREREQUISITE: | C S 340. |
| DESCRIPTION: | Introduction to software architectures and techniques for graphical user interfaces. Input devices, windowing systems, event-driven programming, interactive geometry. |
C S 460 : Computer Communications and Networking.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F |
| PREREQUISITE: | C S 340, 360. |
| DESCRIPTION: | Introduction to data communications and computer networking. Communications fundamentals, computer networks, software, architecture, telecommunications, regulation, standards. |
C S 462 : Large-Scale Distributed System Design.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F |
| PREREQUISITE: | C S 340, 360. |
| DESCRIPTION: | Designing and implementing client-server enterprise applications. Web servers, application servers, database connectivity, remote procedure calls, transactions, messaging, directory, naming services, threads, security, data formats. |
C S 465 : Computer Security.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F, W |
| PREREQUISITE: | C S 360 or concurrent enrollment. |
| DESCRIPTION: | Introduction to computer security fundamentals: confidentiality, integrity, authentication, and access control. Secret key and public key cryptography, network security protocols, viruses, and fire walls. |
C S 470 : Introduction to Artificial Intelligence.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F, Sp |
| PREREQUISITE: | C S 312, Math 313, Stat 221. |
| DESCRIPTION: | Introduction to core areas of artifical intelligence; intelligent agents, problem solving and search, knowledge-based systems and inference, planning, uncertainty, learning, and perception. |
C S 476 : Introduction to Data Mining.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F |
| PREREQUISITE: | C S 312. |
| DESCRIPTION: | Introduction to the basics of data mining. CRISP-DM, pre-processing techniques, association rules, linear/logistic regression, clustering, text and web mining, privacy and ethical issues. |
C S 478 : Tools for Machine Learning and Data Mining.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F, W |
| PREREQUISITE: | C S 312, Math 313, Stat 221. |
| DESCRIPTION: | Machine learning and data mining models and other mechanisms allowing computers to learn and find knowledge from data. |
C S 479 : Natural Language Processing.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F |
| PREREQUISITE: | C S 312; Stat 221. |
| RECOMMENDED: | Ling 330. |
| DESCRIPTION: | Introduction to natural language processing (NLP). Relevant problems include web search, speech recognition, machine translation, spam filtering, text classification, question answering, spell checking. Building real tools, understanding human language, applying techniques beyond NLP. |
C S 484 : Parallel Processing.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | W |
| PREREQUISITE: | C S 360. |
| DESCRIPTION: | Theoretical and practical study of parallel processing including multi-core, fine-grained, and clustered architectures, parallel programming languages, and parallel algorithms. |
500-Level Graduate Courses (available to advanced undergraduates)
C S 557 : Computer-Aided Geometric Design.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | W |
| PREREQUISITE: | C S 240, Math 343; or equivalents. |
| DESCRIPTION: | Free-form curves and surfaces; mathematical theory and algorithms. Bezier and B-spline curves and surfaces, subdivision surfaces, T-splines, free-form deformation, and intersection algorithms. Several programming projects. |
C S 586 : Formal Verification and Validation.
(3:3:0)
(Credit Hours:Lecture Hours:Lab Hours)| OFFERED: | F |
| PREREQUISITE: | C S 312, Math 313, Stat 221; or equivalents. |
| DESCRIPTION: | Implementing formal verification algorithms and using them in protocol and circuit design; proving both incorrectness and correctness. |