Computer Science/Programming (CSCI)

This is an archived copy of the 2017-2018 catalog. To access the most recent version of the catalog, please visit http://catalog.umt.edu/.

CSCI 100 - Intro to Programming. 3.000 Credits.

Offered autumn and spring. This course covers basic programming concepts such as variables, data types, iteration, flow of control, input/output, functions, and objects. The course will also cover programming ideas such as data structures, algorithms, modularity, and debugging. Students will learn about the role computation can play in solving problems by writing interesting programs to solve useful goals. No prior programming experience is expected. (Two hours independent lab per week.) Credit not allowed for both CSCI 100 and CSCI 110.

CSCI 250 - Computer Mdlng/Science Majors. 3.000 Credits.

Offered autumn. Prereq., basic computer and spreadsheet literacy; coreq., M 162 or M 171. An introduction to programming in Python with an emphasis on problems arising in the sciences, including: function plotting, data fitting, file input/output, solving ordinary differential equations, matrix manipulation, and sensor networks. A student can take at most one of CSCI 172, CSCI 250, CRT 280, and CRT 281 for credit.

CSCI 443 - User Interface Design. 3 Credits.

Offered intermittently. Prereq., CSCI 232 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 543 and this course.

CSCI 447 - Machine Learning. 3 Credits.

Offered intermittently. Prereq., CSCI 232 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 and CSCI 547.

CSCI 464 - Applications of Mining Big Data. 3 Credits.

Offered intermittently. Prereq., upper division or consent of instr. Co-convenes with CSCI 564. Introduction to existing data mining software systems and their use, with focus on practical exercises. Topics include data acquisition, data cleansing, feature selection, and data analysis. Credit not allowed for both CSCI 464 and CSCI 564.

CSCI 480 - Applied Parallel Computing Techniques. 3 Credits.

Prereq., CSCI 205 and 232, or instructor consent. This course is an introduction to parallelism and parallel programming. Topics include the various forms of parallelism on modern computer hardware (e.g. SIMD vector instructions, GPUs, multiple cores, and networked clusters), with coverage of locality and latency, shared vs non-shared memory, and synchronization mechanisms (locking, atomicity, etc). We will introduce patterns that appear in essentially all programs that need to run fast. We will discuss how to recognize these patterns in a variety of practical problems, discuss efficient algorithms for implementing them, and how to compose these patterns into larger applications. We will address computer architecture at a high level, sufficient to understand the relative costs of operations like arithmetic and data transfer. We also introduce useful tools for debugging correctness and performance of parallel programs. Assignments will include significant parallel programming projects. Co-convenes with CSCI 580. Credit not allowed for both CSCI 480 and CSCI 580.

CSCI 543 - Human-Computer Interaction. 3 Credits.

Offered intermittently. Prereq., CSCI 232 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 CSCI 443 and CSCI 543. Level: Graduate

CSCI 547 - Machine Learning. 3 Credits.

Offered intermittently. Prereq., CSCI 232 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 and CSCI 547. Level: Graduate

CSCI 564 - Applications of Mining Big Data. 3 Credits.

Offered intermittently. Co-convenes with CSCI 464. Introduction to existing data mining software systems and their use, with focus on practical exercises. Topics include data acquisition, data cleansing, feature selection, and data analysis. Credit not allowed for both CSCI 464 and CSCI 564. Level: Graduate

CSCI 580 - Applied Parallel Computing Techniques. 3 Credits.

Offered intermittently. Prereq., CSCI 232, 205. Parallel processing architectures and programming languages. Co-convenes with CSCI 580. Credit not allowed for both CSCI 480 and CSCI 580. Level: Graduate