Course Catalog 2005-2006

College of Arts and Sciences

Department of Computer Science

Alden Wright, 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 teach theory and to develop professionally competent, broadly educated computer scientists who wish to pursue professional careers or graduate studies.

The B.S. program is accredited by the Computing Accreditation Commission (CAC) of the Accreditation Board for Engineering and Technology, Inc. (ABET), a specialized accrediting body; its curriculum, therefore, is similar to those of other recognized computer science programs. For more information access www homepage: http://www.cs.umt.edu or email the chairman at wright@cs.umt.edu.

High School Preparation: In addition to general University admission requirements, pre-college preparation should include as many computer science courses as possible, and four years of high school mathematics, to include algebra, trigonometry and pre-calculus. 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 are open on a first-come, first-served basis to all students who have the prerequisites. Students taking computer science courses to satisfy a general education symbolic system sequence should normally take CS 101-131 or CS 131-132.

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.

Bachelor of Science degree with a major in Computer Science

A B.S. degree in computer science requires completion of the following requirements with at least a "C-" in each course (2.00 grade point average required):

Computer Science. CS 121, CS 131-132, CS 241, CS 242, CS 281, CS 332, CS 344, CS 346, CS 365, CS 415E, CS 441 and CS 488. Additionally, the student must compete the requirements of one of the options listed below.

Mathematics. MATH 152-153, 221or 325, 225, and 341.

Writing/Communication. Students must take FOR 220. Students must also take COMM 111A or COMM 242.

Science. Students must take one of the sequences BIOL 108N-109N, 110N; CHEM 161N, 162N; or PHYS 221N and 222N. Students also 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):

NOTE: 100-level CS courses other than CS 121, CS 131-132 and 200-level CS courses other than CS 241-242 and CS 281 do not count toward the degree or option requirements. However, they do count in the 60 credit limit in the major.

Upper-division Writing Expectation. The Upper-division Writing Expectation for computer science majors is CS415E.

The following options are available:

Scientific Applications Option

A student choosing this option must complete CS 471, CS 486, and six additional credits of CS electives selected from courses numbered 300 or above.

In addition, the student must complete MATH 251 and 17 credits in a single physical/biological/social science discipline of his or her choice. These courses must be selected in consultation with a CS advisor. Three of the above 17 credits must be independent study credits in either the selected scientific discipline or computer science, arranged in joint consultation with a CS faculty and a faculty member from the scientific discipline.

Software Systems Option

A student choosing this option must complete CS 442 and nine credits of CS electives selected from courses numbered 300 and above.

Bachelor of Science degree with a combined major in Computer Science-Mathematical Sciences

The purpose for 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 60 credits in the two disciplines: 30 of these credits in computer science courses and 30 of these credits in mathematical sciences courses. A minimum grade of "C-" and a 2.0 grade point average is required in all courses which follow:

The computer science requirements are: 121, 131-132, 241-242, 281, 332, and nine credits of CS electives selected from courses numbered 300 and above. A total of at most three of the nine credits of CS electives may be in CS 398 or 498.

The mathematical sciences requirements are: 152-153, 221, 251, 305 (or 225), and twelve credits of 3- or 4-credit MATH electives selected from courses numbered above 305 (not including courses numbered 390-399 and 490-499).

The combined nine additional credits of computer science electives and twelve additional credits of mathematical sciences electives must include at least three 3- or 4-credit courses numbered 400 or above, with at least one chosen from each department (not including MATH 406, 444, and 445).

Other requirements are: One of the sequences BIOL 108N-109N, 110N; or CHEM 161N, 162N; or PHYS 221N-222N. In addition, FOR 220, and either COMM 111A or COMM 242.

Each student plans a program in consultation with a computer science and a mathematical sciences advisor. Students planning to attend graduate school in computer science or the mathematical sciences should consult with their respective advisors.

Suggested Curricula:

Applied Math-Scientific Programming: MATH 311, 412, 414, and one course chosen from MATH 341, 351, 451, 452, 471. Three courses chosen from CS 344, 446, 471, 477 and 486.

Combinatorics and Optimization-Artificial Intelligence: MATH 381, 382; two courses chosen from MATH 325, 341, 414, 485; and CS 344, 457. 458, and 471.

Statistics-Machine Learning: MATH 341, 441, and two courses chosen from MATH 325, 382, 442, 485; three courses chosen from CS 365, 455, 457, 458 and 486.

Algebra-Analysis: MATH 351, 421, and two courses chosen from MATH 326, 422, 451, 452; CS 344, 441, and one other course.

Suggested Course of Study

First Year AS
CS 121 Careers in Computer Science1-
CS 131-132 Fundamentals of Computer Science I, II33
COMM 111A Introduction to Public Speaking3-
ENEX 101 Composition-3
MATH 152-153 Calculus I, II44
Electives and General Education36
Total1416
Second Year
CS 241 Data Structures4-
CS 242 Programming Languages-4
CS 281 Computer Architecture3-
MATH 225 Discrete Math I3-
MATH 221 Linear Algebra-4
Science sequence55
Electives and General Education-3
Total1516
Third Year**
CS 332 Algorithms 3-
CS 344 Operating Systems 3-
CS 346 Software Science -3
CS 365 Database Design and DBMS -3
CS 488 Computer Networks-3
FOR 220 Technical Writing-2
MATH 341 Probability and Statistics 3-
Science Electives33
Electives and General Education3-
Total1514
Fourth Year**
CS 415E Computers, Ethics, and Society-3
CS 441 Theory and Practice I3-
CS option courses and electives 66
Electives and General Education66
Total1515

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

Requirements for a Minor

There are two minors offered by the Department of Computer Science: the traditional minor in computer science emphasizes computer programming and related skills, while the minor in computer applications emphasizes use of applications such as programming languages, word processors, spreadsheets, and data bases in the management and manipulation of electronic information.

Computer Science: To earn a minor in computer science the student must complete (with at least a "C-" in each course and a 2.00 grade average) 25 CS credits including: CS 131-132, CS 241, and CS 242. The remaining credits must be selected from CS 201, CS 204, CS 207, CS 281 and courses at the 300 level or above. The student must also complete MATH 152-153, and MATH 225.

Computer Applications: To earn a minor in computer applications, a student must complete (with at least a "C-" grade in each course and a 2.00 grade average) 21 CS credits including: at least one and no more than three of CS 101, CS 131, CS 201, CS 204, CS 207; at least one and no more than three of CS 111, CS 171, CS 172, CS 173, and CS 181; with remaining courses selected from CS 131-132, CS 241-242, CS 486, other CS major courses, pre-approved CS 195, CS 295, CS 395, or CS 495 special topics courses, or up to six credits of pre-approved classes outside the department.

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. Credits beyond this maximum do not count toward a degree.

Computer Science (CS)

Students taking CS classes with computer programming components should expect to use additional computer lab time outside of class.

U 101 Introduction to Programming 3 cr. Offered every term. Elementary programming techniques using the Visual 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.) Credit not allowed for both CS 101 and EET 225.

U 111 Computer Literacy 3 cr. Offered every term. 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.) Credit not allowed for CS 111 and CRT 101.

U 121 Careers in Computer Science 1 cr. Offered autumn. Exploration of various careers available in the general area of Computer Science. Includes discussion of strategies for success in the major. Computer Science faculty members also will discuss possible undergraduate research opportunities and motivation for graduate education.

U 131 Fundamentals of Computer Science I 3 cr. Offered autumn and spring. Prereq., computer programming experience in a language such as BASIC, Pascal, C, etc.; coreq., MATH 100 or consent of instr. Fundamental computer science concepts using the high level structured programming language, Java.

U 132 Fundamentals of Computer Science II 3 cr. Offered autumn, spring, and summer. Prereq., CS 131; coreq., MATH 121 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.

U 171 Communicating Via Computers 3 cr. Offered every term. Prereq., previous computer experience or consent of instr. The use of the computer for information presentation and communication; emphasis placed on the use of electronic resources for the access, management, and presentation of information.

U 172 Introduction to Computer Modeling 3 cr. Offered every term. Prereq., previous computer experience and MATH 100 or equiv. score on math placement test, or consent of instr. Problem solving with spreadsheets and databases using the computer to analyze a set of data; presentation of results of analysis. Credit not allowed for CRT 280 or 281 and this course.


U 173 Computer Modeling 2 cr. Offered autumn and spring. Prereq., MATH 100 or equiv. score on the math placement test, and considerable experience is using spreadsheets. Problem solving with spreadsheets and databases using the computer to analyze data. Presentation of results of the analysis. Credit not allowed for CS 172, CRT 280, CRT 281 and this course.

U 181 Electronic Publishing on the World Wide Web 3 cr. Offered every term. Prereq., CS 111 or consent of instr. Introduction to browsers and the World Wide Web. Web site design and construction facilitated by the use of several multimedia programs. HTML and SGML explained in the use of web construction. Copyright issues and other WWW services are discussed.

U 195 Special Topics Variable cr. (R-6) Offered intermittently. 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) Offered intermittently. Prereq., consent of instr.

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

U 201 Special Programming Lan-guages 3 cr. (R-open) Offered intermittently. Prereq., depends on specific language offered. 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.

U 204 C Programming 3 cr. Offered intermittently. Prereq., CS 131 or consent of instr. Computer programming using the C programming language. Several programs will be written by the students. Credit not allowed for both CS 204 and CRT 270.

U 207 Advanced Visual BASIC Programming 3 cr. Offered intermittently. Prereq., CS 101 or consent of instr. Advanced applications programming in Visual BASIC. Topics include advanced objects and controls, web page development, and language trends.

U 241 Data Structures 4 cr. Offered autumn. Prereq., CS 132; coreq., MATH 225 or consent of instr. Abstract data types, recursion, linked lists, trees, hashing, graphs, and applications of data structures in algorithm development. Emphasis on object oriented programming techniques.

U 242 Programming Languages 4 cr. Offered spring. Prereq., CS 241 and MATH 225. Concepts and principles of programming languages with an emphasis on C, C++, and object-oriented programming. Syntax and semantics of object-oriented languages. Principles and implementation of late binding, memory allocation and de-allocation, type-checking, scope, polymorphism, inheritance.

U 281 Computer Architecture and Assembly Language Programming 3 cr. Offered autumn. Prereq., CS 132 or consent of instr. Functional view of computer system components B CPU, ALU, memory, bus, cache, I/O module. Instruction set design: formats, addressing modes. Basic circuit design. Pipelining and assembly language. Interrupt handling. Implementation of ALU and control unit. Detailed design of an RISC-like instruction set. Datapath and performance comparisons. Basic multiprocessor design.

U 295 Special Topics Variable cr. (R-6) Offered intermittently. 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) Offered intermittently. Prereq., consent of instr.

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

U 332 Algorithms 3 cr. Offered autumn. Prereq., CS 241 and MATH 225 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 344 Operating Systems 3 cr. Offered autumn. Prereq., CS 241, 242, CS 281, or consent of instr. Operating system design principles. Processes, threads, synchronization, deadlock, memory management, file management and file systems, protection, and security. Comparison of commonly used existing operating systems. Writing programs that make use of operating system services.

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

U 365 Database Design and Database Management Systems 3 cr. Offered spring. Prereq., CS 241 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.

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

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

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

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

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

UG 401 Computer Science for Teachers 3 cr. Offered intermittently. Prereq., junior standing or consent of instr. History of computing; current trends including human/computer interfaces, graphics, languages, networking, telecommunications; future directions, including artificial intelligence and robotics; career opportunities; impact of computers on society and the ethical and moral obligations inherent in the use of computer hardware and software; content studies and experiences relevant to the computer sciences curricula grades 5-12; evaluation and selection of hardware and software for school use. Credit not allowed toward a degree in computer science.

U 415E Computers, Ethics, and Society 3 cr. Offered spring. Prereq., computer science major with senior standing, FOR 220, successful completion of the Upper-Division Writing Proficiency Assessment, or consent of instr. Ethical problems that face computer scientists. The codes of ethics of computing professional societies. The social implications of computers, computing, and other digital technologies.

U 435 Web Programming 3 cr. Offered spring. Prereq., CS 241 or consent of instr. Programming and software development techniques for developing web-based applications. Scripting and other programming languages that are used for web-based development.

UG 441 Theory and Practice I 3 cr. Offered autumn. Prereq., CS 242, 344, 346, 365 and MATH 225, or consent of instr. Automata, regular and context free languages, entity/relation systems, with applications in requirements analysis, system design, and language processing.

UG 442 Theory and Practice II 3 cr. Offered spring. Prereq., CS 441. Systems design and implementation, with emphasis and major project in language translation, operating systems, or scientific applications.

UG 446 Computer Graphics 3 cr. Offered intermittently. Prereq., CS 241 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 3 cr. Offered intermittently. Prereq., CS 242 or consent of instr. Using the computer to solve problems that require intelligence. Representation of knowledge, search techniques, symbolic programming in LISP, expert systems.

U 457 Introduction to Machine Learning 3 cr. Offered intermittently. Prereq., MATH 152 and programming experience or consent of instr. Introduction to the framework of learning from examples, various learning algorithms such as neutral networks, and generic learning principles such as inductive bias, Occam's Razor, and data mining. Credit not allowed for both CS 457 and CS 557.

UG 458 Introduction to Bioinformatics 3 cr. Offered spring even-numbered years. Introduction and use of biological data sources available in the post human genome project era. Topics include basic algorithms for alignment of genome sequences and prediction of protein structures, as well as more advanced representational and algorithmic issues in protein structure, genome sequence computation, and systems biology.

UG 462 Computerized Business Systems 3 cr. Offered spring. Prereq., CS 441. Software development in support of electronic commerce. Credit not allowed toward M.S. in computer science.

UG 471 Scientific Computing 3 cr. Offered autumn. Prereq., MATH 153 and CS 132, or consent of instr. Survey of numerical and symbolic methods for solving scientific problems. Introduction to issues in high-performance and parallel computing. Interdisciplinary emphasis.

UG 476 User Interface Design 3 cr. Offered autumn. Prereq., CS 241 or consent of instr. Introduction to usability and key concepts of human behavior. Principles of good design for interactive systems and Web-based applications. User-centered design methodology including requirements specification, low and high-fidelity prototyping, heuristic evaluation, cognitive walkthrough, predictive modeling, and usability testing.

UG 477 Computer Simulation and Modeling 3 cr. Offered spring. Prereq., MATH 153, CS 132, or consent of instr. Matrix languages. ODE solving; Euler-Richardson, Runge-Kutta, PDE solving; finite differences, finite elements, multi-grid techniques. Discrete methods for solution, renormalization group method, critical phenomena. Emphasis on presentation of results and interactive programs.

UG 481 Architectures and Parallel Processing 3 cr. Offered intermittently. Prereq., CS 281 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 486 Data Visualization 3 cr. Offered intermittently. Prereq., MATH 152; programming experience; and junior, senior, or graduate status; or consent of instr. Visualization fundamentals and applications using special visualization software; formulation of 3-D empirical models; translation of 3-D models into graphical displays; time sequences and pseudo-animation; interactive versus presentation techniques; special techniques for video, CD and other media.

UG 488 Computer Networks 3 cr. Offered spring. Prereq., CS 241. Concepts and practice of computer networking, network protocol layers, switching, routing, flow, and congestion control. Network programming.

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

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

UG496 Independent Study Variable cr. (R-6) Offered intermittently. Prereq., consent of instr.

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

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

U 499 Senior Thesis/Project 1-6 cr. (R-6) Offered every term. Prereq., consent of thesis/project director and chair of the Computer Science Department. Senior thesis for computer science majors and/or Watkins scholars.

G 531 Design and Analysis of Algorithms 3 cr. Offered intermittently. Prereq., CS 332. 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 intractable problems.

G 541 Software Science I: Requirements and Specifications 3 cr. Offered intermittently. Prereq., MATH 225; CS 241 and 242 or consent of instr. Requirements analysis, techniques for representing requirements, specification development techniques, and specification languages.

G 542 Software Science II: Design, Implementation and Testing 3 cr. Offered intermittently. 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. Offered intermittently. Prereq., CS 344. Distributed operating systems, memory organization, protection, scheduling, concurrent programming, and parallel processing.

G 555 Applications in Artificial Intelligence 3 cr. (R-6) Offered intermittently. Course can be repeated for credit at the discretion of the instructor. Prereq., 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 557 Machine Learning 3 cr. Offered intermittently. Prereq., MATH 152 and programming experience or consent of instr. Fundamentals of machine learning including neural networks, decision trees, Bayesian learning, instance-based learning, and genetic algorithms; inductive bias, Occam's razor, and learning theory; data mining; software agents. Credit not allowed for CS 457 and CS 557.

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

G 580 Parallel Processing 3 cr. Offered intermittently. Prereq., CS 241, 242, and 344. Parallel processing architectures and programming languages.

G 594 Graduate Seminar Vari­able cr. (R-6) Offered intermittently. Prereq., consent of instr. Seminar on current research topics in computer science.


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

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

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

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

Faculty

Professors

Ray Ford, Ph.D., University of Pittsburgh, 1980

Alden H. Wright, Ph.D., University of Wisconsin, 1969 (Chairman)

Associate Professors

Joel E. Henry, Ph.D., Virginia Polytechnic Institute and State University, 1993

Donald J. Morton, Jr., Ph.D., Louisiana State University, 1994

David W. Opitz, Ph.D., University of Wisconsin, Madison, 1995

Assistant Professors

Jesse V. Johnson, Ph.D., University of Maine, Orono, 2002

Yolanda J. Reimer, Ph.D., University of Oregon, 2002

Changwon Yoo, Ph.D., University of Pittsburgh, 2002

Lecturer

Mike O'Conner, M.S., The University of Montana, 1996

Emeritus Professors

Robert P. Banaugh, Ph.D., University of California, 1962

Spencer L. Manlove, M.S., San Jose State University, 1959

James Ullrich, Ph.D., Southern Illinois University, 1969

Emeritus Associate Professor

Jerry D. Esmay, M.S., University of Texas, El Paso, 1971

Gene F. Schiedermayer, M.S., Southern Methodist University, 1971

Ronald E. Wilson, Ph.D., University of Chicago, 1975