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, http://www.abet.org. 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 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-".

Most 100- and 200-level courses are open on a first-come, first-served basis to all students who have the prerequisites.

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

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.

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

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 Core Courses.** 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 323 (CS 346), CSCI 315E (CS 415E), CSCI 426 (CS 441), and CSCI 427 (CS 442).

Every major must choose either the Professional track or the Interdisciplinary track.

**Professional Track Requirements.** Eighteen credits of CSCI (CS) electives selected from courses numbered 300 and above.

**Interdisciplinary Track Requirements:**

• Six credits of CSCI (CS) electives selected from courses numbered 300 and above.

• In addition, students must complete all requirements for a minor or additional major in any field other than computer science. This minor or additional major must include at least twelve credits at the 200-level or above.

**Mathematics.** M 171-172, 221 or 325, 225 & STAT 341 (MATH 152-153, 221or 325, 225, and 341).

**Writing/Communication.** Students must take a University approved lower-division writing course. Students must also take COMX 111A or COMX 242 (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 205 (CS 242) and CSCI 232 (CS 241) do not count toward the degree or track 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 415E).

**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.

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, a university approved lower-division writing course, and either COMX 111A or COMX 242 (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)).

**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.

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 |

COMX 111A (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 323 (CS 346) Software Science | 3 | - |

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 |

Total | 15 | 16 |

Third Year** | A | S |

CSCI 332 (CS 332) Design/Analysis of Algorithms | - | 3 |

CSCI (CS) track Courses and Electives* | 3 | 6 |

STAT 341 (MATH 341) Introduction to Probability and Statistics | 3 | - |

University approved lower-division writing course | - | 3 |

Science Electives | 3 | 3 |

Electives and General Education | 6 | - |

Total | 15 | 15 |

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) track courses and electives* | 3 | 6 |

Electives and General Education | 6 | 6 |

Total | 15 | 15 |

*Students completing the Interdisciplinary track may substitute CSCI elective courses or courses related to their Minor or Additional Major in Another field.

**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 and a university approved lower-division writing course before taking CSCI 315E (CS 415E).

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:

- CSCI 135-136 (CS 131-132) (6 credits).
- 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 electives must be at the 300 level or above.
- M 115 or M 121 and M 122 or M 151 (MATH 117 or Math 111 and MATH 112 or MATH 121)

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

- Either CSCI 100 (CS 101), CSCI 135 (CS 131) or both.
- 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.
- Remaining courses must be selected from CSCI 135-136 (CS 131-132), CSCI 232 (CS 241), CSCI 205 (CS 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.

R- before the course description 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 (CSCI)** - Course Descriptions

100, 104, 105, 106, 135, 136, 172, 181, 191, 192, 198, 205, 216E, 232, 250, 291, 292, 298, 315E, 323, 332, 340, 361, 390, 391, 392, 394, 398, 411, 426, 427, 438, 441, 443, 444, 446, 447, 448, 451, 460, 466, 473, 477, 478, 490, 491, 492, 494, 498, 499, 511, 512, 521, 531, 541, 542, 548, 555, 557, 558, 565, 573, 576, 577, 578, 580, 594, 595, 596, 597, 598, 599

**Professors**

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

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

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

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

**Associate Professor**

Min Chen, Ph.D., Florida International University, Miami, 2007

**Assistant Professor**

Doug Raiford, Ph.D., Wright State University, Dayton, Ohio, 2008

**Research Professor**

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

**Lecturer**

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

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