Carroll College - Helena, MT

home » academics » math » cs » faculty » phil rose » courses

courses

Spring 2006

CS101 Survey of Computer Science

An overview of hardware, software, computers and society, and an introduction to major application packages, including graphics, slide presentation software, movie software, word processor, electronic spreadsheet and others. This course does not count towards the minors or majors in the computer science program. Weekly lab and class. Click here for course syllabus.


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 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 2007

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

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 laboratory applies the concepts studied through the use of an actual assembler or simulation software. Three (3) one-hour lectures and one two-hour laboratory per week. Fall semester

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.