Courses
On this page you will find descriptions of the courses that we offer. See the registrar's schedule of current and upcoming offerings (with times). Click here for our current plan for future offerings. Advanced undergraduates may also receive permission to take graduate courses.The course descriptions are taken from the 2010-2012 Undergraduate Catalog. For an explanation of how UT numbers courses, click here.
Lower-Division Courses | Upper-Division Courses
Lower-Division Courses
CS 301K Foundations of Logical Thought
Introductory logic in the context of computing; introduction to formal notations; basic proof techniques; sets, relations, and functions. Three lecture hours a week for one semester. Some sections also require one discussion hour a week; these are identified in the Course Schedule.
CS 302 Computer Fluency
An introduction to the fundamental concepts of computing: how computers work, what they can do, and how they can be used effectively. Some programming is required. Three lecture hours a week for one semester. Credit for CS 302 may not be earned after a student has received credit for CS 303E, 305J, 307, 312, 312H, 314, or 314H.
CS 303E Elements of Computers and Programming
Problem solving and fundamental algorithms for various applications in science and business and on the World Wide Web. Introductory programming in a modern object-oriented programming language. Three lecture hours a week for one semester. Only one of the following may be counted: CS 303E, 305, 312, or 312H . Credit for CS 303E may not be earned after a student has received credit for CS 307, 314, or 314H.
CS 105 Computer Programming
An introduction to programming in a particular computer language. Students design and implement programs. One lecture hour a week for one semester. May be repeated for credit when the languages vary.
Prerequisites: 307, 313E, 314, 314H, EE 322C, or EE 422C with a grade of at least C-.
CS 314 Data Structures
Data Structures. Second part of a two-part sequence in Java programming. Introduction to specifications, simple unity testing, and debugging; building and using canonical data structures; algorithm analysis and reasoning techniques such as assertions and invariants. Three lecture hours and one discussion hour a week for one semester. Only one of the following may be counted: Computer Science 307, 314, 314H. Only one of the following may be counted: Computer Science 314, 314H, 315, 315H.
Prerequisites: CS 312 or 312H with a grade of at least C-.
CS 108 Software Systems
Introduction to the use of a particular software system. Students build applications that exploit the system being studied. One lecture hour a week for one semester. May be repeated for credit when the topics vary. Offered on the pass/fail basis only.
Prerequisites: CS 307, 313E, 314, 314H, EE 322C, or EE 422C with a grade of at least C-.
CS 109 Topics in Computer Sciences
For each semester hour of credit earned, one lecture hour a week for one semester. May be repeated for credit when the topics vary. Some sections are offered on the pass/fail basis only; these are identified in the Course Schedule. Only one hour may be counted toward a degree in computer sciences.
Prerequisites: Varies with the topic and is given in the Course Schedule.
CS 310 Computer Organization and Programming
Basic computer organization; machine representation of instructions and data; hardware/software interface. Three lecture hours and one discussion hour a week for one semester. CS 310 and 310H may not both be counted.
Prerequisites: CS 307 with a grade of at least C-.
CS 310H Computer Organization and Programming: Honors
Basic computer organization; machine representation of instructions and data; hardware/software interface. Three lecture hours and one discussion hour a week for one semester. CS 310 and 310H may not both be counted.
Prerequisites: CS 315 or 315H with a grade of at least C-, and consent of the honors director.
CS 313E Elements of Software Design
Object-oriented design of software in a modern high-level language, using software library packages. Introduction to elementary data structures and complexity of algorithms. Three lecture hours a week for one semester. May not be counted toward a degree in computer sciences.
Prerequisites: CS 303E, 305J, 312, or 312H with a grade of at least C-.
CS 313H Logic, Sets, and Functions: Honors
Set, relations, functions, sentential and predicate logic, proof techniques, algorithms, and elementary metatheory. Introduction to analysis of algorithms and techniques for proving properties of programs. Three lecture hours and one discussion hour a week for one semester. Only one of the following may be counted: CS 313H, 313K, PHL 313, 313K, 313Q.
Prerequisites: Consent of the honors director.
CS 313K Logic, Sets, and Functions.
Propositional and predicate logic; proof techniques, including induction, sets, relations, and functions. Three lecture hours and one discussion hour a week for one semester. Only one of the following may be counted: CS 313H, 313K, PHL 313, 313K, 313Q.
Prerequisites: Credit or registration for M 408C, 408K, or 408N.
CS 315 Algorithms and Data Structures
Implementation of basic data structures, including stacks, queues, lists, priority queues, trees, binary search trees, graphs, and sets. Recursion. Efficient sorting and searching algorithms. Hashing. Multithreaded programs. Three lecture hours and one laboratory hour a week for one semester. CS 315 and 315H may not both be counted.
Prerequisites: CS 307 with a grade of at least C-, and credit or registration for CS 313K.
CS 315H Algorithms and Data Structures: Honors
Data types, data structures, algorithms, and programming; functions and recursion; abstraction and encapsulation. Correctness: specification, testing, proving. Introduction to analysis of algorithms. Implementation and use of basic data structures, including stacks, queues, lists, priority queues, trees, binary search trees, graphs, sets. Efficient sorting and searching algorithms. Hashing. Multithreaded programs. Three lecture hours and one discussion hour a week for one semester. CS 315 and 315H may not both be counted.
Prerequisites: Consent of the honors director.
CS 119S Topics in Computer Sciences
This course is used to record credit the student earns while enrolled at another institution in a program administered by the University's Study Abroad Office. Credit is recorded as assigned by the study abroad adviser in the Department of Computer Sciences. University credit is awarded for work in an exchange program; it may be counted as coursework taken in residence. Transfer credit is awarded for work in an affiliated studies program. May be repeated for credit when the topics vary.
CS 314H Data Structures Honors
Data Structures: Honors. Second part of a two-part sequence in Java programming. Introduction to specifications, simple unity testing, and debugging; building and using canonical data structures; algorithm analysis and reasoning techniques such as assertions and invariants. Three lecture hours and one discussion hour a week for one semester. Only one of the following may be counted: Computer Science 307, 314, 314H. Only one of the following may be counted: Computer Science 314, 314H, 315, 315H.
Prerequisites: CS 312 or 312H with a grade of at least C-, and consent of the honors director.
CS 312 Introduction to Programming
Restricted to computer science majors. CS 312 is the first part of a two-part sequence in Java programming. Includes the fundamental concepts of structured programming; procedures and data structures with a focus on problem solving strategies and implementation; introduction to concepts of informal specification, informal reasoning about program behavior, debugging, and ad hoc testing. Only one of the following courses may be counted: Computer Science 303E, 305J, 312, 312H. Credit for Computer Science 312 may not be earned after a student has received credit for Computer Science 314 or 314H.
Prerequisites: Credit with a grade of at least C- or registration for M 305G or a score of 70 on ALEKS placement examination.
CS 321H. Functional and Symbolic Programming: Honors.
Introduction to functional and symbolic programming and to the use of these concepts throughout computer science. Three lecture hours a week for one semester.
Prerequisites: Credit with a grade of at least C or registration for CS 337 or 337H, and consent of the honors director.
CS 323E Elements of Scientific Computing
Fundamentals of software issues related to scientific computing. Topics include floating-point computations, numerical computation errors, interpolation, integration, solution of linear systems of equations, optimization, and initial value problems of ordinary differential equations. Implementation of algorithms are investigated using MATLAB for matrix and vector computations. Examples are drawn from a variety of science and mathematics areas. Three lecture hours a week for one semester. May not be counted toward a degree in computer science. CS 323E and 323H may not both be counted.
Prerequisites: CS 303E or the equivalent; M 408C, 408K, or 408N; M 408D or 408M or 427L; and credit with a grade of at least C- or registration for M 341 or 340L.
CS 120N Topics in Computer Sciences for Nonmajors
For each semester hour of credit earned, one lecture hour a week for one semester. May be repeated for credit when the topics vary. May not be counted toward a degree in computer science.
Prerequisites: Varies with the topic and is given in the Course Schedule
CS 323H Elements of Scientific Computing: Honors
Fundamentals of software issues related to scientific computing. Topics include floating-point computations, numerical computation errors, interpolation, integration, solution of linear systems of equations, optimization, and initial value problems of ordinary differential equations. Implementation of algorithms are investigated using MATLAB for matrix and vector computations. Examples are drawn from a variety of science and mathematics areas. Three lecture hours a week for one semester. May not be counted toward a degree in computer science. CS 323E and 323H may not both be counted.
Prerequisites: CS 303E or the equivalent; M 408C, 408K, or 408N; M 408D, 408M, or 427L; credit with a grade of at least C- or registration for M 341 or 340L; and consent of the honors director.
CS 324E Elements of Graphics and Visualization
Basics of two- and three-dimensional computer graphics systems, modeling and rendering, and selected graphics software APIs. Other topics may include interactive graphics, animation, graphical user interfaces, and the graphical presentation of information. Three lecture hours a week for one semester. May not be counted toward a degree in computer science.
Prerequisites: CS 307, 313E, 314, 314H, EE 322C, or EE 422C with a grade of at least C-.
CS 326E Elements of Networking
Introduction to the principles and basic concepts of the Internet. Networking applications and protocols. Simple client/server applications. Other topics may include network technologies and topologies, packet and circuit switching, LANS and WANS, Internet security, and network management. Three lecture hours a week for one semester. May not be counted toward a degree in computer science.
Prerequisites: CS 307, 313E, 314, 314H, EE 322C, or EE 422C with a grade of at least C-.
CS 327E Elements of Databases
A practical introduction to database management systems, with discussion of database administration and management. Survey of logical modeling, database design with a focus on relational databases, SQL query language, and current applications. Topics may include data integrity, performance, concurrency, transaction processing, recovery, security, and Web applications. May not be counted toward a degree in computer science.
Prerequisites: CS 307, 313E, 314, 314H, EE 322C, or EE 422C with a grade of at least C-.
CS 129S Topics in Computer Sciences
This course is used to record credit the student earns while enrolled at another institution in a program administered by the University's Study Abroad Office. Credit is recorded as assigned by the study abroad adviser in the Department of Computer Sciences. University credit is awarded for work in an exchange program; it may be counted as coursework taken in residence. Transfer credit is awarded for work in an affiliated studies program. May be repeated for credit when the topics vary.
CS 329W Cooperative Computer Sciences
This course covers the work period of computer science students in the Cooperative Education program, which provides supervised work experience by arrangement with the employer and the supervising instructor. Forty laboratory hours a week for one semester. The student must repeat the course each work period and must take it twice to receive credit toward the degree; at least one of these registrations must be during a long-session semester. However, no more than three semester hours may be counted toward major requirements. The student's first registration must be on the pass/fail basis; the second must be on the letter-grade basis.
Prerequisites: CS 336 or 336H with a grade of at least C-, and consent of the undergraduate adviser.
CS 234 Technical Writing
Application of techniques and strategies of effective technical writing, and of conventions used in documents such as letters, memos, proposals, abstracts, and reports. Two lecture hours a week for one semester. CS 234 and 178 (Topic: Technical Writing) may not both be counted. May not be counted toward the number of hours in computer science required for the Bachelor of Science in Computer Science degree.
Prerequisites: CS 310 or 310H with a grade of at least C-.
CS 336 Analysis of Programs
Proofs of program correctness and a survey of mathematical techniques useful in the analysis and verification of programs. Three lecture hours a week for one semester. CS 336 and 336H may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 313H or 313K; 314, 314H, 315 or 315H; and M 408C, 408L, or 408S.
CS 336H Analysis of Programs: Honors
A survey of mathematical techniques useful in the analysis and verification of programs. Three lecture hours a week for one semester. CS 336 and 336H may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 313H or 313K; 314, 314H, 315 or 315H; and M 408C, 408L, or 408S; and consent of the honors director.
CS 337 Theory in Programming Practice
Application of program-analysis theory to program design. Methodologies for large-scale program design. Designed to help students bring together theoretical and programming skills. Three lecture hours and one discussion hour a week for one semester. CS 337 and 337H may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 314, 314H, 315, or 315H; CS 336 or 336H; and M 408C, 408L, or 408S.
CS 337H Theory in Programming Practice: Honors
Application of program-analysis theory to program design. Methodologies for large-scale program design. Designed to help students bring together theoretical and programming skills. Three lecture hours and one discussion hour a week for one semester. CS 337 and 337H may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 314, 314H, 315 or 315H; CS 336 or 336H; and M 408C, 408L, or 408S; and consent of the honors director.
CS 341 Automata Theory
Introduction to the formal study of automata and of related formal languages with applications in computer science. Three lecture hours a week for one semester. Only one of the following may be counted: CS 341, 341H, LIN 340.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; CS 337 or 337H; and M 408D, 408M, or 427L.
CS 341H Automata Theory: Honors
Introduction to the formal study of automata and of related formal languages with applications in computer science. Three lecture hours and one discussion hour a week for one semester. Only one of the following may be counted: CS 341, 341H, LIN 340.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; CS 337 or 337H; and M 408D, 408M or 427L; and consent of the honors director.
CS 342 Neural Networks
Biological information processing; architectures and algorithms for supervised learning, self-organization, reinforcement learning, and neuro-evolution; hardware implementations and simulators; applications in engineering, artificial intelligence, and cognitive science. Three lecture hours a week for one semester.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L.
CS 343 Artificial Intelligence
A survey of current artificial intelligence issues, including search, production systems, knowledge representation, knowledge-based systems, planning, natural language processing, and machine learning. Artificial intelligence programming projects are required. Three lecture hours a week for one semester.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L.
CS 344M Autonomous Multiagent Systems
Introduction to autonomous agents, with an emphasis on multiagent systems. Students use a robotics simulator. Emphasis on computer science research activities, including speaking, writing, programming, and working in groups. Three lecture hours a week for one semester. CS 344M and 378 (Topic: Autonomous Multiagent Systems) may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L.
CS 344R Robotics
A survey of methods and techniques important for intelligent robotics. Students work in teams, applying these methods to get intelligent behavior from physical robots. Three lecture hours a week for one semester. CS 344R and 378 (Topic: Robotics) may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L.
CS 345 Programming Languages
Survey of significant concepts underlying modern programming languages, including syntax, functions, expressions, types, polymorphism, assignment, procedures, pointers, encapsulation, classes, and inheritance, with some discussion of implementation issues. Prominent programming paradigms, such as sequential, concurrent, object-oriented, functional, and logic programming. Illustrative examples drawn from a variety of current languages. Three lecture hours a week for one semester. CS 345 and 345H may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L.
CS 345H Programming Languages: Honors
Survey of significant concepts underlying modern programming languages, including syntax, functions, expressions, types, polymorphism, assignment, procedures, pointers, encapsulation, classes, and inheritance, with some discussion of implementation issues. Prominent programming paradigms, such as sequential, concurrent, object-oriented, functional, and logic programming. Illustrative examples drawn from a variety of current languages. Three lecture hours a week for one semester. CS 345 and 345H may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L; and consent of the honors director.
CS 346 Cryptography
A theoretical introduction to cryptography. Topics include private key cryptosystems, public key cryptosystems, digital signatures, secret sharing schemes, and the necessary mathematical background. Three lecture hours a week for one semester. CS 346 and 378 (Topic: Cryptography) may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; CS 337 or 337H; and M 408D, 408M, or 427L.
CS 347 Data Management
Concepts of database design and database system implementation. Data models, query processing, database design theory, crash recovery, concurrent control, and distributed databases. Three lecture hours a week for one semester.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M or 427L.
CS 349 Contemporary Issues in Computer Science
Social, professional, and ethical issues involved in the use of computer technology. Topics may include software engineering ethics, computer safety and reliability, constitutional issues, intellectual property, computer crime, societal impact, emerging technologies, philosophical issues. Three lecture hours a week for one semester. CS 349 and 378 (Topic: Contemporary Issues in Computer Science) may not both be counted.
Prerequisites: CS 336 or 336H with a grade of at least C-.
CS 351 LISP and Symbolic Computation
Symbolic computation for artificial intelligence, such as pattern-matching, unification, frames, flavors, semantic networks, deductive retrieval, rule-based and constraint-based inference. Substantial programming projects in LISP. Three lecture hours a week for one semester.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L.
CS 352 Computer Systems Architecture
Computer architecture and organizational issues; structural and behavioral characteristics of system components. Processor, memory hierarchy, and input/output issues. Evaluation of design alternatives. The relationship between hardware and software. Three lecture hours a week for one semester. CS 352 and 352H may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 310 or 310H; CS 336 or 336H; EE 316; and M 408D, 408M, or 427L.
CS 352H Computer Systems Architecture: Honors
Computer architecture and organizational issues; structural and behavioral characteristics of system components. Processor, memory hierarchy, and input/output issues. Evaluation of design alternatives. The relationship between hardware and software. CS 352 and 352H may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 310 or 310H; CS 336 or 336H; EE 316; and M 408D, 408M or 427L; and consent of the honors director.
CS 353 Theory of Computation
A survey of the theoretical bases of computation: computational complexity (including the classes P and NP) and formal models of the semantics of programming languages. Three lecture hours a week for one semester.
Prerequisites: CS 341 or 341H with a grade of at least C-.
CS 354 Computer Graphics
Introduction to techniques for human-machine communication through imagery. Topics include display hardware, transformations, interactive techniques, geometric modeling, two- and three-dimensional display algorithms, graphics software systems architecture, and hidden-line and surface elimination. Projects are assigned and in-depth exploration is encouraged. Three lecture hours a week for one semester.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; M 408D, 408M, or 427L; and M 340L or 341.
CS 356 Computer Networks
Introduction to computer networks, including common terminology, basic design issues, and types of networks and protocols. Three lecture hours a week for one semester.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L; and credit with a grade of at least C- or registration for CS 352, 352H, 439, or 439H.
CS 357 Algorithms
Algorithmic paradigms: divide and conquer, greedy algorithms, dynamic programming, branch and bound. NP-completeness and topics selected from the following: cryptography algorithms, approximation algorithms, randomized algorithms, parallel algorithms, lower bounds. Three lecture hours a week for one semester. CS 357 and 357H may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; CS 337 or 337H; and M 408D, 408M or 427L.
CS 357H Algorithms: Honors
Algorithmic paradigms: divide and conquer, greedy algorithms, dynamic programming, branch and bound. NP-completeness and topics selected from the following: cryptography algorithms, parallel algorithms, lower bounds. Three lecture hours a week for one semester. CS 357 and 357H may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; CS 337 or 337H; and M 408D, 408M, or 427L; and consent of the honors director.
CS 361 Introduction to Computer Security
Computer security, both in the abstract and in the context of real systems, including recognizing potential threats to confidentiality, integrity and availability, and developing familiarity with current security-related issues in computer science. Three lecture hours a week for one semester. CS 361 and 378 (Topic: Introduction to Security) may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L.
CS 367 Numerical Methods
Topics include systems of linear equations, numerical integration, ordinary differential equations, and nonlinear equations. Construction and use of large numerical systems. Influence of data representation and computer architecture on algorithm choice and development. Three lecture hours a week for one semester. Only one of the following may be counted: CS 367, M 368K, PHY 329.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; M 408D, 408M, or 427L; and M 340L or 341.
CS 369 Systems Modeling I
Introduction to performance modeling, with emphasis on computer systems. Modeling methodology, queueing network models, simulation, analysis of results. Three lecture hours a week for one semester.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, 429H; CS 336 or 336H; and M 362K.
CS 370 Undergraduate Reading and Research
Supervised study of selected problems in computer science, by individual arrangement with supervising instructor. The equivalent of three lecture hours a week for one semester. No more than three semester hours may be counted toward a degree in computer science.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L; and consent of the undergraduate adviser.
CS 371D Distributed Computing
Models, principles, and fundamental protocols, including event ordering and global predicate detection, atomic commit, state-machine replication, rollback recovery, primary backup, consensus for synchronous and asynchronous systems, and byzantine fault-tolerance. Three lecture hours a week for one semester.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; CS 372, 372H, 439, or 439H; and M 408D, 408M, or 427L.
CS 371P Object-Oriented Programming
Programming using class derivation, inheritance, and dynamic polymorphism. Application of a simple object-oriented design methodology to several software development problems. Three lecture hours a week for one semester. CS 371P and 378 (Topic: Object-Oriented Design and Programming) may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; CS 337 or 337H; and M 408D, 408M, or 427L.
CS 371R Information Retrieval and Web Search
Introduction to traditional and recent methodologies for indexing, processing, querying, and classifying unstructured and semistructured textual data, including hypertext and World-Wide Web documents. Three lecture hours a week for one semester. CS 371R and 378 (Topic: Intelligent Information Retrieval and Web Search ) may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L.
CS 371S Object-Oriented Software Engineering
Object-oriented formulations of software systems as executable specifications, object-oriented analysis, design of software architectures, translation of high-level specification systems. Three lecture hours a week for one semester. CS 371S and 378 (Topic: Object-Oriented Software Engineering) may not both be counted.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L.
CS 372 Introduction to Operating Systems
Basic concepts of operating systems: concurrent process management, virtual memory, file systems, scheduling, and protection. Three lecture hours a week for one semester. CS 372 and 372H may not both be counted.
Prerequisites: CS 337 or 337H, and 352 or 352H with a grade of at least C- in each.
CS 372H Introduction to Operating Systems: Honors
Basic concepts of operating systems: concurrent process management, virtual memory, file systems, scheduling, and protection. Three lecture hours a week for one semester. CS 372 and 372H may not both be counted.
Prerequisites: CS 337 or 337H, and 352 or 352H with a grade of at least C- in each; and consent of the honors director.
CS 373 Software Engineering
Introduction to current knowledge, techniques, and theories in large software system design and development. Three lecture hours a week for one semester.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L.
CS 375 Compilers
Formal description of languages, lexical analysis, syntax analysis, syntax-directed translation, run-time system management, code generation, code optimization, compiler-building tools. Three lecture hours a week for one semester.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L. CS 341 or 341H and 345 or 345H are recommended.
CS 377 Principles and Applications of Parallel Programming
Models of parallel computation, fundamental concepts for representation of parallel computation structures, study of representative parallel programming systems, programming of parallel algorithms and computations. Three lecture hours a week for one semester.
Prerequisites: CS 345 or 345H with a grade of at least C-.
CS 178 Undergraduate Topics in Computer Sciences
One lecture hour a week for one semester. May be repeated for credit when the topics vary. Only one of the following may be counted unless the topics vary: CS 178, 378, 178H, 378H.
Prerequisites: Upper-division standing. Additional prerequisites vary with the topic and are given in the Course Schedule.
CS 178H Undergraduate Topics in Computer Sciences: Honors
One or three lecture hours a week for one semester. May be repeated for credit when the topics vary. Only one of the following may be counted unless the topics vary: CS 178, 378, 178H, 378H.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L; and consent of the honors director.
CS 379H Computer Sciences Honors Thesis
Directed reading, research, and/or projects in areas of computer science, under supervision of a faculty member, leading to an honors thesis. The thesis must be approved by a committee of three readers. The equivalent of three lecture hours a week for one semester, by arrangement with a faculty member.
Prerequisites: The following courses with a grade of at least C- in each: CS 310, 310H, 429, or 429H; CS 336 or 336H; and M 408D, 408M, or 427L; nine additional semester hours of upper-division coursework in computer science; and consent of the student's research supervisor and the departmental honors advisor.
CS 429 Computer Organization & Architecture
Restricted to computer science majors. An introduction to low-level computer design ranging from the basics of digital design to the hardware/software interface for application programs. Includes basic systems principles of pipelining and caching, and requires writing and understanding programs at multiple levels. Only one of the following may be counted: Computer Science 310, 310H, 429, 429H, 352, 352H.
Prerequisites: Computer Science 314 or 314H with a grade of at least C-.
CS 439 Principles of Computer Systems
An introduction to low-level software abstractions with an emphasis on the connection of these abstractions to underlying computer hardware. Key abstractions include threads, dynamic memory allocation, protection, and IO. Requires writing of synchronized multithreaded programs.
Prerequisites: CS 429 or 429H with a grade of at least C-.
CS 378 Undergraduate Topics in Computer Science
Undergraduate Topics in Computer Science. Three lecture hours a week for one semester. May be repeated for credit when the topics vary. Only one of the following may be counted unless the topics vary: Computer Science 178, 378, 178H, 378H.
Prerequisites: Upper-division standing. Additional prerequisites vary with the topic and are given in the Course Schedule.
- About Us
- Research
- Faculty
- Awards & Honors
- Undergraduate Program
- CS Degrees
- For Non-CS majors
- Courses
- Advising
- Undergraduate Research
- Honors Programs
- Interdisciplinary Study & Certificate Programs
- Study Abroad
- Jobs & Internships
- Scholarships
- Prospective Students
- Why Study CS?
- Where to Study Computing at UT
- K - 12: Get Started Now
- Apply to CS from High School
- Apply to Turing Scholars from High School
- Freshman Research Initiative
- Transfer to UT CS from Another University
- Transfer to CS from Another UT Major
- Apply for Admission to CS from Entry-Level CS
- Schedule a Visit
- Student Life & Organizations
- Demographics
- Alumni
- Forms
- Code of Conduct
- Graduate Program
- Giving & Collaboration
- Careers
- Outreach
- Alumni
- UTCS Direct
