Computer Science viability?

<p>My son is interested in Computer Science (SOFTWARE) and in Colorado College. He loves the block scheduling, and we live in Colorado, but I'm concerned about the computer science degree. The catalog doesn't have many classes. Is the computer science degree viable? Does it reach critical mass? How often are computer science classes offered?</p>

<p>Thanks!</p>

<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"&gt;http://www.coloradocollege.edu/dept/ma/#Reqs&lt;/a&gt;&lt;/p>

<p>07DAD,</p>

<p>You are the unsung hero of this forum.</p>

<p>I'm not sure what you mean by "viability", or what your real concerns are, but I'll offer some thoughts. I have a graduate degree in computer science. I've been working on software development projects for a number of years. My kid has been accepted at CC.</p>

<p>I don't think the school is known as a computer science powerhouse, not outside of Colorado anyway. However, it does offer an excellent general education in the liberal arts and sciences. In the long run, this can be more valuable than having the most current technical knowledge. </p>

<p>There is more involved in developing software than programming skills alone. You need to be able to understand the customer's business problem, analyze requirements, and very often, work as part of a team. Unless you are an unusually gifted, creative programmer, you might not be able to rise above a fairly low plateau in your career based on programming skill alone. Communication skills are very important. So is the ability to absorb complex information, reduce it to essentials, and represent it in a way that all stakeholders in your project can understand. These skills can be cultivated in other courses besides CS courses.</p>

<p>It's a good sign that those math courses are required for distinction. If your son wants to be a computer scientist, not just a programmer, I'd encourage him to take them, in addition to some lab science courses. </p>

<p>This looks like a pretty standard small college CS curriculum. One option to consider would be some kind of dual degree in CS plus another field (such as Math, Economics, or Environmental Science). In other words, build expertise in modeling solutions within some important problem domain. Develop an understanding of the domain, not just the problem-solving techniques. Then you become an expert consultant on approaches to the whole problem. And, don't forget to have fun!</p>

<p>My S is thinking along these lines. His current plan is to double major in Econ and Environmental Studies for just the reason you describe above. A speaker with a private company who came to his class put this idea in his head. Developing this kind of "larger domain" thinking is where I believe CC excels.</p>

<p>tk21769--Has your kid decided whether to attend CC? You seem to have an excellent view of the value of a liberal arts education, how to achieve a broad educational focus incorporating computer science and an appreciation that the college experience should include having some fun.</p>

<p>My S is a Mathematical Economics major, dance minor and is having a blast (especially with the block arrangement) while keeping his eye on the prize.</p>

<p>I'm sure your kid would be a great CC addition.</p>

<p>07Dad, thanks for the encouragement. We are leaning toward CC, but still are waiting until April to see what all our options are, including the financial situation.</p>