Accessible Navigation. Go to: Navigation Main Content Footer

Department of Computer Science

Joel Henry, 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 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 of ABET, 111 Market Place, Suite 1050, Baltimore, MD 21202-4012 - Telephone: 410-347-7700. For more information access our homepage http://www.cs.umt.edu or email the chairman at joel.henry@umontana.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, CS 131-132, or CS 133.

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 in to the department when declaring computer science as a major or minor.

Special Degree Requirements

To locate graduation requirements in addition to those of the Computer Science Department, see "graduation requirements" in the index of this catalog.

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 or CS 133, CS 241, CS 242, CS 281, CS 332, CS 344, CS 346, CS 365, CS 415, CS 441, CS 442, CS 488, and nine credits of CS electives selected from courses numbered 300 and above.

Mathematics. M 171-172, 221 or 325, 225 & Stat 341 (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; CHMY 141N, 143N (CHEM 161N, 162N); or PHYS 211N/213N and 212N/214N. 

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):

  • ASTR 131N/134N, ASTR 132N/135N
  • BIOL 106N/107N, BIOL 108N/109N, BIOL 110N
  • CHMY 141N, 143N (CHEM 161N, CHEM 162N)
  • FOR 201
  • GEO 101N, 102N (GEOS 100N/101N), GEO 226 (GEOS 226)
  • PHYS 211N/213N, PHYS 212N/214N, PHYS 341, PHYS 444

NOTE: 100-level CS courses other than CS 121, CS 131-132, CS 133 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

Upper-division Writing Expectation for Computer Science majors is CS 415.

Social Science, Humanities, Arts and Other Disciplines
Students must take 30 credits in social science, humanities, arts or disciplines other than computer science, mathematics and science.  The courses taken to meet the Writing/Communication requirement can also count towards this requirement.

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 or 133, 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: M 171 (or 181)-172 (or 182), 221, 273, 307 or (225) (MATH 152-153, 221, 251, 305 (or 225)), and twelve credits of mathematical sciences selected from the following list: M 311, 325, 326, 361, 362, 381, 412, 414, 429, 431, 432, 439, 440, 445, 472, 473, 485 and STAT 341, 421, 422, 451, 452 (MATH 311, 325, 326, 341, 351, 381, 382, 406, 412, 414, 421, 422, 431, 441, 442, 444, 445, 451, 452, 471, 475, 485).

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 M 429, STAT 451 and 452 (MATH 406, 444, and 445)).

Other requirements are: One of the sequences BIOL 108N-109N, 110N; or CHMY 141N, 143N (CHEM 161N, 162N); or PHYS 211N/213N and 212N/214N. In addition, WRIT 222 (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: M 311, 412, 414 (MATH 311, 412, 414), and one course chosen from STAT 341 (MATH 341), M 381, 473, 472, 440 (MATH 351, 451, 452, 471).  Three courses chosen from CS 344, 446, 477 and 486.

Combinatorics and Optimization-Artificial Intelligence: M 361, 362 (MATH 381, 382); two courses chosen from M 325, 414, 485, STAT 341 (MATH 325, 341, 414, 485); and CS 344, 455, and 457.

Statistics-Machine Learning: STAT 341, 421 (MATH 341, 441), and two courses chosen from M 325, 362, 485, STAT 422 (MATH 325, 382, 442, 485); three courses chosen from CS 365, 455, 457, 458 and 486.

Algebra-Analysis: M 381, 431 (MATH 351, 421), and two courses chosen from M 326, 432, 473, 472 (MATH 326, 422, 451, 452); CS 344, 441, and one other course.

Suggested Course of Study

First Year A S
CS 121 Careers in Computer Science 1 -
CS 131-132 Fundamentals of Computer Science I, II or CS 133 Accelerated Fundamentals of Computer Science (3 cr. - one semester) 3 3
COMM 111A Introduction to Public Speaking 3 -
WRIT 101 (ENEX 101) College Writing I - 3
M 171, 172 (MATH 152-153) Calculus I, II 4 4
Electives and General Education 3 6
 Total 14 16
Second Year A S
CS 241 Data Structures 4 -
CS 242 Programming Languages - 4
CS 281 Computer Architecture 3 -
M 225 (MATH 225) Discrete Math I 3 -
M 221 (MATH 221) Linear Algebra - 4
Science sequence 5 5
Electives and General Education - 3
 Total 15 16
Third Year** A S
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
WRIT 222 (FOR 220) Technical Approach to Writing - 2
STAT 341 (MATH 341) Introduction to Probability and Statistics 3 -
Science Electives 3 3
Electives and General Education 3 -
 Total 15 14
Fourth Year** A S
CS 415 Computers, Ethics, and Society*** 3 -
CS 441 Theory and Practice I 3 -
CS 442 Theory and Practice II - 3
CS option courses and electives 3 6
Electives and General Education 6 6
 Total 15 15

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

***Students must pass the upper-division writing proficiency assessment before taking CS 415.

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) 18 CS credits including:

  1. Either CS 131-132 or CS 133.
  2. Elective Courses chosen from CS 101, 177, 181, 241, 242 and one course number 300 and above.  CS 101 and 177 cannot both be counted as electives, and at least 6 credits of elective must be at the 300 level or above.

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:

  1. At least one and no more than three of CS 101, CS 131, CS 201, CS 207.
  2. At least one and no more than three of CS 111, CAPP 171, CS 172, CS 177, and CS 181.
  3. Remaining courses must be 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 CRT 121.
  • U 102 Introduction to Object-Oriented Programming 1 cr.  Offered every term.  Classes are held for 2 hours/week in the first half of the semester.  Introduction to object-oriented programming using a visual programming environment.  Students create programs using drag-and-drop and these programs control animated on-screen characters and objects.  Course is designed as a supplement to CS 131-132 which teaches object-oriented programming in a more traditional manner.
  •  U 111 Fluency with Information Technology 3 cr. Offered intermittently. Introduces the skills and concepts of information technology, both from practical and more theoretical points of view.  During lectures and interactive computer labs, students explore a wide range of digital and information technologies, including common PC applications, networking, databases, privacy, and security.
  • 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., M 095 (MAT 100D) or consent of instr. CS 102 highly recommended as prereq. or coreq.  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 133 Accelerated Fundamentals of Computer Science 3 cr. Offered autumn and spring.  Prereq., computer programming in a language such as BASIC, C, C++, etc.; coreq., M 151 (MATH 121) or consent of instr. A one-semester combination of CS 131 and CS 132; fundamental computer science concepts using Java, and a survey of computer science topics (software engineering, recursion, algorithms, basic data structures, operating systems, artificial systems, graphics, user interfaces, and social and ethical implications of computing).
  •  U 172 Introduction to Computer Modeling 3 cr. Offered every term. Prereq., previous computer experience and M 095 (MAT 100D) 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 172 and this course.
  • U 177 Computer Modeling for Science Majors 3 cr. Offered spring.  Prereq., basic computer and spreadsheet literacy; coreq., M 162 or 171 (MATH 150 or 152).  An introduction to computer modeling in the sciences using spreadsheets and a programming language.  Integrates principles of math, computer science and science.  A student can take at most one of CS 172, CS 177, CRT 280, and CRT 281 for credit.
  • 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 Internship Variable cr.  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. A maximum of 6 credits of Internship (198, 298, 398, 498) may count toward graduation.
  • U 201 Special Programming Languages 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 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., M 225 (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 M 225 (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, BCPU, 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 Internship 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. A maximum of 6 credits of Internship (198, 298, 398, 498) may count toward graduation.
  • U 332 Algorithms 3 cr. Offered autumn. Prereq., CS 241 and M 225 (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 Engineering 3 cr. Offered spring. Prereq., CS 132. Study, implementation, and assessment of software processes, techniques, methods, and CASE tools.  Project management and cost estimation techniques will be examined.  A group project may be required.
  • U 365 Database Design and Database Management Systems 3 cr. Offered spring.  Prereq., CS 241 or consent of instr.  Fundamentals of data modeling, the relational mode, normal forms, file organization, index structures and SQL.  Major project involving the design and implementation of a relational database.
  • 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 Internship 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. A maximum of 6 credits of Internship (198, 298, 398, 498) may count toward graduation.
  • U 415 Computers, Ethics, and Society 3 cr.  Offered autumn. Prereq., computer science or computer science/math 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 Advanced Programming:  Theory and Practice I 3 cr. Offered autumn. Prereq., CS 242, 344, 346, 365 and M 225 (MATH 225), or consent of instr. Examination and implementation of modern best practices in the areas of software design, coding, testing and maintenance.  Focus on design patterns and design pattern languages used to build modern software systems in a variety of areas.
  • UG 442 Advanced Programming: Theory and Practice II 3 cr. Offered spring. Prereq., CS 441. Design and implementation of a major software project in a group setting, with required documentation, presentation, installation, and approval by the instructor.
  •  UG 446 Computer Graphics 3 cr. Offered intermittently. Prereq., CS 241 and M 221 (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., M 171 (MATH 152) and programming experience or consent of instr.  Introduction to the framework of learning from examples, various learning algorithms such as neural 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 autumn. Offered Autumn.  Designed for attendance by both computer scientists and biologists.  The course will explore the importance of interdisciplinary partnerships between these two fields.  Students will learn to use various existing computational tools for investigating genomic and other biological data.  This will include tools for performing sequence alignments and searches, building phylogenetic trees, predicting RNA secondary structure, and predicting protein tertiary structure.  The underlying algorithmic approaches taken by these tools will be discussed, and in some cases, actually implemented by the class participants.  The course will examine the data repositories where genomic and other biological data are stored.  There will be some light programming required using PERL as the language of choice.  It is assumed that the class participants have no experience programming in PERL and will learn this skill as part of the course. Credit not allowed for CS 558 and this course.
  • UG 475 Statistical, Dynamical, and Computational Modeling 3 cr. Offered autumn odd-numbered years.  Same as M 445 (MATH 475).  Prereq., consent of instr. An interdisciplinary course on the integration of statistical and dynamical models with applications to biological problems.  Linear and nonlinear models, estimation, systems of ordinary differential equations, numerical integration, bootstrapping, MCMC methods.  Intended both for students in mathematics and natural sciences.
  • UG 476 User Interface Design 3 cr.  Offered spring.  Prereq., CS 241 or consent of instr.  Introduction to usability and key concepts of human behavior. Focus on the process of user-centered design, including requirements specification, prototyping, and methods of evaluation.  Incorporation of regular design critiques of classmates= work, and emphasis on both oral and written communication skills.  Credit not allowed for CS 576 and this course.
  • UG 477 Computer Simulation and Modeling 3 cr.  Offered spring.  Prereq., M 172 (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.  Credit not allowed for CS 577 and this course.
  • UG 486 Data Visualization 3 cr. Offered intermittently. Prereq., M 171 (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 Internship 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. A maximum of 6 credits of Internship (198, 298, 398, 498) may count toward graduation.
  • 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 511 Analysis, Modeling, and Design 3 cr.  Offered infrequently.  Prereq., CS 132 or 211 or significant  programming experience; M 115 or 151 (MATH 117 or 121); CS 346 or software engineering experience; CS365 or database experience.  Software requirements analysis, modeling, and specification.  Human computer interface issues as they relate to usability, process support, productivity, and organizational goals.
  • G 512 Software Quality Assurance 3 cr.  Offered intermittently.  Prereq., CS 132 or 221 or significant programming experience; M 115 or 151 (MATH 117 or 121); CS 346 or software engineering experience.  Software quality assurance concepts and implementation Planning, execution, and assessment of quality assurance activities throughout the software project life cycle.
  • G 521 Information Technology Infrastructure 3 cr.  Offered infrequently.  Prereq., CS 488 or IS 372 or consent of instr. Identification and classification of background environment, hardware, software, and service components in an enterprise IT environment; management and security concerns for each component; consideration of how the components fit together to form an enterprise information technology environment.
  • G 522 Globalization and Outsourcing 3 cr.  Offered infrequently.  Prereq., CS 346 or IS 373 or consent of instr. Development of information technology on a global basis and the associated dynamics of outsourcing relating to intellectual property and national economics in a global context.  Project sessions coordinated across two campuses, one at UM and one in an outsourcing environment such as a tribal college, an Indian technical college or Chinese technical college with the purpose of engaging both groups in understanding and resolving cross-cultural and technical problems.
  •  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., M 225 (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 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., M 171 (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 558 Introduction to Bioinformatics 3 cr.  Offered autumn.  Prereq., consent of instr.  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.  Discussion of state of the art bioinformatics projects that are being developed between the Department of Computer Science and the School of Pharmacy. 
  • 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 576 Human-Computer Interactions 3 cr.  Offered spring.  Prereq., CS 241 or consent of instr.  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.  Advanced HCI research project. Credit not allowed for both CS 476 and 576.
  • G 577 Computer Simulation and Modeling 3 cr.  Offered spring.  Prereq., M 172 (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.  Engagement with current scientific literature. Planning and execution of small scale modeling project derived from scientific literature.  Model testing and validation.
  •  G 580 Parallel Processing 3 cr. Offered intermittently. Prereq., CS 241, 242, and 344. Parallel processing architectures and programming languages.
  •  G 594 Graduate Seminar Variable 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 598 Internship 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.
  •  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

  • Joel E. Henry, Ph.D., Virginia Polytechnic Institute and State University, 1993 (Chairman)

Associate Professors

  • Jesse V. Johnson, Ph.D., University of Maine, Orono, 2002
  • Yolanda J. Reimer, Ph.D., University of Oregon, 2002

Assistant Professors

  • Min Chen, Ph.D., Florida International University, Miami, 2007
  • Doug Raiford, PH.D., Wright State University, Dayton, Ohio, 2008
  • Mike Rosulek, Ph.D., University of Illinois, Urbana-Champaign, 2009

Research Professor

  • Alden H. Wright, Ph.D., University Wisconsin, 1969

Professors on Assignment

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

Lecturer

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

Registrar's Office

Lommasson Center 201

Phone: (406) 243-2995

Fax: (406) 243-4807