CS 101 COMPUTERS: APPLICATIONS AND IMPLICATIONS (4)
The varieties of computer hardware and software. The effects, positive and negative, of computers on human lives. Ethical implications of information technology. Hands-on experience with a variety of computer applications. Lec/lab.
|
CS 151 INTRODUCTION TO C PROGRAMMING (4)
Thorough treatment of the basic elements of C, bitwise operations, flow of control, input/output, functions, arrays, strings, and structures.
|
CS 160 COMPUTER SCIENCE ORIENTATION (4)
Introduction to the computer science field and profession. Team problem solving. Social and ethical issues surrounding use of computers. Lec/lab.
PREREQS:
Wireless laptop required.
|
CS 161 INTRODUCTION TO COMPUTER SCIENCE I (4)
Overview of fundamental concepts of computer science. Introduction to problem solving, software engineering and object-oriented algorithm development and programming. Lec/lab.
PREREQS:
MTH 112 or (MTH 251 or MTH 251H) or Placement Test
|
CS 162 INTRODUCTION TO COMPUTER SCIENCE II (4)
Basic data structures. Computer programming techniques and application of software engineering principles. Introduction to analysis of programs. Lec/lab.
PREREQS:
CS 161 and (MTH 231* or ECE 271*)
|
CS 195 INTRODUCTION TO WEB AUTHORING (4)
Techniques and tools for designing and publishing on the World Wide Web; hypertext and HTML; site and page design; media integration; issues raised by Internet publishing.
PREREQS:
CS 101 or equivalent.
|
CS 199 SELECTED TOPICS (1-16)
This course is repeatable for a maximum of 16 credits.
|
CS 261 DATA STRUCTURES (4)
Complexity analysis. Approximation methods. Trees and graphs. File processing. Binary search trees. Hashing. Storage management. Lec/rec.
PREREQS:
CS 162 and MTH 231
|
CS 262 PROGRAMMING PROJECTS IN C++ (4)
Learning a second computer programming language. Elements of C++. Object-oriented programming. Experience team work on a large programming project.
PREREQS:
CS 261
|
CS 271 COMPUTER ARCHITECTURE AND ASSEMBLY LANGUAGE (4)
Introduction to functional organization and operation of digital computers. Coverage of assembly language; addressing, stacks, argument passing, arithmetic operations, decisions, macros, modularization, linkers and debuggers.
PREREQS:
CS 161
and
MTH 231
|
CS 275 INTRODUCTION TO DATABASES (4)
Design and implementation of relational databases, including data modeling, ER/UML diagrams, relational schema, SQL queries, normalization, user interfaces, and administration.
PREREQS:
CS 261
|
CS 295 INTERMEDIATE WEB AUTHORING (4)
Designing, developing, publishing, and maintaining dynamic Web sites; Web security and privacy issues; emerging Web technologies.
PREREQS:
CS 195 or equivalent.
|
CS 311 OPERATING SYSTEMS I (4)
Introduction to operating systems using UNIX as the case study. System calls and utilities, fundamentals of processes and interprocess communication.
PREREQS:
CS 261 and (CS 271 or ECE 271)
and
CS 151
|
CS 312 LINUX SYSTEM ADMINISTRATION (4)
Introduction to LINUX system administration. Network administration and routing. Internet services. Security issues.
PREREQS:
CS 311
and
/or instructor approval.
|
CS 321 INTRODUCTION TO THEORY OF COMPUTATION (3)
Survey of models of computation including finite automata, formal grammars, and Turing machines.
PREREQS:
CS 261
|
CS 325 ANALYSIS OF ALGORITHMS (4)
Recurrence relations, combinatorics, recursive algorithms, proofs of correctness.
PREREQS:
CS 261 and MTH 232
|
CS 331 INTRODUCTION TO ARTIFICIAL INTELLIGENCE (4)
Fundamental concepts in artificial intelligence using the unifying theme of an intelligent agent. Topics include agent architectures, search, games, logic and reasoning, and Bayesian networks.
PREREQS:
CS 325
|
CS 352 INTRODUCTION TO USABILITY ENGINEERING (4)
Basic principles of usability engineering methods for the design and evaluation of software systems. Includes the study of human-machine interactions, user interface characteristics and design strategies, software evaluation methods, and related guidelines and standards.
PREREQS:
CS 161 or CS 295
|
CS 361 SOFTWARE ENGINEERING I (4)
Introduction to the "front end" of the software engineering lifecycle; requirements analysis and specification; design techniques; project management. (Writing Intensive Course)
|
CS 362 SOFTWARE ENGINEERING II (4)
Introduction to the "back end" of the software engineering lifecycle implementation; verification and validation; debugging; maintenance.
PREREQS:
CS 361
|
CS 372 INTRODUCTION TO COMPUTER NETWORKS (4)
Introduction to wired/wireless network principles, organization, topologies, hardware, applications, and protocols in the OSI hierarchy context. Configuration and implementation of local area networks and intranets. Internet protocols, packet forwarding, and routing. Lec/lab. CROSSLISTED as ECE 372.
PREREQS:
CS 261 and (ECE 271 or CS 271)
and
C programming and Unix familiarity.
|
CS 381 PROGRAMMING LANGUAGE FUNDAMENTALS (4)
An introduction to the concepts found in a variety of programming languages. Programming languages as tools for problem solving. A brief introduction to languages from a number of different paradigms.
PREREQS:
CS 261
|
CS 391 SOCIAL AND ETHICAL ISSUES IN COMPUTER SCIENCE (3)
In-depth exploration of the social, psychological, political, and ethical issues surrounding the computer industry and the evolving information society. (Bacc Core Course)
PREREQS:
CS 101 or computer literacy.
|
CS 391H SOCIAL AND ETHICAL ISSUES IN COMPUTER SCIENCE (3)
In-depth exploration of the social, psychological, political, and ethical issues surrounding the computer industry and the evolving information society. (Bacc Core Course)
PREREQS:
CS 101 or computer literacy and Honors College approval required.
|
CS 395 INTERACTIVE MULTIMEDIA (4)
Technological, aesthetic, and pedagogical issues of communication using interactive multimedia and hypermedia; techniques for authoring interactive multimedia projects using a variety of digital media tools.
PREREQS:
ART 120 and CS 101
|
CS 401 RESEARCH (1-16)
Graded P/N.
This course is repeatable for a maximum of 16 credits.
PREREQS:
Departmental approval required.
|
CS 403 THESIS (1-16)
PREREQS:
Departmental approval required.
|
CS 405 READING AND CONFERENCE (1-16)
This course is repeatable for a maximum of 16 credits.
PREREQS:
Departmental approval required.
|
CS 406 PROJECTS (1-16)
This course is repeatable for a maximum of 16 credits.
PREREQS:
Departmental approval required.
|
CS 407 SEMINAR (1-16)
This course is repeatable for a maximum of 16 credits.
|
CS 410 OCCUPATIONAL INTERNSHIP (1-15)
Graded P/N.
This course is repeatable for a maximum of 16 credits.
PREREQS:
Departmental approval required.
|
CS 411 OPERATING SYSTEMS II (4)
Principles of computer operating systems: concurrent processes, memory management, job scheduling, multiprocessing, file systems, performance evaluation, networking. Lec/rec.
PREREQS:
CS 311 and (CS 271 or ECE 375)
|
CS 419 SELECTED TOPICS IN COMPUTER SCIENCE (1-5)
Topics of special and current interest not covered in other courses. May be repeated for credit.
This course is repeatable for a maximum of 99 credits.
PREREQS:
Varies by class offering, senior standing in computer science.
|
CS 419H SELECTED TOPICS IN COMPUTER SCIENCE (1-5)
Topics of special and current interest not covered in other courses. May be repeated for credit.
This course is repeatable for a maximum of 99 credits.
PREREQS:
Honors College approval required.
|
CS 420 GRAPH THEORY WITH APPLICATIONS TO COMPUTER SCIENCE (3)
Directed and undirected graphs; paths, circuits, trees, coloring, planar graphs, partitioning; computer representation of graphs and graph algorithms; applications in software complexity metrics, program testing, and compiling.
PREREQS:
CS 325
and
MTH 232
|
CS 434 MACHINE LEARNING AND DATA MINING (4)
Introduction to machine learning and data mining algorithms (supervised learning, unsupervised learning, and reinforcement learning) tools that are widely employed in industrial and research settings.
PREREQS:
CS 325
|
CS 440 DATABASE MANAGEMENT SYSTEMS (4)
Relational database design, nomalization, file structures, disk storage, query processing and optimization, team development of database applications.
PREREQS:
CS 261 and CS 275
|
CS 450 INTRODUCTION TO COMPUTER GRAPHICS (4)
2-D and 3-D graphics APIs. Modeling transformations. Viewing specification and transformations. Projections. Shading. Texture mapping. Traditional animation concepts. 3-D production pipeline. Keyframing and kinematics. Procedural animation.
PREREQS:
MTH 254 or MTH 254H
|
CS 461 SENIOR SOFTWARE ENGINEERING PROJECT (2)
Utilize software engineering methodology in a team environment to develop a real-world application. Teams will be responsible for all phases of software development, including project planning, requirements analysis, design, coding, testing, configuration management, quality assurance, documentation, and delivery. Three-term sequence required.
PREREQS:
CS 361
|
CS 462 SENIOR SOFTWARE ENGINEERING PROJECT (2)
Utilize software engineering methodology in a team environment to develop a real-world application. Teams will be responsible for all phases of software development, including project planning, requirements analysis, design, coding, testing, configuration management, quality assurance, documentation, and delivery. Three-term sequence required.
PREREQS:
CS 361 and CS 362* and CS 461
|
CS 463 SENIOR SOFTWARE ENGINEERING PROJECT (2)
Utilize software engineering methodology in a team environment to develop a real-world application. Teams will be responsible for all phases of software development, including project planning, requirements analysis, design, coding, testing, configuration management, quality assurance, documentation, and delivery. Three-term sequence required.
PREREQS:
CS 361 and CS 362 and CS 462*
|
CS 472 COMPUTER ARCHITECTURE (4)
Computer architecture using processors, memories, and I/O devices as building blocks. Issues involved in the design of instruction set architecture, processor, pipelining and memory organization. Design philosophies and trade-offs involved in Reduced Instruction Set Computer (RISC) architectures. CROSSLISTED as ECE 472/ECE 572.
PREREQS:
ECE 375
|
CS 475 INTRODUCTION TO PARALLEL COMPUTING (4)
Theoretical and practical survey of parallel processing, including a discussion of parallel architectures, parallel programming language, and parallel algorithms. Programming one or more parallel computers in a higher-level parallel language.
PREREQS:
CS 325
|
CS 476 ADVANCED COMPUTER NETWORKING (4)
Advanced networking concepts: congestion control and avoidance, multimedia and QoS, queuing theory, buffer management, sceduling and fairness policies, wireless and mobile networks, service models, network security. CROSSLISTED as ECE 476/ECE 576.
PREREQS:
CS 372 or ECE 372
|
CS 480 TRANSLATORS (4)
An introduction to compilers; attribute grammars, syntax-directed translation, lex, yacc, LR(1) parsers, symbol tables, semantic analysis, and peep-hole optimization.
PREREQS:
CS 311 and CS 321
|
CS 495 INTERACTIVE MULTIMEDIA PROJECTS (4)
Students apply principles and procedures of digital art, design, communication, and software authoring while working on large integrated media projects.
PREREQS:
CS 395
|
CS 501 RESEARCH (1-16)
Graded P/N.
This course is repeatable for a maximum of 99 credits.
PREREQS:
Departmental approval required.
|
CS 503 CS MS THESIS (1-16)
This course is repeatable for a maximum of 99 credits.
PREREQS:
Instructor's consent required.
|
CS 505 READING AND CONFERENCE (1-16)
This course is repeatable for a maximum of 20 credits.
PREREQS:
Departmental approval required.
|
CS 506 PROJECTS (1-16)
Graded P/N.
This course is repeatable for a maximum of 99 credits.
PREREQS:
Departmental approval required.
|
CS 507 SEMINAR (1-16)
Graded P/N.
This course is repeatable for a maximum of 16 credits.
PREREQS:
Graduate standing.
|
CS 515 ALGORITHMS AND DATA STRUCTURES (4)
Introduction to computational complexity. Survey of data structures: linear lists, strings, trees, graphs. Representation and algorithms; analysis of searching and sorting algorithms; storage management.
PREREQS:
Graduate standing in computer science.
|
CS 516 THEORY OF COMPUTATION AND FORMAL LANGUAGES (4)
Models of computation. Universal machines. Unsolvable problems. Nondeterministic computation. Chomsky hierarchy: regular, context-free, context-sensitive and unrestrictive grammars; characterization, closure properties, algorithms, and limitations.
PREREQS:
Graduate standing in computer science.
|
CS 519 TOPICS IN COMPUTER SCIENCE (5)
Topics of special and current interest not covered in other courses. May be repeated for credit. May not be offered every year.
This course is repeatable for a maximum of 99 credits.
PREREQS:
Varies by class offering.
|
CS 520 GRAPH THEORY WITH APPLICATIONS TO COMPUTER SCIENCE (3)
Directed and undirected graphs; paths, circuits, trees, coloring, planar graphs, partitioning; computer representation of graphs and graph algorithms; applications in software complexity metrics, program testing, and compiling.
PREREQS:
CS 325 and MTH 232
|
CS 521 COMPUTABILITY (4)
Recursive functions. Turing machines. Undecidability. Relativized computation. Complexity classes.
PREREQS:
CS 516
|
CS 523 ANALYSIS OF ALGORITHMS (4)
Design and analysis techniques. Divide and conquer algorithms. Difference equations. Graph problems, matrix problems, fast transforms, and arithmetic algorithms.
PREREQS:
CS 515
|
CS 524 NP-COMPLETE AND HARDER PROBLEMS (4)
Complexity classes and reducibilities. NP-Complete problems, proof techniques, and heuristics, approximation algorithms. Provably hard problems. Hierarchies.
PREREQS:
CS 523
|
CS 527 ERROR-CORRECTING CODES (4)
Hamming codes, linear codes, cyclic codes, BCH and Reed-Solomon codes. Introduction to Galois fields. Encoding and decoding algorithms. Burst error correcting codes, asymmetric and unidirectional codes. Applications of codes for computer systems.
PREREQS:
CS 515 and MTH 341
|
CS 529 SELECTED TOPICS IN THEORETICAL COMPUTER SCIENCE (1-5)
Topics of interest in theory of computation, formal languages, or analysis of algorithms. Topics include: theory of parsing, finite state machines, complexity of computing, combinatorial optimization, bilinear algorithms. May be repeated for credit.
This course is repeatable for a maximum of 99 credits.
PREREQS:
CS 521 or CS 523
|
CS 531 ARTIFICIAL INTELLIGENCE (4)
Representation, reasoning, and learning with propositional representations. Propositional logic. Reasoning with propositional logic: backward chaining, Davis/Putnam, WalkSAT. Constraint satisfaction methods; Arc-consistency. Belief networks. Inference using the factoring algorithm. Propositional learning algorithms such as rules, decision trees, naive Bayes, perceptrons, neural networks. Bias-variance trade-off in parameter estimation. EM algorithm for belief networks with hidden variables.
PREREQS:
Graduate standing.
|
CS 532 ADVANCED ARTIFICIAL INTELLIGENCE (4)
Knowledge representation, reasoning, and learning with relational and first-order representations. First-order logic: proof theory, model theory, resolution refutation, Prolog-style resolution. Inductive logic programming. Complex belief networks: Hidden Markov models, Viterbi algorithm, Forward-backward algorithm. Learning HMMs with EM. Probabilistic relational models: exact and stochastic inference algorithms. Learning methods for probabilistic relational models.
PREREQS:
CS 531
|
CS 533 INTELLIGENT AGENTS AND DECISION MAKING (4)
Representations of agents, execution architectures. Planning: non-linear planning, graphplan, SATplan. Scheduling and resource management. Probabilistic agents. Dynamic belief networks. Dynamic programming (value iteration and policy iteration). Reinforcement learning: Prioritized sweeping, Q learning, value function approximation and SARSA (lamda), policy gradient methods.
PREREQS:
CS 531
|
CS 534 MACHINE LEARNING (4)
Continuous representations. Bias-variance tradeoff. Computational learning theory. Gaussian probabilistic models. Linear discriminants. Support vector machines. Neural networks. Ensemble methods. Feature extraction and dimensionality reduction methods. Factor analysis. Principle component analysis. Independent component analysis. Cost-sensitive learning.
PREREQS:
Graduate standing.
|
CS 535 CYBERNETICS (4)
Control and communication organisms and machines; neural nets, cellular autonata, L-systems, genetic algorithms.
PREREQS:
Graduate standing.
|
CS 539 SELECTED TOPICS IN ARTIFICIAL INTELLIGENCE (1-5)
Advanced topics in artificial intelligence. Typical topics include machine learning for sequential and spatial data, knowledge representation and inference, probabilistic modeling of complex systems, data mining and information extraction. May be repeated for credit.
This course is repeatable for a maximum of 12 credits.
PREREQS:
Instructor's approval required.
|
CS 540 DATABASE MANAGEMENT SYSTEMS (4)
Purpose of database systems, levels of data representation. Entity-relationship model. Relational systems: data definition, data manipulation, query language (SQL), relational calculus and algebra, data dependencies and normal forms. DBTG network model. Query optimization, recovery, concurrency control.
PREREQS:
CS 261 or graduate standing in computer science.
|
CS 549 SELECTED TOPICS IN INFORMATION-BASED SYSTEMS (1-5)
Current topics in information-based systems, e.g. information management for CAD, geographical information systems, distributed information systems, data models for complex applications. May be repeated for credit.
This course is repeatable for a maximum of 99 credits.
PREREQS:
CS 540
|
CS 550 INTRODUCTION TO COMPUTER GRAPHICS (4)
2-D and 3-D graphics APIs. Modeling transformations. Viewing specification and transformations. Projections. Shading. Texture mapping. Traditional animation concepts. 3-D production pipeline. Keyframing and kinematics. Procedural animation.
PREREQS:
MTH 254
|
CS 551 COMPUTER GRAPHICS (4)
3-D graphics hardware: Line and polygon scan conversion, modeling transformations, viewing transformations, matrix stacks, hierarchical models, perspective and orthographic projections, visible surface determination, illumination models, shading models, texture mapping, ray tracing.
PREREQS:
CS 450 or CS 550
|
CS 552 COMPUTER ANIMATION (4)
Traditional animation concepts: production pipeline, keyframing implementation, interpolation, point-mass dynamics, spring-mass systems, rigid body dynamics, forward and inverse kinematics, human motion control, motion capture.
PREREQS:
CS 551
|
CS 553 SCIENTIFIC VISUALIZATION (4)
Open GLUT, GLUT, and GLUT graphics APIs; hyperbolic projections; mapping scalar values to a variety of color spaces; color gamuts; data visualization using range sliders; scalar visualization; vector visualization; chromaDepth; interpolating splines; Delauney triangulation; magic lenses; volume visualization; texture mapping; terrain mapping; performance graphics programming.
PREREQS:
Prior experience with Unix or Windows, programming experience.
|
CS 554 GEOMETRIC MODELING IN COMPUTER GRAPHICS (4)
Advanced topics in computer graphics focusing on representation and processing of polygonal models and their application. Surface fundamentals; discrete differential geometry and topology; data structures for representing 3-D surfaces; surface subdivision and smoothing; mesh simplification and multi-resolution representation of 3-D surfaces; geometry compression; surface parameterization; geometry remeshing; topological simplification; implicit surfaces.
PREREQS:
CS 450
|
CS 555 SIGNAL AND IMAGE PROCESSING (4)
Fundamental aspects of signal and image processing including image acquisition and display, histograms, level-set and geometric operations, convolutions, Fourier transform, image filtering, sampling theory, image transforms, human vision, color, morphological operations, and image compression.
PREREQS:
Graduate standing and knowledge of C/C++.
|
CS 556 COMPUTER VISION (4)
Algorithm development for automatic interpretation of the three-dimensional world that is captured in a set of images; cameras and image formation; color; keypoint and edge detection; perceptual grouping; segmentation; shape representation; texture; object recognition; optical flow; motion estimation and tracking; and 3-D scene reconstruction from motion and stereo.
PREREQS:
Basic statistics, probability, calculus, linear algebra, good programming skills,
machine learning or AI (recommended).
|
CS 559 SELECTED TOPICS IN COMPUTER GRAPHICS AND VISION (1-5)
Advanced topics in graphics, animation, and vision. Topics include distribution ray tracing, global-illumination, radiosity, image-based modeling and rendering, vision-assisted image and video editing, 3-D vision, 3-D virtual environments, 3-D interaction, control for physical simulation, motion graphs, computational geometry, etc. May be repeated for credit.
This course is repeatable for a maximum of 12 credits.
PREREQS:
Instructor approval and graduate standing.
|
CS 561 SOFTWARE ENGINEERING (4)
Utilize software engineering methodology in a team environment to develop a real-world application. Teams will be responsible for all phases of software development, including project planning, requirements analysis, design, coding, testing, configuration management, quality assurance, documentation, and delivery. Two-term sequence required.
PREREQS:
CS 362
|
CS 562 APPLIED SOFTWARE ENGINEERING (4)
Application of software engineering methodology to the development of a complete software system.
PREREQS:
CS 561
|
CS 569 SELECTED TOPICS IN SOFTWARE ENGINEERING (1-5)
Topics include new programming methodologies, productivity, software development, software complexity metrics. May be repeated for credit.
This course is repeatable for a maximum of 99 credits.
PREREQS:
CS 561
|
CS 570 HIGH PERFORMANCE COMPUTER ARCHITECTURE (4)
Advanced concepts in computer architecture. Performance improvement employing advanced pipelining and multiple instruction scheduling techniques. Issues in memory hierarchy and management. CROSSLISTED as ECE 570.
PREREQS:
ECE 472 or ECE 572
|
CS 575 INTRODUCTION TO PARALLEL COMPUTING (4)
Theoretical and practical survey of parallel processing, including a discussion of parallel architecture, parallel programming language, and parallel algorithms. Programming one or more parallel computers in a higher-level parallel language.
PREREQS:
CS 325
|
CS 576 ADVANCED COMPUTER NETWORKING (4)
Advanced networking concepts: congestion control and avoidance, multimedia and QoS, queuing theory, buffer management, sceduling and fairness policies, wireless and mobile networks, service models, network security. CROSSLISTED as ECE 476/ECE 576.
PREREQS:
CS 372 or ECE 372
|
CS 579 TOPICS IN COMPUTER ARCHITECTURE AND PARALLEL PROCESSING (1-5)
Current topics in advanced computer architecture and parallel processing. May be repeated for credit.
This course is repeatable for a maximum of 99 credits.
PREREQS:
CS 575 or CS 572 or ECE 572
|
CS 581 PROGRAMMING LANGUAGES (4)
A study of the concepts of modern programming and paradigms.
PREREQS:
CS 381
|
CS 582 OBJECT-ORIENTED ANALYSIS AND PROGRAMMING (4)
Introduction to the elements of object-oriented analysis, design and programming techniques. Topics are introduced in a programming language-independent fashion. Topics covered include object-oriented design, classes, methods, inheritance, software reuse.
|
CS 583 FUNCTIONAL PROGRAMMING (4)
Introduction to advanced features of modern functional programming languages and to advanced functional programming techniques. Topics to be covered include monads, type and constructor classes, functional/persistent data structures, advanced topics in type systems, program analysis techniques, program transformation.
PREREQS:
CS 581
|
CS 584 HUMAN FACTORS PROGRAMMING LANGUAGES (4)
Principles and evaluation methods for designing and evaluating programming languages to emphasize human productivity. Overall goals are (a) to enable students to understand and apply these principles and methods, and (b) to introduce at least four programming languages that aim specifically at supporting human problem solving.
PREREQS:
Graduate standing in computer science or instructor approval required.
|
CS 589 SELECTED TOPICS IN PROGRAMMING LANGUAGES (1-5)
An in-depth examination of a specific topic of interest in programming language design and implementation. Example topics include object-oriented programming, parallel programming, compiler optimization, programming language semantics. May be repeated for credit.
This course is repeatable for a maximum of 99 credits.
|
CS 599 SPECIAL TOPICS (1-16)
This course is repeatable for a maximum of 16 credits.
|
CS 601 RESEARCH (1-16)
Graded P/N.
This course is repeatable for a maximum of 99 credits.
PREREQS:
Departmental approval required.
|
CS 603 CS PhD THESIS (1-16)
This course is repeatable for a maximum of 99 credits.
PREREQS:
Instructor's consent required.
|
CS 605 READING AND CONFERENCE (1-16)
This course is repeatable for a maximum of 16 credits.
PREREQS:
Departmental approval required.
|
CS 607 SEMINAR (1-16)
This course is repeatable for a maximum of 16 credits.
|