The University of Arizona 199395 General Catalog Catalog Home All UA Catalogs UA Home

Computer Science (C SC) GouldSimpson Building, Room 721 (520) 6216613 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 premajor 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 PreComputer Science as their major while completing the premajor requirements. All premajor units taken serve to fulfill existing major, minor, or general education requirements for the B.S. degree. The 30 units include five required premajor 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 premajor 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 premajor 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 400level computer science electives. The minor requirements total 21 units including MATH 124 or 125a, 125b, 243, and 3 upperdivision 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 400level computer science elective requirement. 115. Computer Science Principles (4) I II S Algorithms, programs and computers; problem analysis and structured program design in a highlevel 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 mediumsized 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 highlevel 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 199394 (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 upperdivision writing proficiency requirements. (See "WritingEmphasis 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, topdown 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. 472a472b. ContinuousSystem Simulation (33) I (Identical with ECE 472a472b) May be convened with 572a572b. 473. Automata, Grammars and Languages (3) I Finite automata, regular expressions, and their applications; contextfree grammars, pushdown automata, and their applications; Turing machines and undecidability; the Chomsky hierarchy. P, 344. (Identical with MATH 473) WritingEmphasis Course. P, satisfaction of the upperdivision writingproficiency requirement (see "WritingEmphasis Courses" in the Academic Policies and Graduation Requirements section of this catalog). 474a474b. ComputerAided Logic Design (33) I II (Identical with ECE 474a474b) May be convened with 574a574b. 475a475b. Mathematical Principles of Numerical Analysis (33) (Identical with MATH 475a475b) 479. Game Theory and Mathematical Programming (3) II 199394 (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 199394 (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. 521a521b. Advanced Systems Modeling and Simulation (33) (Identical with MIS 521a521b) 522. Principles of Concurrent Programming (3) II For a description of course topics, see 422. Graduatelevel 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. Graduatelevel 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. Graduatelevel requirements include more extensive and challenging programming assignments. P, 344, 430. May be convened with 433. 541a541b. ComputerAided Information Systems Analysis and Design (33) (Identical with MIS 541a541b) 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. Graduatelevel 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. Graduatelevel requirements include more extensive problem sets and different examinations. P, 344, 372, 430. May be convened with 460. 571a571b. Digital Systems Design (33) (Identical with ECE 571a 571b) 572a572b. ContinuousSystem Simulation (3) I (Identical with ECE 572a572b) May be convened with 472a472b. 573. Theory of Computation (3) II Chomsky hierarchy, undecidability; general recursive functions; recursion theory; computational complexity theory, NPcomplete and provably intractable problems. P, 473. (Identical with MATH 573) 574a574b. ComputerAided Logic Design (33) I II (Identical with ECE 574a574b) May be convened with 474a474b. 575a575b. Numerical Analysis (33) (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 199394 (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. RealTime 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 (13) [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
