Carroll College, Helena Montana


Spring Courses

 CS 120 Data Structures using Java

An introduction to program design, fundamental data structures, and analysis of algorithms. Includes contiguous and linked lists (stacks, queues, and general lists), search and sort techniques, binary trees, tables, hashing, recursion, and graphs. Three (3) one-hour lectures and one two-hour laboratory per week. Prerequisite: A grade of "C" or better in CS 110. Spring semester.

MA 301 - Foundations of Mathematics

An examination of logic, sets, functions, and methods of proof as a foundation for the study of mathematics. Other topics covered include mathematical induction, recursive definitions, relations (equivalence relations), elementary number theory, transformational geometry, and some history of mathematics. Prerequisite: Grade of "C" or better in MA 233. Spring semester.

CS 309 - Computer Architecture

An introduction to computer design and implementation by viewing  the modern computer as a hierarchy of levels. The digital logic level, the microarchitecture level, the instruction set architecture level, the operating system machine level, and the assembly language level are all discussed.  An integrated labroarory applies the concepts studied through the use of an actual assembler or simulation software.   Three one-hour lectures and one two-hour laboratory per week. Spring semester.

CS 495 - Senior Seminar

Various topics not covered in other computer science courses are researched and discussed. Students consider selected readings, and each makes a presentation and leads a discussion on a chosen topic. Normally taken in the last year of residence. Spring semester.

Fall Courses

 CS 110 Introduction to Computer Science Using Java

An introduction to the fundamentals of programming and software development using the object oriented programming language Java and the 3-D modeling program Alice. An integrated laboratory provides experience in programming and algorithmic problem-solving. Topics include computing and object-oriented design methodology, Java fundamentals, modifying objects, control constructs, function usage basics and libraries, programmer-defined functions, parameter passing, arrays, the class construct and object-oriented design, event-based programming, and implementing abstract data types. Three (3) one-hour lectures and one two-hour laboratory per week. Fall semester.

MA 121 Differential Calculus

Tthis is the first of a two-semester, six-credit calculus sequence. We begin the first semester by reviewing functions from several perspectives (symbolic, numeric,  and graphic). For most of the course we study differential calculus, empahsizing how we can use calculus to understand real-world problems such as police radar detection, laying an oil pipeline around a swamp, and understaning motion.  We use computers and calculators extensively, and we also focus on learning how to explain mathematics verbally and in writing. The sequence MA 121-MA 122 is considered to be equivaline to MA 131. Prerequisites: Four years of high school mathematics including precalculus.

MA 328 Discrete Mathematics

A look at some actual applications of discrete mathematics that emphasize such unifying themes as mathematical reasoning, algorithmic thinking, modeling, combinatorial analysis, the kinds of structures used in discrete mathematics, and the use of technology. Possible topics include cryptography, primes and factoring, computer passwords, networking problems, shortest paths, scheduling problems, building circuits, modeling computation, and correctness of algorithms. Three (3) one-hour class periods with a substantial computing component illustrating the technology and the ideas studied. Prerequisite: Grades of ÒCÓ of better in MA 131-232. Fall semester.

MA/CS 403 Introduction to Modern Cryptography

This course is intended to be an introduction to the essential core areas of modern cryptography. We begin with a look at historical cryptography and then move into more modern concepts. Mathematical background is provided as needed and informal descriptions of the cryptosystems along with more precise pseudo-code descriptions are given. Algorithms and systems will be illustrated with many examples, and their mathematical underpinnings carefully explained. Because of the heavy use of mathematics made in this course (number theory, discrete mathematics, probability, linear algebra and probably some calculus), this course is cross-listed and may be taken for either mathematics or computer science credit.