Accessible Navigation. Go to: Navigation Main Content Footer

Department of Computer Science

Yolanda Reimer, Chair

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 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 chair at yolanda.reimer@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, chemistry and biology.

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. 

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. CSCI 106 (CS 121), CSCI 135-136 (CS 131-132), CSCI 232 (CS 241), CSCI 205 (CS 242), CSCI 361 (CS 281), CSCI 332 (CS 332), CSCI 460 (CS 344), CSCI 323 (CS 346), CSCI 340 (CS 365), CSCI 315E (CS 415), CSCI 426 (CS 441), CSCI 427 (CS 442), CSCI 466 (CS 488), and nine credits of CSCI (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 WRIT 222 (FOR 220). Students must also take COMM 111A or COMM 242.

Science. Students must take one of the sequences BIOB 170N-171N, 160N  (BIOL 108N-109N, 110N); CHMY 141N, 143N (CHEM 161N, 162N); or PHSX 215N/216N and  PHSX 217N/218N (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
  • BIOM 250N/251N (BIOL 106N/107N), BIOB 170N/171N (BIOL 108N/109N), BIOB 160N (BIOL 110N)
  • CHMY 141N, 143N (CHEM 161N, CHEM 162N)
  • FOR 201
  • GEO 101N, 102N (GEOS 100N/101N), GEO 226 (GEOS 226)
  • PHSX 215N/216N (PHYS 211N/213N), PHSX 217N/218N (PHYS 212N/214N), PHSX 343 (PHYS 341), PHSX 444 (PHYS 444)

NOTE: 100-level CSCI (CS) courses other than CSCI 106 (CS 121), CSCI 135-136 (CS 131-132), and 200-level CSCI (CS) courses other than CSCI 232-205 (CS 241-242) and CSCI 361 (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 CSCI 315E (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: CSCI 106, 135-136, 205-232, 361, 332 (CS 121, 131-132, 242-241, 281, 332), and nine credits of CSCI (CS) electives selected from courses numbered 300 and above.  A total of at most three of the nine credits of  CSCI (CS) electives may be in CSCI 398 or 498 (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 electives 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 (MATH 406), STAT 451 and 452 (MATH 444, and 445)).

Other requirements are: One of the sequences BIOB 160N,170N, 171N (BIOL 110N, 108N-109N); or CHMY 141N, 143N (CHEM 161N, 162N); or PHSX 215N/216N and 217N/218N (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.

The upper-division writing requirement is one of the following: CSCI 315E (CS 415E), M 429 (MATH 406), any other approved General Education upper-division writing course, or a senior thesis (CSCI 499 (CS 499) or M 499 (MATH 499)).

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 CSCI 441, 444, 460, and 477 (CS 446, 486, 344 and 477).

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

Statistics-Machine Learning: STAT 341, 421 (MATH 341, 441), and two courses chosen from M 325, 362, 485, and STAT 422 (MATH 325, 382, 485, 442); three courses chosen from CSCI 340, 446, 447, 451, and 444 (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); CSCI 460, 426 (CS 344, 441), and one other course.

Suggested Course of Study

First Year A S
CSCI 106 (CS 121) Careers in Computer Science 1 -
CSCI 135-136 (CS 131-132) Fundamentals of Computer Science I, II 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
CSCI 232 (CS 241) Data Structures and Algorithms 4 -
CSCI 205 (CS 242) Programming Languages w/C/C++ - 4
CSCI 361 (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
CSCI 332 (CS 332) Design/Analysis of Algorithms 3 -
CSCI 460 (CS 344) Operating Systems 3 -
CSCI 323 (CS 346) Software Science - 3
CSCI 340 (CS 365) Database Design - 3
CSCI 466 (CS 488) 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
CSCI 315E (CS 415) Computers, Ethics, and Society*** 3 -
CSCI 426 (CS 441) Adv Prgrmng Theory and Practice I 3 -
CSCI 427 (CS 442) Adv Prgrmng Theory and Practice II - 3
CSCI (CS) option courses and electives 3 6
Electives and General Education 6 6
 Total 15 15

**CSCI (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 CSCI 315E (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. CSCI 135-136 (CS 131-132) (6 credits).
  2. 12 credits of elective courses chosen from CS 181, CSCI 100, 250, 232, 205, 361 (CS 101, 177, 181, 241, 242, 281) and courses numbered 300 and above with the restrictions: both  CSCI 100 and 250 (CS 101 and 177) cannot be counted, 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 CSCI (CS) credits including:

  1. Either CSCI 100 (CS 101), CSCI 135 (CS 131) or both.
  2. At least one and no more than three of CSCI 105 (CS 111), CAPP 171 (CS 171), CSCI 172 (CS 172), CSCI 250 (CS 177), and CS 181.
  3. Remaining courses must be selected from CSCI 135-136 (CS 131-132), CSCI 232-205 (CS 241-242), CSCI 444 (CS 486), other CS major courses, pre-approved CSCI 191 (CS 195), CSCI 291 (CS 295), CSCI 391 (CS 395), or CSCI 491 (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)

U 181 Electronic Publishing on the World Wide Web 3 cr.

Computer Science (CSCI)

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

U 100 (CS 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 CSCI 100 (CS 101) and CSCI 110 (CRT 121).

U 104 (CS 102) Programming  with Alice 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 CSCI 135-136 (CS 131-132) which teaches object-oriented programming in a more traditional manner.

 U 105 (CS 111) Computer Fluency 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 106 (CS 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 135 (CS 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. CSCI 104 (CS 102) highly recommended as prereq. or coreq.  Fundamental computer science concepts using the high level structured programming language, Java.

U 136 (CS 132) Fundamentals of Computer Science II 3 cr. Offered autumn, spring, and summer. Prereq., CSCI 135 (CS 131); coreq., M 115 or M 151 or consent of instr. Continuation of CSCI 135 (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 172 (CS 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 191 (CS 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 192 (CS 196) Independent Study Variable cr.(R-6) Offered intermittently. Prereq., consent of instr.

U 198 (CS 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 205 (CS 242) Programming Languages w/ C/C+ 4 cr.  Offered spring.  Prereq., CSCI 232 (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 216E Technology, Ethics, and Society 3cr. An examination of ethical issues related to new technologies in the context of ethical theory in the western secular tradition. Focus will be on applying central concepts, principles, and problems of ethical theory to particular areas of technology, such as artificial intelligence and robotics, social networks, nanotechnology, genetic engineering, and privacy in a digital age.

U 232 (CS 241) Data Structures and Algorithms 4 cr.  Offered autumn.  Prereq., CSCI 136 (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 250 (CS 177) Computer Modeling for Science Majors 3 cr. Offered autumn. 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 CSCI 172 (CS 172), CSCI 250 (CS 177), CRT 280, and CRT 281 for credit.

U 291 (CS 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 292 (CS 296) Independent Study Variable cr. (R-6) Offered intermittently. Prereq., consent of instr.

U 298 (CS 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 315E (CS 415E) Computers, Ethics, and Society 3 cr.  Offered autumn. Prereq., WRIT 222 (FOR 220) (or equivalent), successful completion of the Upper-Division Writing Proficiency Assessment, or consent of instr.  Ethical problems that computer scientists face.  The codes of ethics of professional computing societies.  The social implications of computers, computing, and other digital technologies. 

U 323 (CS 346) Software Engineering 3 cr. Offered spring. Prereq., CSCI 136 (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 332 (CS 332) Design/Analysis of Algorithms  3 cr. Offered autumn. Prereq., CSCI 232 (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 340 (CS 365) Database Design 3 cr. Offered spring.  Prereq., CSCI 232 (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 361 (CS 281) Computer Architecture 3 cr.  Offered autumn.  Prereq., CSCI 136 (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 390 (CS 397) Research Variable cr. (R-6) Offered intermittently. Prereq., consent of instr.

U 391 (CS 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 392 (CS 396) Independent Study Variable cr. (R-6) Offered intermittently. Prereq., consent of instr.

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

U 398 (CS 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 411 (CS 435) Advanced Web Programming 3 cr.  Offered spring.  Prereq., CSCI 136 (CS 132).  Programming and software development techniques for developing web-based applications.  Scripting and other programming languages that are used for web-based development.

UG 426 (CS 441) Advanced Programming Theory and Practice I 3 cr. Offered autumn. Prereq., CSCI 205, 460, 323, 340 (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 427 (CS 442) Advanced Programming Theory and Practice II 3 cr. Offered spring. Prereq., CSCI 426 (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 441 (CS 446) Computer Graphics Programming 3 cr. Offered intermittently. Prereq., CSCI 232 (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 filling. Straight line, circle generation. Parametrical representations of curves and surfaces. Three-D viewing. Hidden line and surface removal, shading and color models.

UG 443 (CS 476) User Interface Design 3 cr. Offered spring. Prereq., CSCI 232 (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 CSCI 576 (CS 576) and this course.

UG 444 (CS 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 446 (CS 455 ) Artificial Intelligence 3 cr. Offered intermittently.  Prereq., CSCI 205 (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.

UG 447 (CS 457) Machine Learning 3 cr. Offered intermittently.  Prereq., CSCI 232 (CS 241), CSCI 332 (CS 332), 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 CSCI 447 (CS 457) and CSCI 557 (CS 557).

UG 451 (CS 458) Computational Biology 3 cr. 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 CSCI 558 (CS 558) and this course.

U 460 (CS 344) Operating Systems 3 cr. Offered autumn. Prereq., CSCI 232, 205, 361 (CS 241, 242, 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.

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

U 473 Cryptography 3 cr. Offered spring. Prereq., CSCI 322, one of M 225 / M 305, programming experience, or consent of instr. Theory and practice in modern cryptography. Statistical analysis of classical ciphers. Design practice of modern block ciphers and hash functions, and their theoretical justifications. Linear and differential cryptanalysis. Public-kye cryptography based on number-theoretic problems. Zero-knowledge proofs and secure multi-party computation protocols. Credit not allowed for both CSCI 473 and CSCI 573.

UG 477 (CS 477) Computer Simulation and Modeling 3 cr.  Offered spring.  Prereq., M 172 (MATH 153), CSCI 136 (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 CSCI 577 (CS 577) and this course.

UG 478 Multimedia Data Processing 3 cr. Offered intermittently.  Prereq. CSCI 232 (CS 241) or consent of instr. Introduction to fundamental concepts of multimedia data.  Focus on principles and techniques of multimedia data (image, audio, and video) processing and retrieval.  Implementation of multimedia applications.  Credit not allowed for CS 578 and this course. 

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

UG 491 (CS 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.

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

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

U 498 (CS 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 CSCI 398 (CS 398) and/or CSCI 498 (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 (CS 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 (CS 511) Analysis, Modeling, and Design 3 cr.  Offered infrequently.  Prereq., CSCI 136 (CS 132 ) or CSCI 205 (CS 242/221) significant  programming experience; M 115 or 151 (MATH 117 or 121); CSCI 323 (CS 346) or software engineering experience; CSCI 340 (CS 365) 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 (CS 512) Software Quality Assurance 3 cr.  Offered intermittently.  Prereq., CSCI 136 (CS 132) or CSCI 205 (CS 242/221) or significant programming experience; M 115 or 151 (MATH 117 or 121); CSCI 323 (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 (CS 521 ) Information Technology Infrastructure 3 cr.  Offered infrequently.  Prereq., CSCI 446 (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 531 (CS 531) Design and Analysis of Algorithms 3 cr. Offered intermittently. Prereq., CSCI 332 (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 (CS 541) Software Science I: Requirements and Specifications 3 cr. Offered intermittently. Prereq., M 225 (MATH 225); CSCI 232 and 205 (CS 241 and 242) or consent of instr. Requirements analysis, techniques for representing requirements, specification development techniques, and specification languages.

G 542 (CS 542) Software Science II: Design, Implementation and Testing 3 cr. Offered intermittently.  Prereq., CSCI 541 (CS 541). Continuation of CSCI 541 (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 (CS 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 (CS 557) Machine Learning 3 cr. Offered intermittently. Prereq., CSCI 232 (CS 241), CSCI 332 (CS 332), 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 CSCI 447 (CS 457) and CSCI 557 (CS 557).

G 558 (CS 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 (CS 565) Database Systems 3 cr. Offered intermittently. Prereq., CSCI 205, 460 and 340 (CS 242, 344, and 365), or consent of instr. Relational database theory, data models, query languages, transaction processing, security, and concurrency.

G 573 Cryptography 3 cr. Offered spring. Prereq., CSCI 322, one of M 225 / M 305, programming experience, or consent of instr. Theory and practice in modern cryptography. Statistical analysis of classical ciphers. Design practice of modern block ciphers and hash functions, and their theoretical justifications. Linear and differential cryptanalysis. Public-kye cryptography based on number-theoretic problems. Zero-knowledge proofs and secure multi-party computation protocols. Credit not allowed for both CSCI 473 and CSCI 573.

G 576 (CS 576) Human-Computer Interactions 3 cr.  Offered spring.  Prereq., CSCI 232 (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 (CS 577) Computer Simulation and Modeling 3 cr.  Offered spring.  Prereq., M 172 (MATH 153), CSCI 136 (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 578 Multimedia Systems 3 cr.  Offered intermittently.  Prereq. CSCI 232 (CS 241) or consent of instr.   Introduction to fundamental concepts of multimedia data.  Focus on principles and techniques of multimedia data (image, audio, and video) processing and retrieval.  Implementation of multimedia applications.  Credit not allowed for CSCI 478 (CS 478) and this course. 

G 580 (CS 580) Parallel Processing 3 cr. Offered intermittently. Prereq., CSCI 232, 205, and 460 (CS 241, 242, and 344). Parallel processing architectures and programming languages.

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

G 595 (CS 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 (CS 596) Independent Study Variable cr. (R-6) Offered intermittently. Prereq., consent of instr.

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

G 598 (CS 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 (CS 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

Associate Professors

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

Yolanda J. Reimer, Ph.D., University of Oregon, 2002 (Chair)

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 of Wisconsin, 1969

Professors on Assignment

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

Lecturer

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

Michael Cassens, M.S. University of Montana, 2003



Registrar's Office

Lommasson Center 201

Phone: (406) 243-2995

Fax: (406) 243-4807