Writing programs and apps is definitely computer science, unless you find a school with even more specific majors. Most often, there are specializations within computer science majors, since it's a very broad field. Here's an example from my school, which divides computer science into
8 threads.
As for the classes, the ease and time needed for your classes varies greatly from person to person. I've seen people with no programming experience breeze through programming classes, and I've seen people who've taken programming in high school have a tough time with classes. Things like this are dependent on how you learn as a student, what your potential professors' teaching styles are like, and how the curriculum is organized. It is definitely true that college courses at "better" universities are more time consuming and difficult than high school courses. Usually, if you have the discipline to take the time to work on and study the material until you get it, you'll be fine. This is true of all majors worth studying. I know most students only struggle here when they don't have the motivation or desire to devote the needed time to their studies and assignments. College is just one big time management practice field.
Unfortunately, I can't give you any relevant info about getting a job out of college as a CS major, as I'm neither out of college nor a CS major. My degree is only half-CS...
You do well in math? Excellent. Your life will be that much easier. If you go into algorithm/AI programming, that will be incredibly useful. If you plan on doing graphics in programming, you'll want to pay a great deal of attention in linear algebra. Most other math-intensive things relating to CS concentrate on calculus, mathematical logic, and a tiny bit of number theory.
I would strongly recommend at least attempting to learn a language or two during your senior year. I personally would recommend trying out Java, though many people learn Python first. Java's easier to learn because it's centralized. Sun hosts both Java
tutorials and the entire Java
API (application programming interface). Just getting familiar with thinking out how to create a program and getting comfortable with at least one language's syntax will give you a huge advantage.
One thing worth mentioning before you start looking at those is the different types of languages. As I've learned, there are three major types: object-oriented, procedural, and scripting (interpreted) -- someone correct me if necessary. Java is an object-oriented language, and C is procedural. This means that you must follow a very different pattern of thought when developing an application in Java than if you were doing it in C. In short, some languages work
very differently from each other, and you'll need to keep this in mind when learning new ones.
Note: If you decide to learn Java, I would strongly recommend using
Eclipse as your IDE (integrated development environment). It has nifty things like code-completion and auto-formatting. It's really complex at first, but if you take it slow and take time to figure things out, you'll be fine. If Eclipse isn't fitting, I hear many people are starting to use
NetBeans.
But yeah, I've rambled on enough X-D Good luck! ^.^
This post has been edited by TheBeege: 1 Apr, 2009 - 01:54 PM