<p>
[quote]
COMPUTER SCIENCE CURRICULUM:
Courses:
MA251 - Number Theory. A careful study of major topics in elementary number theory, including divisibility, factorization, prime numbers, perfect numbers, congruences, Diophantine equations, and primitive roots.
Prerequisite: MA203 or (MA128 and CP222) - 1 unit. </p>
<p>CP122 - Computer Science I. Introduction to the design of algorithms, the design of data structures, and the design of computer programs using the computer language JAVA. This is the first course for those interested in computer science. 1 unit - Janke, Bredin, McDougall</p>
<p>CP222 - Computer Science II. Examination of algorithms for searching, sorting, and manipulation of data structures. Exploration of queues, stacks, trees, and graphs using a variety of design techniques including recursion and object-oriented programming. Prerequisite: CP122. 1 unit. Bredin, Janke</p>
<p>CP248 - Introduction to Robotics. Construction and programming of a small robot over the course of a semester. Introduction to algorithms and techniques for navigation, planning, and error correction.
Prerequisite: CP122. ½ unit. </p>
<p>CP255, CP355 - Independent Study.
Prerequisite: Consent of Instructor. ½ or 1 unit</p>
<p>CP270 - Operating Systems. Investigation of ideas used in the design of computer operating systems. Topics include memory management, threading and concurrency, security, file systems, and networking.
Prerequisite: CP222. 1 unit. Bredin</p>
<p>CP275 - Computer Organization. The design and organization of computer processors and memory. Topics include micro-processor architecture, data representation, instruction set design, pipelining, memory management, assembly language, and peripheral device management.
Prerequisite: CP222. 1 unit . Bredin, Janke</p>
<p>CP341 - Topics in Computer Science. Special topics in computer science not offered on a regular basis. 1/2 or 1 unit</p>
<p>CP342 - Distributed Systems. Fundamentals of network design and interaction of computing systems. Topics include network protocols, security, synchronization, transactions, and network programming.
Prerequisite: MA251 and CP270. 1 unit. Bredin</p>
<p>CP344 - Database Systems. Introduction to data base management systems including the design, implementation, and analysis of data bases. Topics include relational models, concurrent access, data mining, and SQL programming.
Prerequisite: MA251 and CP270. 1 unit. Janke</p>
<p>CP360 - Computer Graphics. Introduction to the algorithms and theory necessary for producing graphic images with the computer. Topics include perspective, projection, hidden line removal, curve design, fractal images, shading, and some animation. Prerequisite: CP342 or CP344. 1 unit. Janke</p>
<p>CP365 - Artificial Intelligence. An introduction to the theories and methods of artificial intelligence. Topics include problem solving, game playing, knowledge representation, natural language understanding, and expert systems.
Prerequisites: CP342 or CP344. 1 unit. Bredin</p>
<p>CP398 - Seminar in Computer Science. A semester-long study based on journal articles in computer science or on problems selected by the instructor. Topics will be chosen based on interest and accessibility, and there will be some writing and presentation of material. May be repeated for a total of 1 unit.
Prerequisite: CP270 and Consent of Instructor. ½ unit.</p>
<p>CP405 - Theory of Computation. Examination of the logical basis of computation. Topics include automata theory, Turing machines, time complexity, and space complexity theory.
Prerequisite: CP342 or CP344 or (CP222 and MA321). 1 unit. Bredin</p>
<p>CP407 - Analysis of Algorithms. Investigation of the efficiency and design of algorithms including order estimates, complexity, and NP problems.
Prerequisite: CP342 or CP344 or (CP222 and MA313). 1 unit. Janke</p>
<p>Requirements for Computer Science Major:
A student must complete: </p>
<p>CP222 - Computer Science II
MA251 - Number Theory</p>
<p>In addition, the following courses are required:</p>
<p>a. CP270 - Operating Systems
CP275 - Computer Organization </p>
<p>b. One unit from:
CP342 - Distributed Systems
CP344 - Database Systems</p>
<p>c. One unit from:
CP360 - Computer Graphics
CP365 - Artificial Intelligence
CP341 - Topics in Computer Science</p>
<p>d. CP405 - Theory of Computation
CP407 - Analysis of Algorithms</p>
<p>(With all prerequisites, the major includes 11 units.)</p>
<p>^ Top </p>
<hr>
<p>Distinction in Computer Science
To be considered for distinction, the student must complete the major plus two additional units selected from:
CP342 (Distributed Systems),
CP344 (Database Systems), CP360 (Computer Graphics),
CP365 (Artificial Intelligence), CP341 (Topics in Computer Science),
MA220 (Linear Algebra), MA313 (Probability),
MA315 (Differential Equations), MA318 (Numerical Analysis),
MA325 (Graph Theory)
CP248 (Robotics)
CP398 (Seminar in Computer Science),
MA227 (Mathematical Software)</p>
<p>The student must also complete a senior project. Distinction is determined by a vote of the department faculty where the student's performance in the computer science curriculum is considered.</p>
<p>^ Top
[/quote]
</p>
<p>Here are the course offerings and requirements. Anyone have an opinion on the viability of the degree?</p>
<p>Here is a link to the offerings over the last several years so you can get an idea of how often the course is offered. <a href="http://www.coloradocollege.edu/dept/ma/#Reqs%5B/url%5D">http://www.coloradocollege.edu/dept/ma/#Reqs</a></p>