The University of Arizona  1993-95 General Catalog

Catalog Home    All UA Catalogs    UA Home


 

Computer Science (C SC)
Gould-Simpson Building, Room 721
(520) 621-6613

Professors Gregory R. Andrews, Head, Ralph E. Griswold, Udi
Manber, Eugene W. Myers, Jr. 

Associate Professors Saumya K. Debray, Peter J. Downey, Stephen
R. Mahaney, Larry L. Peterson, Richard D. Schlichting, Richard T.
Snodgrass

Assistant Professors Mary L. Bailey, Sampath K. Kannan, Todd A.
Proebsting

Lecturer Beth Weiss

Computer science is the body of knowledge dealing with the
design, analysis, implementation, efficiency and application of
algorithmic processes that transform information. The
baccalaureate program prepares students for careers developing
computer applications and computer systems in science and
industry, and prepares students for graduate study in computing.

The department offers the following degree programs: Bachelor of
Science, Master of Science, and Doctor of Philosophy with a major
in computer science. For graduate admission and degree
requirements, consult the Graduate Catalog.

Admission to the major: Students must complete a minimum of 30
pre-major units, of which at least 3 are university credit in
courses for which computer science (C SC) is listed as the home-
department, before applying for admission to the major. Students
should declare Pre-Computer Science as their major while
completing the pre-major requirements. All pre-major units taken
serve to fulfill existing major, minor, or general education
requirements for the B.S. degree. The 30 units include five
required pre-major courses: 115, 227, MATH 124 or 125a, 125b; and
4 units of a department approved laboratory science (as of fall
1992 these include PTYS 106, PHYS 111a, PHYS 110, or CHEM 103a,
104a.) Students typically apply for the computer science major in
their sophomore year. Admission to the major will be selective
and competitive due to limited faculty and laboratory resources.
All students who have completed the pre-major may apply but only
the most qualified applicants will be admitted. Students who do
not have a cumulative GPA of at least 3.0 and grades of "B" or
better in all required pre-major courses are not likely to be
admitted. To receive a degree in computer science students must
be admitted to the program and complete at least 30 units of
their program as a fully admitted major.

The major: Students must complete the general education
requirements of the College of Arts and Sciences, along with
specified major and minor requirements. The major requirements
total 40 units including: 115, 227, 237, 342, 344, 372, 430, 445
or 473, 452 or 453, and nine units of 400-level computer science
electives. The minor requirements total 21 units including MATH
124 or 125a, 125b, 243, and 3 upper-division units of mathematics
electives. The balance of the minor units may be chosen from
mathematics (a mathematics minor) or from an approved computing-
related discipline (a split minor).

The minor in computer science requires a minimum of 20 units in
computer science. The student's major advisor approves the course
selection. Two options have been developed to provide a minor in
computer science. Option one (21 units) includes 115, 227, 237,
MATH 243, 342 and one of the following: 344, 372, 430, or ECE
369. Option two (20 units) includes 115, 227, MATH 243, 342, 344
and one of the following: 445 or 473.

Honors: The department participates in the Honors Program. All
honors students in computer science complete 6 units of 498H and
3 units of the 400-level computer science elective requirement.

115. Computer Science Principles (4) I II S Algorithms, programs
and computers; problem analysis and structured program design in
a high-level language; machine and systems organization, data
representation, program testing and verification. P, MATH 117R/S.

227. Program Design and Development (4) I II S Programming using
a language such as C. Several medium-sized projects will be
required, with emphasis on program design and implementation
techniques. P, 115, MATH 124 pr 125a.

237. Machine Organization (4) I S Introduction to digital
computers; elementary hardware concepts; machine operations and
instructions; assembly language concepts; programming in assembly
language. CR, 227.

331.* Database Management Systems (3) I II S (Identical with MIS
331)

342. Data Structures and Algorithms (3) I II S Mathematical
preliminaries; fundamental data structures and associated
algorithms, implementations and applications: stacks, queues,
trees, graphs, sorting, and searching. P, 227, MATH 243 or MATH
362. (Identical with MIS 342)

344. Foundations of Computing (3) II S Fundamental methods for
understanding, developing, verifying and analyzing algorithms:
predicate logic, induction, program verification, recurrences,
discrete probability, regular expressions. P, 227; MATH 243.
(Identical with MATH 344)

372. Comparative Programming Languages (3) I II S Introduction to
several major high-level programming languages and their
characteristics. Programming projects are required in at least
three languages. P, 237 or MIS 307 or ECE 274, 342. (Identical
with MIS 372)

402. Mathematical Logic (3) I 1993-94 (Identical with MATH 402)
May be convened with 502.

421.* Advanced Systems Modeling and Simulation (3) I (Identical
with MIS 421)

422. Principles of Concurrent Programming (3) II Fundamental
concepts of concurrent programming; synchronization mechanisms
based on shared variables and message passing; systematic
development of correct programs; paradigms for parallel and
distributed programming. P, 344, CR 452. May be convened with
522.

430. Case Studies in Software Design (3) I II S Techniques and
tools for program design and implementation, especially of large
programs. Specification, abstraction, verification, maintenance,
performance tuning. Includes substantial programming. P, 237 or
ECE 274; 342. May be convened with 530.

433. Computer Graphics (3) I Theory and practice of computer
graphics: 2D and 3D transformations, clipping, and viewing,
hierarchical modeling, computer graphics hardware, raster
graphics, input models, interaction techniques, and applications.
P, 344, 430. May be convened with 533.

443. Theory of Graphs and Networks (3) II (Identical with MATH
443) May be convened with 543.

445. Algorithms (3) II Mathematical preliminaries; using
induction to design algorithms; introduction to analysis of
algorithms; algorithms involving sequences and sets; graph
algorithms; advanced topics. P, 342, 344, MATH 362. Writing-
Emphasis Course. P, satisfaction of the upper-division writing-
proficiency requirements. (See "Writing-Emphasis Courses" in the
Academic Policies and Graduation Requirements section of this
catalog.)

450. String and List Processing (3) II Data representation,
pattern matching, programming techniques; applications. P, 344,
372, 430. May be convened with 550.

452. Principles of Operating Systems (4) II Concepts of modern
operating systems; concurrent processes; process synchronization
and communication; resource allocation; kernels; deadlock; memory
management; file systems. P, 430.

453. Compilers and Systems Software (4) I Basic concepts of
compilation and related systems software. Topics include lexical
analysis, top-down parsing, semantic analysis, code generation;
assemblers, loaders, linkers; debuggers. P, 344, 372, 430.

460. Database Systems (3) I Functions of a database system. Data
modeling and logical database design. Query languages and query
optimization. Efficient data storage and access. Concurrency
control and recovery. P, 344, 372, 430. May be convened with 560.

472a-472b. Continuous-System Simulation (3-3) I (Identical with
ECE 472a-472b) May be convened with 572a-572b.

473. Automata, Grammars and Languages (3) I Finite automata,
regular expressions, and their applications; context-free
grammars, pushdown automata, and their applications; Turing
machines and undecidability; the Chomsky hierarchy. P, 344.
(Identical with MATH 473) Writing-Emphasis Course. P,
satisfaction of the upper-division writing-proficiency
requirement (see "Writing-Emphasis Courses" in the Academic
Policies and Graduation Requirements section of this catalog).

474a-474b. Computer-Aided Logic Design (3-3) I II (Identical with
ECE 474a-474b) May be convened with 574a-574b.

475a-475b. Mathematical Principles of Numerical Analysis (3-3)
(Identical with MATH 475a-475b)

479. Game Theory and Mathematical Programming (3) II 1993-94
(Identical with MATH 479) May be convened with 579.

488. Computational Linguistics (3) I (Identical with LING 488)
May be convened with 588.

*Open only to students who meet the requirements for Advanced
Standing as specified in the College of Business and Public
Administration section of this catalog.

502. Mathematical Logic (3) I 1993-94 (Identical with MATH 502)
May be convened with 402.

520. Principles of Programming Languages (3) I Important
programming language concepts, including types, control and data
abstraction, denotational semantics, declarative and object-
oriented languages, implementation issues. P, 453.

521a-521b. Advanced Systems Modeling and Simulation (3-3)
(Identical with MIS 521a-521b)

522. Principles of Concurrent Programming (3) II For a
description of course topics, see 422. Graduate-level
requirements include more extensive problem sets and different
examinations. P, 344; CR, 452. May be convened with 422.

525. Principles of Computer Networking (3) II Theory and practice
of computer networks, emphasizing the principles underlying the
design of network software and the role of the communications
system in distributed computing. Topics include routing, flow and
congestion control, multicast, data representation and RPC. P,
452.

530. Case Studies in Software Design (3) I II For a description
of course topics, see 430. Graduate-level requirements include
additional and more challenging programming projects and
different examinations. P, 237 or ECE 274; 342. May be convened
with 430.

533. Computer Graphics (3) I For a description of course topics,
see 433. Graduate-level requirements include more extensive and
challenging programming assignments. P, 344, 430. May be convened
with 433.

541a-541b. Computer-Aided Information Systems Analysis and Design
(3-3) (Identical with MIS 541a-541b)

543. Theory of Graphs and Networks (3) II (Identical with MATH
543) May be convened with 443.

545. Design and Analysis of Algorithms (3) I Time, space
complexity; recurrences; algorithm design techniques; lower
bounds; graph, matrix, set algorithms; sorting; fast Fourier
transform; arithmetic complexity; intractable problems. P, 445,
473, MATH 362.

550. String and List Processing (3) II For a description of
course topics, see 450. Graduate-level requirements include more
extensive problem sets and different examinations. P, 344, 372,
430. May be convened with 450.

552. Advanced Operating Systems (3) I Operating system design,
implementation and modeling; deadlock and memory management
models; protection mechanisms; operating systems for parallel and
distributed systems. P, 452.

553. Principles of Compilation (3) II Detailed study of advanced
compilation: translator writing systems, attribute grammars, flow
analysis, optimization, register allocation, code generation,
compiling for modern architectures. P, 453, 473.

560. Database Systems (3) I For a description of course topics,
see 460. Graduate-level requirements include more extensive
problem sets and different examinations. P, 344, 372, 430. May be
convened with 460.

571a-571b. Digital Systems Design (3-3) (Identical with ECE 571a-
571b)

572a-572b. Continuous-System Simulation (3) I (Identical with ECE
572a-572b) May be convened with 472a-472b.

573. Theory of Computation (3) II Chomsky hierarchy,
undecidability; general recursive functions; recursion theory;
computational complexity theory, NP-complete and provably
intractable problems. P, 473. (Identical with MATH 573)

574a-574b. Computer-Aided Logic Design (3-3) I II (Identical with
ECE 574a-574b) May be convened with 474a-474b.

575a-575b. Numerical Analysis (3-3) (Identical with MATH 575a-
575b)

576. Computer Architecture (3) I Design of computers, including
instruction set design, processor implementation, pipelining,
memory hierarchy, vector processors, and parallel architectures.
Emphasis on hardware and software tradeoffs. P, 452, ECE 369.

578. Computational Methods of Algebra (3) II (Identical with MATH
578)

579. Game Theory and Mathematical Programming (3) II 1993-94
(Identical with MATH 579) May be convened with 479.

588. Computational Linguistics (3) I (Identical with LING 588)
May be convened with 488.

620. Advanced Topics in Programming Languages (3) [Rpt./12 units]
I Design, implementation, and compilation of programming
languages; specific topics to be determined by current literature
and faculty and student interest.

630. Advanced Topics in Software Systems (3) [Rpt./12 units] I
Problems in design and development of large systems of programs;
specific topics to be determined by current literature and
faculty and student interest.

645. Advanced Topics in Algorithm Analysis (3) [Rpt./12 units] II
Design and analysis of algorithms; specific topics to be
determined by current literature and faculty and student
interest.

652. Advanced Topics in Operating Systems (3) [Rpt./12 units] II
Operating system design, development, analysis, and performance;
specific topics to be determined by current literature and
faculty and student interest.

673. Real-Time Distributed Processing Systems (3) II (Identical
with ECE 673)

674. Test Generation for Automata (3) I (Identical with ECE 674)

696. Seminar
a. Current Computing Research (1-3) [Rpt./8] I II S

Counseling and Guidance

(See Family and Consumer Resources)

 


Catalog Home   All UA Catalogs   UA Home

Email catalog comments and suggestions to catalog@arizona.edu.

Page last updated:  April 30, 2002
Arizona Board of Regents All contents copyright.
General Catalog  http://catalog.arizona.edu/
The University of Arizona  Office of Curriculum and Registration