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