Department of Computer Science

Page 57-61
Jerry D. Esmay, Chairman

The growing utility of computers in research and education, as well as the increased impact of computers on our modern society, strongly implies that a knowledge of computers and their capabilities should be a part of the basic education of all students. The courses listed below are designed to provide the student with this knowledge and to prepare the student for a career in a field in which there is a growing need for trained personnel. The objective of the undergraduate curriculum in computer science is to develop professionally competent and broadly educated computer scientists who wish to pursue professional careers or graduate studies.

High School Preparation: In addition to general University admission requirements, pre-college preparation should have included four years of high school mathematics, to include algebra and trigonometry. Also recommended are physics and chemistry.

Admission Requirements

Admission to computer science courses varies according to course level and other departmental standards. However, students must have completed all prerequisite courses with a grade of at least a "C".

Lower-Division Courses

Most 100- and 200- level courses_-notable exceptions are CS 131, 132, 231 and 232_-are open on a first-come, first-served basis to all students who have the prerequisites. First preference for enrollment in CS 131, 132, 231, and 232 is given to students who have declared computer science as their major or minor.

Upper-Division Courses

Admission to 300-level or above courses requires successful completion of the prerequisites.

Major-Minor Status

Completed change of major forms along with college transcripts must be turned into the department when declaring computer science as a major or minor.

Special Degree Requirements

Refer to graduation requirements listed previously in the catalog. See index. A B.S. degree in computer science requires completion of the following requirements with at least a "C" in each course:

Computer Science. CS 131-132, CS 231-232, CS 331, CS 332, CS 335, CS 344, CS 346, CS 365, CS 481 and CS 488. Additionally, the student must complete the requirements of one of the emphases listed below.

Mathematics. Math 152-153, 221, 225, 325 and 341.

Writing/Communication. Students must take either For 220 or Chem 334. Students must also take Comm 111A or Comm 242.

Science. Students must take Phys 221 and 222, and must take two additional courses selected from the following list (two numbers separated by a / means that the second number is a lab for the first and the two together only count as one course for this requirement):

Astr 131N/134N, Astr 132N/135N
Biol 101N/102N, Biol 103N/104N, Biol 105N/107N
Chem 161N/164N, Chem 162N/165N, Chem 221/224
Phys 301, Phys 341
Psyc 260S, Psyc 320, Psyc 365S

Philosophy. Students must take Phil 210.

NOTE: 100-level CS courses other than CS 131-132 and 200-level CS courses other than CS 231-232 do not count toward the degree or emphasis requirements. However, they do count in the 47 credit limit in the major.

The following emphases are available:

Business Systems Emphasis

A student choosing this emphasis must complete CS 461-462, and three credits of CS electives from courses numbered 300 and above.

In addition, the student must complete Acct 201-202, and two of the following: Fin 322, Mgmt 341, or Mgmt 360.

Software Systems Emphasis

A student choosing this emphasis must complete CS 441-442 and three credits of CS electives selected from courses numbered 300 and above.

Combined Major in Computer Science-Physics

The purpose of the combined program is to provide a thorough background in both allied disciplines and to inculcate a deeper understanding of their goals and methods. A student must complete at most 60 credits in the two disciplines: 29 of these credits in physics courses and 29 of these credits in computer science courses.

The physics requirements are: 221-222, 301, 314-315, 341, and 371-372.
The computer science requirements are: 131-132, 231-232, 331, 332, 335, 475, and 477.
The mathematics requirements are: 152-153, 225, 251, 311, and 325. Beyond the required mathematics courses, the computer science department strongly recommends Math 341 and 471.

Also required is one course from Chem 334 or For 220. Moreover, the student must complete two semesters of foreign language at the University.

Each student plans a program in consultation with a computer science and a physics advisor.

Teacher Preparation in Computer Science

Minor Teaching Field of Computer Science: For an endorsement in the teaching field of Computer Science, a student must complete CS 131-132, 170, 231, 301-302, 331; BuEd 486; C&I 306; and Math 152-153, 225 and 241. Students also must gain admission to Teacher Education and Student Teaching and meet the requirements for certification as a secondary teacher (see School of Education section of this catalog.)

Suggested Course of Study

First Year

CS 131-132_Fundamentals of Computer Science I, II
Comm 111A_Introduction to Public Speaking
*Enex 101_Composition
Math 152-153_Calculus I, II
Phil 210_Introduction to Logic, Deduction
Electives and General Education

*Semester of enrollment depends on beginning letter of student's last name.

Second Year

CS 231-232_ComputerArchitecture and Assembly Language Programming I, II
CS 331_Data Structures
CS 335_Programming Languages
Math 225, 325_Discrete Math I, II
Phys 221-222_General Physics
Electives and General Education

Third Year**

CS 332-Algorithms
CS 344-Operating Systems
CS 346-Software Science
CS 365-Database Design & DBMS
Math 221-Linear Algebra
Math 341-Probability and Statistics
Science electives
Technical writing course
Electives and General Education

Fourth Year**

CS 481-Arch and Parallel Processing
CS 488-Comp Comm and Networks
CS emphasis courses and electives
Electives and General Education

**CS core courses at the 300- and 400-level may not always be offered in the sequence shown but should be offered every year.

Requirements for a Minor

To earn a minor in computer science the student must complete 25 CS credits including: CS 131-132, CS 202 or CS 203 or CS 204, CS 231-232, CS 331, and CS 335. The remaining credits must be selected from courses at the 300 level or above. The student must also complete Math 152-153, and Math 225.

Courses

U = for undergraduate credit only, UG = for undergraduate or graduate credit, G = for graduate credit. R after the credit indicates the course may be repeated for credit to the maximum indicated after the R.

U 101 Introduction to Programming 3 cr. Elementary programming techniques using the BASIC programming language. A wide range of primarily nonmathematical programs will be written by the student and run on a computer. (Two hours independent lab per week.)

U 111 Computer Literacy 3 cr. An introduction to computer terminology, organization and operation, and the social impact of computers. Includes hands-on exposure to microcomputers and time-sharing applications. (One hour scheduled lab, plus one hour minimum independent lab per week.)

U 131 Fundamentals of Computer Science I 4 cr. Coreq., Math 152 or consent of instr. Fundamental computer science concepts using the high level structured programming language, Ada. (One hour scheduled lab plus two hours independent lab per week.)

U 132 Fundamentals of Computer Science II 4 cr. Prereq., CS 131; coreq., Math 153 or consent of instr. Continuation of CS 131. Survey of computer science topics including recursion, algorithms, basic data structures, operating systems, artificial intelligence, graphics, user interfaces, and social and ethical implications of computing. (One hour scheduled lab plus two hours independent lab per week.)

U 170 Computer Applications 3 cr. Introduction to computer applications, including spreadsheet, word processing, and database programs. (One to three hours independent lab per week.)

U 180 Microcomputer Graphics Applications 3 cr. Prereq., CS 111 or CS 170 or consent of instr. An introductory survey of microcomputer graphics software applications. Includes hands-on experience with various software tools for generating graphics displays on personal computers.

U 195 Special Topics Variable cr. (R-6) Prereq., consent of instr. Experimental offerings of visiting professors, experimental offerings of new courses, or one-time offerings of current topics.

U 196 Independent Study Variable cr.(R-6) Prereq., consent of instr.

U 198 Cooperative Education Experience Variable cr. (R-12) Prereq., consent of department. Extended classroom experience which provides practical application of classroom learning during placements off campus. Prior approval must be obtained from the faculty supervisor and the Cooperative Education Office.

U 201 Special Programming Languages 3 cr. (R-open) Prereq., depends on specific language offered. Offered alternate years. Computer programming using a high-level programming language which is not taught in a regular language-specific course. Can be repeated by choosing different languages. (Two hours independent lab per week.)

U 202 COBOL Programming 3 cr. Prereq., CS 101 or 131 or 203 or consent of instr. COBOL programming in the business environment. Several programs will be written by the students. (Two hours independent lab per week.)

U 203 FORTRAN Programming 3 cr. Prereq., CS 101 or 131 or consent of instr. Computer programming using the FORTRAN programming language. Several programs will be written by the students. (Two hours independent lab per week.)

U 204 C Programming 3 cr. Prereq., CS 131 or 203 or consent of instr. Computer programming using the C programming language. Several programs will be written by the students. (Two hours independent lab per week.)

U 205 C++ Programming 3 cr. Prereq., CS 131 or 203 or 204 or consent of instr. Computer programming using the C++ programming language. Emphasis placed on object-oriented programming.

U 231 Computer Architecture and Assembly Language Programming I 3 cr. Prereq., CS 132 or consent of instr. Computer, processor, and memory components. Basic circuits, digital logic, and digital circuits. Binary number system, arithmetic, and representation of data. Instruction cycle, instruction set, and addressing modes. Machine language, assembly language, and assembly language programming. (One hour scheduled lab per week.)

U 232 Computer Architecture and Assembly Language Programming II 3 cr. Prereq., CS 231 or consent of instr. Continuation of 231. Processor architectures and alternative designs. Interrupt handling and external device interfacing. Inner-processor and inter-processor communication and concurrency. Advanced assembly language programming. Relation to compiled programming languages and run-time environments. (One hour scheduled lab per week.)

U 270 Advanced Computer Applications 3 cr. Prereq., CS 170 or consent of instructor. Advanced work in MS-DOS, MS Windows, WordPerfect, Quattro Pro, and dBASE. Development of proficiency in creative and critical thinking and in the problem-solving and analytical skills applicable to other software packages.

U 295 Special Topics Variable cr. (R-6) Prereq., consent of instr. Experimental offerings of visiting professors, experimental offerings of new courses, or one-time offerings of current topics.

U 296 Independent Study Variable cr. (R-6) Prereq., consent of instr.

U 298 Cooperative Education Experience Variable cr. (R-6) Prereq., consent of department. Extended classroom experience which provides practical application of classroom learning during placements off campus. Prior approval must be obtained from the faculty supervisor and the Cooperative Education Office.

U 301 Computer Science for Teachers I 2 cr. Prereq., junior standing or consent of instr. History of computers; current trends including several interfaces, graphics, languages, networking, telecomminications; future directions, including artificial intelligence and robotics; career opportunities; impact on society dealing with ethics. Credit not allowed toward a degree in computer science.

U 302 Computer Science for Teachers II 2 cr. Prereq., junior standing or consent of instr. Exploration of content studies and experience relevant to computer science curricula; competence in use of computers for classroom management; pedagogical uses of computers and software in instruction; resource material, evaluation and selection of hardware and software for school use. Credit not allowed toward a baccalaureate degree in computer science.

U 331 Data Structures 3 cr. Prereq., CS 132; coreq., Math 225 or consent of instr. Abstract data types, sorting and searching, linked lists, trees, hashing, file structures, and applications of data structures.

U 332 Algorithms 3 cr. Prereq., CS 331; coreq., Math 325; or consent of instr. Algorithm design, analysis, and correctness. Commonly used algorithms including searching and sorting, string search, dynamic programming, branch and bound, graph algorithms, and parallel algorithms. Introduction to NP-complete problems.

U 335 Theory of Programming Languages 3 cr. Prereq., CS 132. Concepts of programming languages. Comparative study of programming languages, analyzing their suitability for various applications. Languages may include LISP, Ada, C/C++, Prolog, and SmallTalk.

U 344 Operating Systems 3 cr. Prereq., CS 331 and Math 225, or consent of instr. Process and concurrent programming concepts. Job scheduling and resource management. Introduction to virtual memory, extended machine and file systems. Distributed and real time systems. Performance modeling and analysis. Existing operating systems comparison and analysis.

U 346 Software Science 3 cr. Prereq., CS 132. Software development lifecycle with particular emphasis on requirements analysis and system design. CASE tools, project management and cost estimation techniques.

UG 355 Introduction to Expert Systems 3 cr. Prereq., CS 111 or CS 170 or another computer course; or consent of instr. An overview of the application of expert-systems and artificial-intelligence techniques to a wide variety of problems. Strengths and limitations of expert systems. Includes hands-on experience with personal computer software for building expert systems. Credit not allowed toward an M.S. degree in computer science.

U 365 Database Design and Database Management Systems 3 cr. Prereq., CS 331 and Math 225, or consent of instr. Models and representations of data, relations, and files for fast retrieval by indexes, trees, and hashing. Introduction to relational, hierarchical, network, distributed database systems, and relevant query languages. Theory and techniques for design and implementation of relational database systems.

UG 394 Seminar Variable cr. (R-6) Prereq., consent of instr. Guidance in special work.

U 395 Special Topics Variable cr. (R-6) Prereq., junior standing. Experimental offerings of visiting professors, experimental offerings of new courses, or one-time offerings of current topics.

UG 396 Independent Study Variable cr. (R-6) Prereq., consent of instr.

U 397 Research Variable cr. (R-6) Prereq., consent of instr.

U 398 Cooperative Education Experience Variable cr. (R-15) Prereq., consent of department. Business or government internship. Prior approval must be obtained from faculty supervisor and the Cooperative Education Office. Only three credits applicable to computer science major or minor.

UG 415 Computers and Society 3 cr. Prereq., upper-division standing. Offered alternate years. The present and future role in, and effect on, society of computing and related technologies.

UG 438 Theory of Computation 3 cr. Prereq., CS 132 and Math 325. Offered alternate years. Automata, regular and context-free languages, Turing machines, computability, decidability.

UG 441 Advanced Programming I 3 cr. Prereq., CS 335, 344, 346. Applied systems programming, compiler writing, and operating systems development.

UG 442 Advanced Programming II 3 cr. Prereq., CS 441. Continuation of 441.

UG 446 Computer Graphics 3 cr. Prereq., CS 331 and Math 221 or consent of instr. Hardware and software elements of graphics systems. Basic computer graphics algorithms for transformations, clipping, windowing and polygon filing. Straight line, circle generation. Parametrical representations of curves and surfaces. Three-D viewing. Hidden line and surface removal, shading and color models.

UG 455 Artificial Intelligence I 3 cr. Prereq., CS 335 or consent of instr. Using the computer to solve problems that require intelligence. Representation of knowledge, search techniques, symbolic programming in LISP, expert systems.

UG 456 Artificial Intelligence II 3 cr. Prereq., CS 455. Continuation of 455. Topics may include logic programming, machine learning, natural language understanding, vision, planning, automated deduction, neural nets.

UG 461 Computerized Business Systems I 3 cr. Prereq., CS 346 and Acct 202, or consent of instr. Design and implementation of integrated computerized business systems using advanced data handling and programming techniques. Credit not allowed toward M.S. in computer science.

UG 462 Computerized Business Systems II 3 cr. Prereq., CS 461. Continuation of 461. Credit not allowed toward M.S. in computer science.

UG 475 Introduction to Numerical Methods 3 cr. Prereq., CS 131 or 203, and Math 221 or consent of instr. Offered alternate years. Computer representation of floating-point numbers, roundoff error, numerical solution of nonlinear equations, systems of linear equations, differential equations, integration, interpolation, and function approximation. Extensive use of the computer.

UG 477 Computer Simulation 3 cr. Prereq., CS 132, 335; Math 221 and Math 341, or consent of instr. Offered alternate years. The theory and principles governing computer simulation. Use of special-purpose simulation languages. Uses of a computer in modeling and simulation.

UG 481 Architectures and Parallel Processing 3 cr. Prereq., CS 232 and 344. Examination of processing components and modern processor architecture. Systems with implicit parallelism vs. parallel compiling vs. distributed computing. Examination of operating system support features and programming strategies.

UG 484 Embedded System Software 3 cr. Prereq., CS 344. Offered alternate years. Structure and requirements of embedded system software; special development environment, design and analysis techniques.

UG 488 Computer Communications and Networks 3 cr. Prereq., CS 132, 232, 331. Data transmission fundamentals. Open Systems Interconnection model, computer network protocols and example networks. Local area network protocols. Introduction to Integrated Services Digital Network (ISDN).

UG 494 Undergraduate Seminar Variable cr. (R-6) Prereq., consent of instr. Guidance in special work.

UG 495 Special Topics Variable cr. (R-6) Prereq., consent of instr. Experimental offerings of visiting professors, experimental offerings of new courses, or one-time offerings of current topics.

UG 496 Independent Study Variable cr. (R-6) Prereq., consent of instr.

UG 497 Research Variable cr. (R-6) Prereq., consent of instr.

U 498 Cooperative Education Experience Variable cr. (R-12) Prereq., consent of department. Business or government internship. Prior approval must be obtained from the faculty supervisor and the Cooperative Education Office. Only three credits of CS 398 and/or CS 498 applicable to computer science major or minor.

G 531 Design and Analysis of Algorithms 3 cr. Prereq., CS 332. Offered alternate years. Algorithm design, analysis, and correctness, with an emphasis on more advanced techniques than covered in CS 332. Design of algorithms by induction. Recurrences and their solutions. Parallel algorithms. Complexity theory: NP-hard and NP-complete problems. Approximation algorithms for intractible problems.

G 535 Advanced Programming Languages 3 cr. Prereq., CS 331, CS 335, and CS 344 or consent of instr. Offered alternate years. Data types and abstraction, exception handling, concurrency, object oriented programming, functional programming, logic programming and special language features for parallel processing.

G 536 Theory of Computer Science I 3 cr. Prereq., Math 325 or consent of instr. Offered alternate years. Formal models including finite automata, regular expressions, closure properties of regular sets, context free grammars, pushdown automata, closure properties of context free languages.

G 538 Theory of Computer Science II 3 cr. Prereq., CS 536 or consent of instr. Offered alternate years. Recursive and recursively enumerable languages, Turing machines, the universal Turing machine, undecidability, the Chomsky hierarchy, closure properties of families of languages, computational complexity theory, P and NP-complete problems, and oracles.

G 539 Formal Semantics and Specification 3 cr. Prereq., Math 325 or consent of instr. Offered alternate years. Formal specification of programs and abstract data types, proofs of correctness, and methods of defining programming language semantics.

G 541 Software Science I: Requirements and Specifications 3 cr. Prereq., Math 225; CS 331 and 335 or consent of instr. Offered alternate years. Requirements analysis, techniques for representing requirements, specification development techniques, and specification languages.

G 542 Software Science II: Design, Implementation and Testing 3 cr. Prereq., CS 541. Continuation of CS 541. The design process. Major design methods such as composite/structured design, data structure driven design, structured analysis, transfer of design to code, testing techniques, validation, verification, certification, and security.

G 544 Advanced Operating Systems 3 cr. Prereq., CS 344. Offered alternate years. Distributed operating systems, memory organization, protection, scheduling, concurrent programming, and parallel processing.

G 546 Advanced Computer Graphics 3 cr. Prereq., CS 446. Offered alternate years. Solid geometric modeling, shading, intensity, color, animation, and specialized hardware for graphics and image processing.

G 555 Applications in Artificial Intelligence 3 cr. (R-6) Course can be repeated for credit at the discretion of the instructor. Prereq., CS 455 or consent of instr. One AI application area will be investigated, such as natural language processing, expert systems, and knowledge acquisition. LISP experience is required.

G 565 Database Systems 3 cr. Prereq., CS 335, 344, 365 or consent of instr. Offered alternate years. Relational database theory, data models, user interfaces and query languages, security, and concurrency.

G 570 Management Information Systems 3 cr. Prereq., enrollment in the M.A.S. program. Computer-related topics of interest to today's managers. Information management; end user computing; MIS concepts; systems planning; development and implementation; managing computer resources; evaluation and acquisition of hardware and software. Credit not allowed toward M.S. degree in computer science.

G 571 Systems Analysis 3 cr. Prereq., enrollment in the M.A.S. program. Offered alternate years. Techniques for the analysis and design of business data processing and information systems. Information systems and the systems analyst; tools and techniques of systems analysis; information system development life cycle. Credit not allowed toward M.S. degree in computer science.

G 572 Requirements Analysis and Software Design 3 cr. Prereq., enrollment in the M.A.S. program. Offered alternate years. Methodology for specifying system requirements; Structured System Analysis (SSA) including data flow diagrams, process description, and the data dictionary; entity-relationship modeling; modern software design methodology; use of CASE tools to implement both methodologies. Credit not allowed toward M.S. degree in computer science.

G 573 Information Analysis 3 cr. Prereq., enrollment in the M.A.S. program. Offered alternate years. Techniques for analyzing information in support of executive decision making. Decision Support System (DSS) tools; Data Base Management Systems (DBMS); expert systems. Credit not allowed toward M.S. degree in computer science.

G 574 Business Telecommunications 3 cr. Prereq., enrollment in the M.A.S. program. Offered alternate years. Topics related to the transmission, receipt and storage of data. Computer and communication networks; types of telecommunications; hardware and software requirements. Credit not allowed toward M.S. degree in computer science.

G 580 Parallel Processing 3 cr. Prereq., CS 331, 335, and 344. Offered alternate years. Parallel processing architectures and programming languages.

G 594 Graduate Seminar Variable cr. (R-6) Prereq., consent of instr. Seminar on current research topics in computer science.

G 595 Special Topics Variable cr. (R-6) Prereq., consent of instr. Experimental offerings of visiting professors, experimental offerings of new courses, or one-time offerings of current topics.

G 596 Independent Study Variable cr. (R-6) Prereq., consent of instr.

G 597 Research Variable cr. (R-6) Prereq., consent of instr.

G 599 Thesis/Project Variable cr. (R-6) Prereq., consent of instr. Research for and preparation of the master thesis or professional paper.

Faculty

Professors

Robert P. Banaugh, Ph.D., University of California, 1962 (Emeritus)
Spencer L. Manlove, M.S., San Jose State University, 1959 (Emeritus)
James Ullrich, Ph.D., Southern Illinois University, 1969 (Emeritus)
Alden H. Wright, Ph.D., University of Wisconsin, 1969

Associate Professors

Jerry D. Esmay, M.S., University of Texas, El Paso, 1971 (Chairman)
Ray Ford, Ph.D., University of Pittsburgh, 1980
Ronald E. Wilson, Ph.D., University of Chicago, 1975
Youlu Zheng, Ph.D., Washington State University, 1987

Assistant Professors

Reine Hilton, M.S., The University of Montana, 1990 (Visiting)
Gene F. Schiedermayer, M.S., Southern Methodist University, 1971 (Emeritus)
Nicholas P. Wilde, Ph.D., University of Colorado, 1994

Instructor

Cheryl Hirstein, M.S., Illinois State University, 1970 (Visiting)

Lecturer/Research Lab Manager

Charlie McGuire, B.S., University of Iowa, 1986 (Visiting)
Richard Thompson, B.A., The University of Montana, 1992 (Visiting)


95-96 UM Undergraduate Catalog