Several majors relate to some aspects of computing. You may know that you like computers and wonder if there's a major here for you. There probably is. Here is a brief description of several different computer-related fields you can explore.
Computer Science is the science of programming and proving things about programs. Computer scientists write programs to solve general problems, and especially programs to make computers easier to use, by making better operating systems, better compilers and languages, and friendlier interfaces. They also prove that the programs work correctly, that they run quickly or cannot possibly be made to run quickly, or even that programs to solve some problems cannot exist.
Courses cover programming, computer languages, algorithms, logic, graphics, compilers, operating systems, computer networks, artificial intelligence, and more.
Computer Engineering is a program of the Electrical and Computer Engineering department. It emphasizes the assembly of whole computer systems from components like CPUs, memories, buses, I/O devices, networks, and so on, in ways that are economical and computationally fast. ECE majors also learn programming, to understand better how computers are used.
Courses cover computer architecture and system design, computer systems performance measurement, robotics, digital circuits and system design, semiconductors, and more.
Computational and Applied Math uses computers to solve hard math problems. The problems are often large, depending on thousands or millions of pieces of data, and solutions are approximate. The problems solved are often practical problems about the real world, like scheduling pilots and airplanes for a major airline or predicting the flow of a pollutant in an underground rock formation. These large problems are often solved on large computers consisting of many processors working together.
Courses cover linear algebra and linear programming, optimization, game theory, the solution of engineering equations, and more.
Because these fields overlap, you can take introductory courses in your first two years that satisfy requirements for several of them. These introductory courses include math, physics, chemistry, and the basics of programming. You can decide in your fourth semester which computing major you prefer, and you'll be in fine shape to finish in the standard four years.
Many Rice students want to do more than just take the courses for a major and graduate. There are several ways you can do something a little extra if you want:
Teach your classmates. The computer science department is eager to hire good students to grade their peers and supervise laboratory sessions, either for pay or for academic credit. Ask about it in the CS department office.
Work on a real computer network. The computer network on which all programming work is done hires students for part-time and summer work. Students get valuable experience that helps enormously in the postgraduate job search.
Explore the frontiers of science with a genuine computer scientist. Not all undergraduates are invited to participate, of course, but the best can help in important research and join in the publication of scientific papers. Undergraduate research experience helps enormously those seeking postgraduate study.
Double major in more than one field. Some fields, like Computer Science and Electrical Engineering, make easy double majors because their areas of interest overlap. There are reasonably large overlaps between Computer Science and any of Computational and Applied Math, Managerial Studies, and Cognitive Science; any of these can join with Computer Science for a not-too-difficult double major. More challenging, but possibly more rewarding, would be a double major that encompassed computational biology, computer music, or computational chemistry, to name just a few of the possibilities.
It's natural to ask whether a degree in computer science leads to job, and if so, what kind? Rice can't guarantee you a job, but an large number of Rice computer science majors have gone on to graduate school, or to work for Microsoft, IBM, Trilogy, Shell, and other corporations. With a computer science degree, you are qualified to work as a programmer, software engineer, systems analyst, IT consultant, etc. Many such jobs are available. Many other fields are just entering the computer age, so it is possible to combine an interest in computing with an interest in art, architecture, the law, medicine, or another field, and find a job that applies computing to that field.
The typical plan is for a CS major to take three computing courses as a freshman. These courses are also appropriate for non-majors.
COMP 210 (freshman, fall) is the introductory course for the computer science major. It presents the fundamentals of program design in a particularly simple, but powerful, programming language called Scheme. No previous programming experience is expected, and even people with programming experience learn a lot in the course.
COMP 212 (freshman, spring) introduces object-oriented programming using the Java language. It emphasizes program construction techniques (in particular, design patterns), data structures, and algorithms.
COMP 280 (freshman, spring) presents many of the mathematical principles that underlie computation, including logic, proofs, and mathematical induction. These principles are applied to problems from COMP 210 and 212.
There are several courses in various departments that introduce computing from a different perspective than the computer science department offers.
COMP 100 concerns business-oriented computing and the use of related software tools. It does not include programming, and is not intended for science and engineering majors.
COMP 110 (also known as NSCI 230) is an introductory computing course focusing on solving problems in science and engineering. It is intended for students who have little or no programming background. It is required for CAAM majors.
COMP 200 is a broad overview of the main concepts in computer science, including an introduction to programming. It is not intended for engineering majors.
CAAM 210 and CAAM 211 present the use of computers and programming in the solution of engineering problems. For programming, 210 uses C, 211 uses Fortran, and both use MATLAB. Both versions presume some calculus and physics. One or the other, or COMP 210, is required for most engineering majors.
What computers do we use?
How can I use my own computer?
Do I need any particular kind of software?
What programming languages do we use?
What do they look like?
(define (fact n)
(cond [(zero? n) 1]
[else (* n (fact (sub1 1)))]))
and two versions in C or C++:
int fact(int n)
{
if (n == 0)
return 1;
else
return n * fact(n-1);
}
int fact(int n)
{
int i;
int product = 1;
for (i=n; i > 0; i -= 1)
product *= i;
return product;
}
A Java version would be very similar to either of the latter two.