Welcome to College Confidential!

The leading college-bound community on the web

Sign Up For Free

Join for FREE, and start talking with other members, weighing in on community discussions, and more.

Also, by registering and logging in you'll see fewer ads and pesky welcome messages (like this one!)

As a CC member, you can:

  • Reply to threads, and start your own.
  • Post reviews of your campus visits.
  • Find hundreds of pages of informative articles.
  • Search from over 3 million scholarships.
Please take a moment to read our updated TOS, Privacy Policy, and Forum Rules.

Computer Science viability?

GeekMom63GeekMom63 Registered User Posts: 1,957 Senior Member
edited March 2009 in Colorado College
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?

Post edited by GeekMom63 on

Replies to: Computer Science viability?

  • 07DAD07DAD Registered User Posts: 5,169 Senior Member
    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.

    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

    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

    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.

    CP255, CP355 - Independent Study.
    Prerequisite: Consent of Instructor. ½ or 1 unit

    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

    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

    CP341 - Topics in Computer Science. Special topics in computer science not offered on a regular basis. 1/2 or 1 unit

    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

    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

    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

    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

    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.

    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

    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

    Requirements for Computer Science Major:
    A student must complete:

    CP222 - Computer Science II
    MA251 - Number Theory

    In addition, the following courses are required:

    a. CP270 - Operating Systems
    CP275 - Computer Organization

    b. One unit from:
    CP342 - Distributed Systems
    CP344 - Database Systems

    c. One unit from:
    CP360 - Computer Graphics
    CP365 - Artificial Intelligence
    CP341 - Topics in Computer Science

    d. CP405 - Theory of Computation
    CP407 - Analysis of Algorithms

    (With all prerequisites, the major includes 11 units.)

    ^ Top

    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)

    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.

    ^ Top

    Here are the course offerings and requirements. Anyone have an opinion on the viability of the degree?

    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. http://www.coloradocollege.edu/dept/ma/#Reqs
  • CanadianmomCanadianmom Registered User Posts: 187 Junior Member

    You are the unsung hero of this forum.
  • tk21769tk21769 Registered User Posts: 9,723 Senior Member
    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.

    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.

    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.

    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.

    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!
  • CanadianmomCanadianmom Registered User Posts: 187 Junior Member
    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.
  • 07DAD07DAD Registered User Posts: 5,169 Senior Member
    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.

    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.

    I'm sure your kid would be a great CC addition.
  • tk21769tk21769 Registered User Posts: 9,723 Senior Member
    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.
This discussion has been closed.