Computer Science Department

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

Undergraduate Degrees Available

Subject Type Option Track
Computer Applications Minor
Computer Sci-Mathematical Sci Bachelor of Science
Computer Science Bachelor of Science Interdisciplinary
Computer Science Bachelor of Science Professional
Computer Science Minor

Faculty

Professor

  • Ray Ford, Professor
  • Joel Henry, Professor
  • Jesse Johnson, Professor
  • Yolanda Reimer, Professor

Associate Professor

  • Douglas Raiford

Assistant Professor

  • Rob Smith, Assistant Professor
  • Travis Wheeler, Assistant Professor

Lecturer

  • Michael Cassens, Lecturer
  • Mike O'Conner, Lecturer, Undergraduate Advisor

Emeritus

  • Alden Wright, Emeritus Professor

Course Descriptions

Computer Applications

  • CAPP 171 - Communicating via Computers

    Credits: 3. Level: Undergraduate. 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. Students taking CS classes with computer programming components should expect to use additional computer lab time outside of class.

Computer Science/Programming

  • CSCI 100 - Intro to Programming

    Credits: 3. Level: Undergraduate. Offered autumn and spring.  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 and CSCI 110.
  • CSCI 104 - Programming with Alice

    Credits: 1. Level: Undergraduate. Offered frequently. 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 which teaches object-oriented programming in a more traditional manner.
  • CSCI 105 - Computer Fluency

    Credits: 3. Level: Undergraduate. Offered autumn and spring. Introduces the skills and concepts of information technology, both from practical and a more theoretical point of view. During lectures and interactive computer labs, students will explore a wide range of digital and information technologies, including common PC applications, networking, databases, privacy, and security. Credit not allowed for both CSCI 105 and CRT 111 and CS 111.
  • CSCI 106 - Careers in Computer Science

    Credits: 1. Level: Undergraduate. 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.
  • CSCI 135 - Fund of Computer Science I

    Credits: 3. Level: Undergraduate. Offered autumn and spring. Prereq., computer programming experience in a language such as BASIC, Pascal, C, etc.; coreq., M 095 or consent of instr. CSCI 104 highly recommended as prereq. or coreq.  Fundamental computer science concepts using the high level structured programming language, Java.
  • CSCI 136 - Fund of Computer Science II

    Credits: 3. Level: Undergraduate. Offered autumn and spring. Prereq., CSCI 135; coreq., M 115 or M 151 or consent of instr. Continuation of CSCI 135. 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.
  • CSCI 172 - Intro to Computer Modeling

    Credits: 3. Level: Undergraduate. Offered autumn and spring. Prereq., M 090 or higher; or ALEKS Math Placement Test Score >2. Problem solving and data modeling using computer productivity software. Emphasis using spreadsheets and database for data analysis. Credit not allowed for CSCI 172, CRT 172, and CS 172
  • CSCI 181 - Web Design and Programming

    Credits: 3. Level: Undergraduate. Electronic Publishing on the World Wide Web
  • CSCI 191 - Special Topics

    Credits: 0 TO 6. Level: Undergraduate. (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. Students taking CS classes with computer programming components should expect to use additional computer lab time outside of class.
  • CSCI 192 - Independent Study

    Credits: 1 TO 6. Level: Undergraduate. (R-6) Offered intermittently. Prereq., consent of instr. Students taking CS classes with computer programming components should expect to use additional computer lab time outside of class.
  • CSCI 198 - Internship

    Credits: 1 TO 6. Level: Undergraduate. 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.
    Course Attributes:
    • Internships/Practicums
    • Internship graduation limit 6
  • CSCI 205 - Programming Languages w/ C/C++

    Credits: 4. Level: Undergraduate. Offered spring.  Prereq., CSCI 232 and M 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.
  • CSCI 216E - Technology, Ethics & Society

    Credits: 3. Level: Undergraduate. 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.
    Course Attributes:
    • Ethical & Human Values Course
    • Writing Course-Approved
  • CSCI 232 - Data Structures and Algorithms

    Credits: 4. Level: Undergraduate. Offered autumn. Prereq., CSCI 136; prereq. or coreq., M 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.
  • CSCI 250 - Computer Mdlng/Science Majors

    Credits: 3. Level: Undergraduate. Offered autumn. Prereq., basic computer and spreadsheet literacy; coreq., M 162 or 171.  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, CSCI 250, CRT 280, and CRT 281 for credit.
  • CSCI 291 - Special Topics

    Credits: 1 TO 6. Level: Undergraduate. (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.
    Course Attributes:
    • Writing Course-Lower-Division
  • CSCI 292 - Independent Study

    Credits: 1 TO 6. Level: Undergraduate. (R-6) Offered intermittently. Prereq., consent of instr. Course material appropriate to the needs and objectives of the individual student.
  • CSCI 298 - Internship

    Credits: 1 TO 6. Level: Undergraduate. (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.
    Course Attributes:
    • Internships/Practicums
    • Internship graduation limit 6
  • CSCI 315E - Computers, Ethics, and Society

    Credits: 3. Level: Undergraduate. Offered autumn. Prereq., WRIT 222 or university approved lower-division writing course and 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.
    Course Attributes:
    • Ethical & Human Values Course
    • Writing Course-Upper-Division
  • CSCI 323 - Software Science

    Credits: 3. Level: Undergraduate. Offered autumn. Prereq., CSCI 136. 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.
  • CSCI 332 - Design/Analysis of Algorithms

    Credits: 3. Level: Undergraduate. Offered spring. Prereq., CSCI 232 and M 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.
  • CSCI 340 - Database Design

    Credits: 3. Level: Undergraduate. Offered spring.  Prereq., CSCI 232 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.
  • CSCI 361 - Computer Architecture

    Credits: 3. Level: Undergraduate. Offered spring.  Prereq., CSCI 136 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.
  • CSCI 390 - Research

    Credits: 1 TO 6. Level: Undergraduate. (R-6) Offered intermittently. Prereq., consent of instr. Directed individual research and study appropriate to the back ground and objectives of the student.
    Course Attributes:
    • Research & Creative Schlrshp
  • CSCI 391 - Special Topics

    Credits: 1 TO 6. Level: Undergraduate. (R-6) Offered intermittently. Prereq., junior standing. Experimental offerings of visiting professors, experimental offerings of new courses, or one-time offerings of current topics.
  • CSCI 392 - Independent Study

    Credits: 1 TO 6. Level: Undergraduate. (R-6) Offered intermittently. Prereq., consent of instr. Course material appropriate to the needs and objectives of the individual student.
  • CSCI 394 - Seminar

    Credits: 1 TO 6. Level: Undergraduate. (R-6) Offered intermittently. Prereq., consent of instr. Guidance in special work.
  • CSCI 398 - Internship

    Credits: 1 TO 3. Level: Undergraduate. (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.
    Course Attributes:
    • Internships/Practicums
    • Internship graduation limit 6
  • CSCI 411 - Advanced Web Programming

    Credits: 3. Level: Undergraduate. Offered intermittently. Prereq., CSCI 136.  Programming and software development techniques for developing web-based applications.  Scripting and other programming languages that are used for web-based development.
  • CSCI 412 - Game and Mobile App

    Credits: 3. Level: Undergraduate, Graduate. Offered intermittently. Prereq., CSCI 232 and 323. Programming and software development techniques for developing gaming and mobile applications. Multiple gaming environments and mobile programming languages are introduced and examined to build modern applications.
  • CSCI 426 - Adv Prgrmng Theory/Practice I

    Credits: 3. Level: Undergraduate, Graduate. Offered autumn. Prereq., CSCI 205, 232, 323 and M 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.
  • CSCI 427 - Adv Prgrmng Theory/Practice II

    Credits: 3. Level: Undergraduate, Graduate. Offered spring. Prereq., CSCI 426. Design and implementation of a major software project in a group setting, with required documentation, presentation, installation, and approval by the instructor.
  • CSCI 438 - Theory of Computation

    Credits: 3. Level: Undergraduate. Offered intermittently. Prereq., M 225 or M 307. This course focuses on understanding the limitations & capabilities of abstract models of computation, through rigorous mathematical analysis. Topics will include finite & pushdown automata, nondeterministic computation, regular expressions, generative grammars, Turing machines, undecidability, and computational complexity.
  • CSCI 441 - Computer Graphics Programming

    Credits: 3. Level: Undergraduate, Graduate. Offered intermittently. Prereq., CSCI 232 and M 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.
  • CSCI 443 - User Interface Design

    Credits: 3. Level: Undergraduate. 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.
    Course Attributes:
    • Co-Convened Course
  • CSCI 444 - Data Visualization

    Credits: 3. Level: Undergraduate, Graduate. Offered intermittently. Prereq., M 171; 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.
  • CSCI 446 - Artificial Intelligence

    Credits: 3. Level: Undergraduate, Graduate. Offered intermittently. Prereq., M 225 or M 307, and CSCI 232, or consent of instr. Using computers and software to solve problems that require intelligence. Specific topics may include knowledge representation, logical and probabilistic reasoning, machine learning, planning, game playing, information retrieval, computer vision, and robotics.
  • CSCI 447 - Machine Learning

    Credits: 3. Level: Undergraduate. 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.
    Course Attributes:
    • Co-Convened Course
  • CSCI 448 - Pattern Recognition

    Credits: 3. Level: Undergraduate. Offered intermittently. Prereq., Junior or Senior status. Introduction to the framework of unsupervised learning techniques such as clustering (agglomerative, fuzzy, graph theory based, etc.), multivariate analysis approaches (PCA, MDS, LDA, etc.), image analysis (edge detection, etc.), as well as feature selection and generation. Emphasis will be on the underlying algorithms and their implementation. Credit not allowed for both CSCI 448 and CSCI 548.
    Course Attributes:
    • Co-Convened Course
  • CSCI 451 - Computational Biology

    Credits: 3. Level: Undergraduate. 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 and this course.
    Course Attributes:
    • Co-Convened Course
  • CSCI 460 - Operating Systems

    Credits: 3. Level: Undergraduate. Offered autumn. Prereq., CSCI 232, 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. It is recommended, but not required, that the student also attend Programming Languages (in order to be prepared to write C programs) and Architecture (in order to understand interactions between the operating system and processor hardware) prior to attending this course.
  • CSCI 466 - Networks

    Credits: 3. Level: Undergraduate, Graduate. Offered spring. Prereq., CSCI 232. Concepts and practice of computer networking, network protocol layers, switching, routing, flow, and congestion control.  Network programming.
  • CSCI 473 - Cryptography

    Credits: 3. Level: Undergraduate. Prereq., CSCI 332 and either M 225 or M 307; 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-key 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.
  • CSCI 477 - Simulation

    Credits: 3. Level: Undergraduate, Graduate. Co-convene with CSCI 577. Prereq., M 172, CSCI 135, 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 and this course.
    Course Attributes:
    • Co-Convened Course
  • CSCI 478 - Multimedia Data Processing

    Credits: 3. Level: Undergraduate. Offered intermittently.  Prereq. CSCI 232 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. 
    Course Attributes:
    • Co-Convened Course
  • CSCI 490 - Research

    Credits: 1 TO 6. Level: Undergraduate, Graduate. (R-6) Offered intermittently. Prereq., consent of instr. Directed individual research and study appropriate to the back ground and objectives of the student.
    Course Attributes:
    • Research & Creative Schlrshp
  • CSCI 491 - Special Topics

    Credits: 1 TO 6. Level: Undergraduate, Graduate. (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.
  • CSCI 492 - Independent Study

    Credits: 1 TO 6. Level: Undergraduate, Graduate. (R-6) Offered intermittently. Prereq., consent of instr. Course material appropriate to the needs and objectives of the individual student.
  • CSCI 494 - Seminar

    Credits: 1 TO 6. Level: Undergraduate, Graduate. (R-6) Offered intermittently. Prereq., consent of instr. Guidance in special work.
  • CSCI 498 - Internship

    Credits: 1 TO 3. Level: Undergraduate. (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 and/or CSCI 498 applicable to computer science major or minor. A maximum of 6 credits of Internship (198, 298, 398, 498) may count toward graduation.
    Course Attributes:
    • Internships/Practicums
    • Internship graduation limit 6
  • CSCI 499 - Senior Thesis/Capstone

    Credits: 1 TO 6. Level: Undergraduate. (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.
    Course Attributes:
    • Writing Course-Upper-Division
  • CSCI 511 - Analysis, Modeling, and Design

    Credits: 3. Level: Undergraduate, Graduate. Offered infrequently. Prereq., CSCI 136 or CSCI 205 significant programming experience; M 115 or 151; CSCI 323 or software engineering experience; CSCI 340 or database experience. Software requirements analysis, modeling, and specification. Human computer interface issues as they relate to usability, process support, productivity, and organizational goals.
  • CSCI 512 - Software Quality Assurance

    Credits: 3. Level: Undergraduate, Graduate. Offered intermittently.  Prereq., CSCI 136 or CSCI 205 or significant programming experience; M 115 or 151; CSCI 323 or software engineering experience.  Software quality assurance concepts and implementation Planning, execution, and assessment of quality assurance activities throughout the software project life cycle.
  • CSCI 521 - IT Infrastructure

    Credits: 3. Level: Undergraduate, Graduate. Offered infrequently.  Prereq., CSCI 446 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.
  • CSCI 531 - Desgn & Anal Algorithms

    Credits: 3. Level: Undergraduate, Graduate. Offered intermittently. Prereq., CSCI 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.
  • CSCI 541 - Software Sci I: Req/Spec

    Credits: 3. Level: Undergraduate, Graduate. Offered intermittently. Prereq., M 225; CSCI 232 and 205 or consent of instr. Requirements analysis, techniques for representing requirements, specification development techniques, and specification languages.
  • CSCI 542 - Sftwr Sci II: Des,Imp,Tst

    Credits: 3. Level: Undergraduate, Graduate. Offered intermittently.  Prereq., CSCI 541. Continuation of CSCI 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.
  • CSCI 543 - Human-Computer Interaction

    Credits: 3. Level: Graduate. 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.
    Course Attributes:
    • Co-Convened Course
  • CSCI 547 - Machine Learning

    Credits: 3. Level: Graduate. 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.
    Course Attributes:
    • Co-Convened Course
  • CSCI 548 - Pattern Recognition

    Credits: 3. Level: Graduate. Offered intermittently.  Introduction to the framework of unsupervised learning techniques such as clustering (agglomerative, fuzzy, graph theory based, etc.), multivariate analysis approaches (PCA, MDS, LDA, etc.), image analysis (edge detection, etc.), as well as feature selection and generation. Techniques in exploratory data analysis when faced with large, multivariate datasets. Opportunities at implementation of some algorithmic approaches as well as use of preexisting tools such as the R-project statistics package. Emphasis will be on the underlying algorithms and their implementation. Credit not allowed for both CSCI 448 and CSCI 548.
    Course Attributes:
    • Co-Convened Course
  • CSCI 555 - Topics Artificial Intelligence

    Credits: 3. Level: Undergraduate, Graduate. Offered intermittently. Prereq., M 225 or M 307, and CSCI 232, or consent of instr. The study and design of artificial intelligent agents. Specific topics may include knowledge representation, logical and probabilistic reasoning, machine learning, planning, game playing, information retrieval, computer vision, and robotics.
  • CSCI 558 - Intro to Bioinformatics

    Credits: 3. Level: Graduate. 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. 
    Course Attributes:
    • Co-Convened Course
  • CSCI 565 - Database Systems

    Credits: 3. Level: Undergraduate, Graduate. Offered intermittently. Prereq., CSCI 205 and 340, or consent of instr. Relational database theory, data models, query languages, transaction processing, security, and concurrency.
  • CSCI 573 - Cryptography

    Credits: 3. Level: Undergraduate, Graduate. Prereq., CSCI 332 and either M 225 or M 307; 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-key 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.
  • CSCI 577 - Simulation Modeling

    Credits: 3. Level: Undergraduate, Graduate. Co-convene with CSCI 477.  Prereq., M 172, CSCI 135, 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. Conduct, document, and present graduate level research involving computer simulation methods. Credit not allowed for CSCI 477 and this course.
    Course Attributes:
    • Co-Convened Course
  • CSCI 578 - Multimedia Systems

    Credits: 3. Level: Graduate. Offered intermittently.  Prereq. CSCI 232 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 and this course. 
    Course Attributes:
    • Co-Convened Course
  • CSCI 580 - Parallel Processing

    Credits: 3. Level: Undergraduate, Graduate. Offered intermittently. Prereq., CSCI 232, 205, and 460. Parallel processing architectures and programming languages.
  • CSCI 594 - Graduate Seminar

    Credits: 1 TO 6. Level: Undergraduate, Graduate. (R-6) Offered intermittently. Prereq., consent of instr. Seminar on current research topics in computer science.
  • CSCI 595 - Special Topics

    Credits: 1 TO 6. Level: Undergraduate, Graduate. (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.
    Course Attributes:
    • Internships/Practicums
  • CSCI 596 - Independent Study

    Credits: 1 TO 6. Level: Undergraduate, Graduate. (R-6) Offered intermittently. Prereq., consent of instr. Course material appropriate to the needs and objectives of the individual student.
    Course Attributes:
    • Service Learning/Volunteer
  • CSCI 597 - Research

    Credits: 1 TO 6. Level: Undergraduate, Graduate. (R-6) Offered intermittently. Prereq., consent of instr. Directed individual research and study appropriate to the back ground and objectives of the student.
  • CSCI 598 - Internship

    Credits: 1 TO 9. Level: Undergraduate, Graduate. (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.
    Course Attributes:
    • Internships/Practicums
  • CSCI 599 - Thesis/Project

    Credits: 1 TO 6. Level: Undergraduate, Graduate. (R-6) Offered every term. Prereq., consent of instr. Research for and preparation of the master thesis or professional paper.