Department of Computer Sciences

Undergraduates may not enroll in any computer sciences course more than twice without written permission of a departmental adviser. No student may enroll in any computer sciences course more than three times.

Unless otherwise stated in the description below, each class meets for three lecture hours a week for one semester.

Computer Sciences: C S

Lower-Division Courses

304P. Computer Science I.

Fundamental computer science concepts. Introduction to algorithms and their realization in Pascal. One and one-half lecture hours and two laboratory hours a week for one semester; additional individual laboratory work is required. Computer Sciences 304P and Electrical Engineering 312 may not both be counted; Computer Sciences 304P and 115L may not both be counted. May not be counted by students who have completed Computer Sciences 328. Prerequisite: A score of at least 480 on the SAT II: Mathematics Level I test (or of 460 if the student took the test before April 1, 1995), or three semester hours of mathematics with a grade of at least C.

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. Computer Sciences 304F and 105 (Topic: FORTRAN) may not both be counted. Prerequisite: Computer Sciences 315 with a grade of at least C and consent of instructor.

310. Computer Organization and Programming.

Basic computer organization; machine representation of instructions and data; machine language, assembly and macroassembly languages, assemblers and loaders. Three lecture hours and one laboratory hour a week for one semester. Prerequisite: Computer Sciences 315 with a grade of at least C.

315. Computer Science II.

Techniques for program development and debugging, simple data structures, internal searching and sorting, recursion, string processing. Three lecture hours and one laboratory hour a week for one semester. Prerequisite: Computer Sciences 304P with a grade of at least C, or credit for a course in a high-level programming language and registration for Computer Sciences 115L.

115L. A Brief Introduction to Pascal.

Introduction to Pascal; intended for students in Computer Sciences 315 who know a high-level language other than Pascal. Three lecture hours and one laboratory hour a week for the first six weeks of one semester. Computer Sciences 304P and 115L may not both be counted. Prerequisite: Credit for coursework in a high-level programming language and concurrent enrollment in Computer Sciences 315.

119S, 219S, 319S, 419S, 519S, 619S, 719S, 819S, 919S. 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.

Upper-Division Courses

328. Abstract Data Types.

Trees, graphs and graph algorithms, external sorting, hashing, dynamic storage allocation, file organizations. Three lecture hours and one laboratory hour a week for one semester. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, and Philosophy 313K.

129S, 229S, 329S, 429S, 529S, 629S, 729S, 829S, 929S. 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.

329W. Cooperative Computer Sciences.

This course covers the work period of computer sciences 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 the major requirement. The student's first registration must be on the pass/fail basis; the second must be on the letter-grade basis. Prerequisite: Computer Sciences 328 with a grade of at least C and consent of the computer sciences undergraduate adviser.

336. Analysis of Programs.

Proofs of program correctness and a survey of mathematical techniques useful in the analysis and verification of programs. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 315, Philosophy 313K, and Mathematics 408D.

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. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, 328, 336, Mathematics 408D, and Philosophy 313K; and credit or registration for Computer Sciences 105 (Topic: LISP).

345. Programming Languages.

Survey of significant features of existing programming languages, with emphasis on underlying concepts; structure of simple statements; algorithmic languages; list processing; string manipulation; simulation. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, 328, 336, Mathematics 408D, and Philosophy 313K.

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. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, 328, 336, Mathematics 408D, and Philosophy 313K.

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. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, 328, 336, Mathematics 408D, and Philosophy 313K.

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. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 105 (Topic: C++), 301 (or 410), 315, 328, 336, Electrical Engineering 316, Mathematics 408D, and Philosophy 313K.

353. Elements of the 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. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, 328, 336, Linguistics 340, Mathematics 408D, and Philosophy 313K.

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. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, 328, 336, 352, Mathematics 408D, 311 or 340L, and Philosophy 313K.

356. Computer Networks.

Introduction to computer networks, including common terminology, basic design issues, and types of networks and protocols. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, 328, 336, 352, Mathematics 408D, and Philosophy 313K.

357. Design and Analysis of 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. Computer Sciences 357 and 378 (Topic: Algorithms) may not both be counted. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, 328, 336, and Mathematics 408D.

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. Only one of the following may be counted: Computer Sciences 367, Mathematics 368K, Physics 329. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, 328, 336, Mathematics 408D, 311 or 340L, and Philosophy 313K.

369. Systems Modeling I.

Introduction to performance modeling, with emphasis on computer systems. Modeling methodology, queueing network models, simulation, analysis of results. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, 328, 336, Mathematics 408D, 362K, and Philosophy 313K.

370. Undergraduate Reading and Research.

Supervised study of selected problems in computer sciences, by individual arrangement with supervising instructor. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, 328, 336, Mathematics 408D, and Philosophy 313K; nine additional semester hours of upper-division computer sciences, with a grade of at least C in each course; and consent of supervising instructor and the undergraduate adviser.

372. Introduction to Operating Systems.

Basic concepts of operating systems: concurrent process management, virtual memory, file systems, scheduling, and protection. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, 328, 336, 352, Mathematics 408D, and Philosophy 313K.

373. Software Engineering.

Introduction to current knowledge, techniques, and theories in large software system design and development. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, 328, 336, Mathematics 408D, and Philosophy 313K.

375. Compilers.

Formal description of languages, lexical analysis, syntax analysis, syntax-directed translation, run-time system management, code generation, code optimization, compiler-building tools. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, 328, 336, Mathematics 408D, and Philosophy 313K. Computer Sciences 345 and Linguistics 340 are also recommended.

178, 378. Undergraduate Topics in Computer Sciences.

One or three lecture hours a week for one semester. May be repeated for credit when the topics vary. Prerequisite: The following courses, with a grade of at least C in each: Computer Sciences 304P, 310 (or 410), 315, 328, 336, Mathematics 408D, and Philosophy 313K; and consent of instructor and the undergraduate adviser.

379H. Computer Sciences Honors Course.

Directed reading, research, and/or projects in areas of computer sciences, 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. Prerequisite: Admission to the Computer Sciences Honors Program, Computer Sciences 372, and approval of the undergraduate adviser.


Go to the Table of Contents for
Courses in the College of Natural Sciences | Undergraduate Catalog |

Next Chapter | Undergraduate Catalog Home Page | Registrar's Home Page | UT Home Page


28 August 1996. Registrar's Web Team
Comments to rgcat@utxdp.dp.utexas.edu