Computer Science Majors
Frequently Asked Questions
Computers are everywhere these days, and most people in our
society will rely heavily on them in both their professional and
personal lives. Computer Science (CS) is an exciting and vital field
that is tremendously interesting and fun for many people, but not
everyone who likes to use or program computers will enjoy majoring in
this field. In general, the people who will be most successful in CS
are those who will be really interested in learning the theory and
techniques of how computer programs work. CS may or may not be a
good fit for people who primarily are interested in doing things
with computers. People who really like using computers but who aren't
really interested in the underlying computation techniques for developing
new applications will probably not enjoy a computer science major.
An analogy: if what you like is just playing games, CS probably will not
be a good fit; if what you want to do is to program computers to play
games, CS may or may not be a good degree choice; but if you are
interested in the theory and practice of making games run really fast, or
the precise mathematical techniques for putting the dots and shapes on the
screen, CS is likely to be an excellent choice for you.
Another useful analogy may be the differences between people who
want to drive cars, those who want to repair cars and fix engines
and those that want to understand the internal combustion engine
and design new engines. A CS major learns how to design new engines,
but most will end up doing something closer to repairing and maintaining
engines. If you just want to drive a car and never look under the
hood, CS is not for you.
A Computer Science degree has a heavy mathematics component.
Some of this math helps you directly in learning our CS curriculum,
and all of it helps you develop ways of thinking and of viewing problems
that are critical for computer scientists. If you really dislike math
you are likely to find the first two years of CSU's CS program challenging.
It sometimes comes as a surprise to new students that computer
science has as much to do with math as it does with computers.
Students who are interested in applying computers to another field,
for example, biology or chemistry, may wish to consider majoring
in the other field with a minor or double major in computer science.
While computer science degree requirements are pretty similar across the
country, the school, the location, the faculty, and the other students
can make the difference between an enlightening and enjoyable four years,
and a stressful and unpleasant experience. Prospective students should
consider the quality of the program they intend to major in as well as
the atmosphere of the school itself.
The CS Department has 17 full-time, regular faculty. Professors teach most
of the undergraduate courses and welcome contact with undergraduate
students. Class size varies can vary considerably but is always under 100.
Class size goes down to between 20 and 40 for more advanced courses.
Computer laboratories are open long hours, including evenings and weekends.
What sets CSU's computer science program apart from others is its
practical orientation, and its accessible and congenial faculty combined
with cutting edge, world-class research. The CS department maintains
close relations with information technology companies in the region,
consulting with its Industrial Advisory Board for recommendations on
improving its program. There are many opportunities for undergraduates
to be involved in faculty research.
Computer science is a remarkably young field. It was just over fifty
years ago that the first electronic computers were developed, and there
was no recognition at the time of computer science as a field of study
separate from electrical engineering or mathematics. Over time,
as computers became increasingly powerful and were applied to more and
more tasks, people began to realize that the task of programming
those computers to solve problems was an extremely difficult problem
requiring theories and practice unlike those used in existing fields.
Computer science-the science of solving problems with the aid of
a computer-became a new discipline in its own right. Because of
its importance to the modern world, computer science has now become
an extremely exciting field of study and is likely to remain one well into
the twenty-first century.
Many students are attracted to the computer science major because they find
computer programming to be a challenging but enjoyable endeavor. While it
is true that the computer science major includes a significant amount
of programming, it is important to realize that there is a reason why
the major is not called "computer programming."
The reason for including the term science in computer science is that
the theory of problem solving plays a large role in the application of
computer technology to practical problems. Unfortunately, the emphasis
society places on computer applications often tends to overshadow the
science on which those applications are based. The science, however,
is there nonetheless. Before you write most applications, you
will need a good deal of background knowledge concerning data
structures, algorithms, and the management of complexity. It is this
knowledge from which the science part of computer science stems. Now
that's not to say that your typical computer hacker writing yet
another version of the Asteroids video game took years of computer
science courses before writing the first line of code. However, once
you are ready to cross the line between "hacking" and building
maintainable applications, you must rely on a more fundamental knowledge
of programming tools, concepts, and methodology. It is important to
realize that computer science goes far beyond just concepts
of programming, encompassing such diverse areas as discrete mathematics,
logic, computer architecture, and numerical analysis. These theoretical
foundations are fundamental to computer science and to the development
of many programming applications.
Many people have a hard time distinguishing between different majors having
to do with computers, and while there are some points of overlap, in
general, the subject matter of each discipline is quite distinct.
Computer Engineering (ECE) is the study of the physical circuitry
that makes up a computer. It is the study of the design of computers
as specific kinds of electronic machines. It is therefore related to
electrical engineering and requires the most mathematics.
Computer Science (CS) is the study of the instructions, or software, that
tells a computer which tasks to perform. Computer science is about
writing computer code in order to create user software applications from
scratch (this is software engineering). It concerns the most basic kind
of computer programming: the creation of operating systems,
network software, user applications, and device drivers. This
major requires considerable mathematical skill, though not as much as ECE.
Computer Information Systems is the study of the use of computers and
computer software in a business or organizational environment. CIS majors
study some programming, but usually not in as much technical depth as a CS
major. By and large, CIS graduates are concerned with setting up systems,
made up of commercially available hardware and software, to solve
specific business problems, such as keeping track of inventories or
expenses, or printing payroll checks.
One way to think of the difference is in terms of an analogy: if computer
engineers and computer scientists design the car (hardware and software),
the CIS folks drive the car.
This is not normally the kind of thing taught in a University major,
but is more likely to be a program available at a community college or
vocational school.
The department's computing facilities include 150 Unix-based
systems (Sun, HP, Linux), 125 Windows-based systems, 28 X-terminals,
and 5 Macintoshes. Of these systems, 85 Unix workstations
and 22 Windows workstations are housed in open laboratories
for general student use or available as servers on the department
network. The rest are devoted solely to faculty and graduate
student work and research. The Department network is connected
to the campus backbone via a 100 Mbps link. The backbone is
connected to the internet by both a 40 Mbps link to Internet One
and a 150 Mbps link to Internet Two.
High school students intending to major in computer science should
take all the mathematics, science, and English they can.
Mathematics is especially important for computer science.
New computer science (CS) majors tend to struggle for reasons that
have very little to do with computers. More often than not, such
struggles are rooted in weaknesses related to math. If you plan
on getting a CS degree, you need to come to grips with one important
fact first: computer science has as much to do with math as with computers.
In addition, students should take a computer programming course if possible.
AP computer science will not only prepare you for a major in computer
science, you can earn up to eight semesters of credit towards the
degree.
Transfer students should have taken at least one calculus course, and
a computer programming course, preferably in Java or C++.
Students with strong mathematical problem solving skills and a willingness to
spend a long time concentrating on small, precise details as part of a larger
problem should do well in computer science.
The requirements for the CS majors can be found at
CS Major
Requirements.
A list of possible careers with a degree in computer science
can be found by clicking on the following link:
Careers in
Computer Science.
In Fall 2003, 80% of graduates had job offers before graduation; the average starting salary for graduates of the computer science program was about $45,000.
Call the Office of Admissions (970/491-6909) or go to:
The Office of Admissions
for further instructions.
Is computer science for me?
Why should I consider computer science at CSU?
What is Computer Science?
Computer science versus programming:
How is computer science different from computer engineering or computer information systems?
Is there a major that will help me to learn to repair computers?
What kinds of facilities do you have?
What courses should I take while in HS, or before I transfer to prepare to be a CS major?
What kinds of skills or talents do I need to succeed in computer science?
What are the requirements for a CS degree?
What kinds of jobs can I expect after graduating?
What is the average starting salary for people with a BSCS?
How do I apply to CSU?