Is Computer Science the course for me (sorry, a bit extensive)?

In summary, the person is new to Physics Forums and is seeking advice on which courses to take for a Computer Science degree. They have no prior experience in programming, but are interested in computers and have good math grades. They are unsure if there are any prerequisites for Computer Science and are also considering which university to attend. They ask for opinions on the best university and college for Computer Science and for advice on how to start learning programming. Suggestions are made to start with a procedural language like C or Visual Basic, and to not give up when learning programming can be frustrating.
  • #1
Rand Al'Thor
5
0
Hi, I'm new to Physics Forums and in dire need of your help. Please bear with me, here it goes:

Though I'm sure this goes through every person's head who wants to go through University, I really have no good idea of which courses I want to take. I thought maybe computer science would be the course for me given that I've always been a bit obsessive about computers. The main problem is have absolutely no idea how to program, if you ask me about C++ (i think that's what it is), you'd be lucky to get a blank stare. But I do know basic computer usage, and my math grades are doing fairly well (9,10,11 I got an average of about 90), so I guess my question is really are there any prerequisites for Computer Science.

Also, I'll be taking this course at either uottawa or u of toronto, can anyone suggest which one would be better. Uottawa is better because I live there so no residence required, and they also tend to give scholarships, but u of t let's me finally get away from home and I hear it has the best computer science in Canada. I'm just babbling though, I'd like to hear an opinion from some one who knows what's what.

Regarding u of t, which college would you recommend for me? On the OUAC (Ontario University Application Website) they have you rank them. Do the colleges have anything to do with the courses you take, or are they just residences which offer some services on the side?

Please give me your opinions, and thanks
2nd thanks for whoever read the whole thing and answered all of the questions
 
Physics news on Phys.org
  • #2
You don't really need to know how to program to start with a CS degree. Basically, the only prerequisite would be the math.

However, if you never programmed before, how would you know you really enjoy programming or computer science?? What is it you like about computers anyway??

I suggest looking up a cool computer language (like Lisp) and try to learn the basics. If you like it, then you're good to go. If you don't like it, then you should rethink your options.
 
  • #3
micromass said:
You don't really need to know how to program to start with a CS degree. Basically, the only prerequisite would be the math.

However, if you never programmed before, how would you know you really enjoy programming or computer science?? What is it you like about computers anyway??

I suggest looking up a cool computer language (like Lisp) and try to learn the basics. If you like it, then you're good to go. If you don't like it, then you should rethink your options.

Usually I agree with you micromass, but I'm afraid I can't this time around.

If you want to learn programming, you are best to start off learning a procedural language like for example C.

The reason is that many common platforms natively compute in a procedural way. Also if you ever want to learn nuts and bolts programming like assembler or its machine code equivalent, then it will be a natural step from a procedural language like C.

Languages like LISP and Prolog definitely have their uses, but they are in a more exotic field in comparison to most software development which doesn't require the kind of applications that non-procedural languages do.

In terms of learning to program to a point where you do it as a career, this kind of thing is built up dramatically with every project you do. The more projects you do, the better you will be across the board.

Also realize that learning programming is a gradual process. It takes a long time to become really good just like any other field, so if you start programming and you make a few mistakes, don't worry.
 
  • #4
I agree with chiro however depending on how comfortable you feel, you might want to start out easier than C. I have been programming for years and the first class I took at the college level was Visual Basic. I took it because I was working full time and wanted to get my foot in the door schooling wise, and I recommend it for a few reasons. Firstly, it will get you familiar with an IDE; more specifically one that you will later be able to use to create C/C++ applications and fairly powerful as well. In VB it guesses syntax for you very accurately, making it a breeze. Secondly, it's like speaking English. VB's syntax is like speaking broken computer language, this will help you understand how a computer handles information without losing you on how to do it. It has a drag and drop design feature so making apps is something a 5 year old could do. VB is very limited in usefulness, however for someone NEVER having programmed it might be a less headache pron way into the industry. (also, if you feel more brave you might want to look into python. free online book: learn python the hard way)

go look at some C/C++ code and see if you can understand what's going on. Programming can be frustrating, and at times completely mind numbing. however one of the best feelings is when you finally get it right. The most important thing is never give up.
 
  • #5
xJakex said:
I agree with chiro however depending on how comfortable you feel, you might want to start out easier than C. I have been programming for years and the first class I took at the college level was Visual Basic. I took it because I was working full time and wanted to get my foot in the door schooling wise, and I recommend it for a few reasons. Firstly, it will get you familiar with an IDE; more specifically one that you will later be able to use to create C/C++ applications and fairly powerful as well. In VB it guesses syntax for you very accurately, making it a breeze. Secondly, it's like speaking English. VB's syntax is like speaking broken computer language, this will help you understand how a computer handles information without losing you on how to do it. It has a drag and drop design feature so making apps is something a 5 year old could do. VB is very limited in usefulness, however for someone NEVER having programmed it might be a less headache pron way into the industry. (also, if you feel more brave you might want to look into python. free online book: learn python the hard way)

go look at some C/C++ code and see if you can understand what's going on. Programming can be frustrating, and at times completely mind numbing. however one of the best feelings is when you finally get it right. The most important thing is never give up.

VB can be good as an introductory bridge to the other stuff like C, but the only concern I have relates to the flow-control of VB.

With VB a lot of the inner workings (like the entire event engine) is hidden from the user. Its easy to setup toy models, especially if they use some kind of user interface. The problem is the user loses any kind of ability to control the process and doesn't see any of the code.

Maybe as a compromise, the user could look into QBASIC or use VB without the kinds of mechanisms I described above.
 
  • #6
My undergrad school (in the US) officially doesn't require any prerequisites for the 1st computer science course in the major sequence, but if you look at the 4-year plan, it is expected that during fall semester freshman year, students take Calculus I along side the 1st computer science course.

I would suggest to the OP that if he/she hasn't done so, get a hold of the course catalogs (print or on the web) and read through the major requirements and course descriptions.
 
  • #7
Try the book "Squeak: Learn Programming by Controlling Robots" Stephane Ducasse. It's even available as a free download, and the Squeak environment is free. Squeak is a version of Smalltalk and (with this book!) is a much easier beast to start with than C++. It's fully object oriented so gets you programming in the right way for when you do encounter C++ and similar 'hybrid' languages.
 
  • #8
You don't necessarily need any formal prerequisites to start a CS degree. In fact, most universities offer a programming course specifically tailored to people who are in the same boat as you.

In my opinion, I wouldn't start with C , C++ or LISP. Make sure you learn important programming paradigms that are universal among various languages ( use of data structures, what is the point of designing a programming language a certain way.. et c ). I would start with Java or Python, they are object orientated, so it should be natural enough to get jump right in.

The risk you run with starting with C or C++ is that you might get boggled up with syntax, or all the intricacies of these languages.. Especially when all it is you want to do is learn how to manipulate a queue or a heap. Intricacies of a language are of course, but queues and heaps come first. Hopefully, by the time you come to C, you will appreciate the said intricacies.

Finally, a language being object orientated or not is not a trivial matter. As you learn a object orientated language, make sure you appreciate this programming paradigm. ( you will see the difference when you start other kinds of languages, but there is no "better" kind of language, it depends on what you are doing )
 
  • #9
Woah, thanks for all of the replies.
Anyways, I'm looking through this:
http://download.cnet.com/Programming-in-C-in-7-days/3000-20412_4-10063731.html
and I'm finding it very interesting. In response to micromass, I've always loved computers pretty much because of how useful they are to me, but I've always wanted to be able to program so I could really work with the innards. Also, a friend of mine told me it had a lot to do with creating code, which requires a lot of logic and creativity, my 2 favorite traits to use. I mentioned that I have a 90 in math, that's because I love solving equations, I love the ingeneousness (is that a word?) of it all, how it works out. And if something doesn't add up I generally don't get frusturated, I go back and find the mistake, which from what I hear is very similar to programming.
I've just started reading the above link, which uses C and C++ btw, and hopefully I'll get through a good chunk of it over the weekend, so I'll keep you updated.
Everyone else, thanks for the help, I can't follow all of your suggestions at once, so I'll see what I can do. Meanwhile though, could you tell me which college you would recommend from U of Toronto?
Cheers
(just a side point, I'm a he)
 
  • #10
I'm from the University of Toronto myself -- and relevant to my suggestion, the introductory programming courses offered here are taught using Python.

The colleges don't really matter, unless you intend to live on residence ( that is the only difference, pretty much.. we all get to take the same courses )
 
  • #11
Sweet, someone who's gone to U of T, thanks for the response. Do I need any programming prerequisite to start there, or do they start from scratch? Also, do you think I have a chance at a scholarship?
Thanks for the help
@wisvuze could u pm me?
 
  • #12
Rand Al'Thor said:
Sweet, someone who's gone to U of T, thanks for the response. Do I need any programming prerequisite to start there, or do they start from scratch? Also, do you think I have a chance at a scholarship?
Thanks for the help
@wisvuze could u pm me?

Yes, they start from scratch. If you don't know any programming, you may start with a course called CSC108H1. It is very basic, I took it myself.
Scholarships from UofT aren't as easy, since the admission rates are very high
 
  • #13
Rand Al'Thor said:
Sweet, someone who's gone to U of T, thanks for the response. Do I need any programming prerequisite to start there, or do they start from scratch? Also, do you think I have a chance at a scholarship?
Thanks for the help
@wisvuze could u pm me?

I wouldn't know what to PM you about. You can PM me though, if you wish
 
  • #14
Take a class in computer science and see if you like it at all. Most universities start there CS program would the implication that the students have little to no programming experience.

The good thing is that even if you don't like it and decide to do something else, that knowledge is very helpful in so many different fields. At my school the intro C course is a requirement for all computer, engineering, physics, and math degrees. So it won't be a waste of time regardless of what you decide afterwards
 
  • #15
Another question: I have to apply to OUAC by Monday (9th) so please answer ASAP. Which Universities are the best choice for Computer Science in Ontario? I've been reading everywhere on the internet, and it seems they're Waterloo, U of T, and Carleton U:
http://worldranking.blogspot.com/2010/02/canadian-top-computer-science.html
I'm already planning for U of T, and I can't do Waterloo for several reasons, but Carleton is relatively close to home, so it would be very convenient. The thing is, the university has gotten the reputation of being a bit of a joke, I'm not sure why. There's a saying here: Carleton, where the k stands for quality. But if it has a good program, please let me know. U Ottawa also has a CS program, does anyone know how good it is?
Wisvuze, could you give me a good beginner's link or book, preferably a link though, to guide me through python.
And thank you chunky salsa, I'll keep that in mind.
 
  • #16
Rand Al'Thor said:
Woah, thanks for all of the replies.
Anyways, I'm looking through this:
http://download.cnet.com/Programming-in-C-in-7-days/3000-20412_4-10063731.html
and I'm finding it very interesting...

Learning a bit of C is a good idea. But it's not an "object oriented" language - and you need to know what that is! Again, I'd advise learning a bit of Smalltalk next:

http://rmod.lille.inria.fr/botsinc/pier/WhyThisBook?_s=OnIVArwItyfik8x5&_k=-U4P-EOzK4VyMAB9&_n&11
 
Last edited by a moderator:
  • #17
Thanks for the link mal4mac, and just for future reference: if you have a suggestion please provide a concrete source, such as a book or link, to direct me where to go like mal4mac.
 
  • #18
If you are really planning on learning C as your first language, which isn't a horrible idea, I recommend C Primer Plus:https://www.amazon.com/dp/0672326965/?tag=pfamazon01-20

you can probably find it in PDF format online somewhere, the 4th edition is just as good imo, the 5th edition doesn't really cover anything new from my read through of it (though I haven't read the whole thing yet as I have the 4th edition). C is a difficult place to start not having any experience with programming, however its the basis of C++ meaning when you make the transition you will learn quickly.

I agree with chiro's post with learning QBASIC: https://www.amazon.com/dp/1565294394/?tag=pfamazon01-20

however I still think that Visual Basic is also a great route, this was the book assigned during the course I took and found it to have quality guided problems: https://www.amazon.com/dp/0073517259/?tag=pfamazon01-20

I strongly recommend you do learn C/C++ at some point as I run into it every day, and its very powerful and portable. I would recommend learning python however getting python to work on windows can be a headache, so instead I will suggest Ruby/Ruby on Rails. It is a very powerful language, and very intuitive. A good starting book would be Agile Development on Rails.
 
  • #19
xJakex said:
I would recommend learning python however getting python to work on windows can be a headache

Huh? Do you mean installing certain IDE's cause headaches? Getting python itself and most IDE's is no problem on windows.

http://www.python.org/getit/

They even have a self-executable windows installer for Python.
 
  • #20
Rand Al'Thor said:
Another question: I have to apply to OUAC by Monday (9th) so please answer ASAP. Which Universities are the best choice for Computer Science in Ontario? I've been reading everywhere on the internet, and it seems they're Waterloo, U of T, and Carleton U:
http://worldranking.blogspot.com/2010/02/canadian-top-computer-science.html
I'm already planning for U of T, and I can't do Waterloo for several reasons, but Carleton is relatively close to home, so it would be very convenient. The thing is, the university has gotten the reputation of being a bit of a joke, I'm not sure why. There's a saying here: Carleton, where the k stands for quality. But if it has a good program, please let me know. U Ottawa also has a CS program, does anyone know how good it is?
Wisvuze, could you give me a good beginner's link or book, preferably a link though, to guide me through python.
And thank you chunky salsa, I'll keep that in mind.
Here is a good python introduction to programming book:

https://www.amazon.com/dp/1934356271/?tag=pfamazon01-20

This is the book they use in CSC108, at U of T. And the authors are actually the lecturers who teach the course.

Carleton is a great school, I haven't heard much about UOttawa ( but I'm sure it's also great )
 
Last edited:
  • #21
Sorry, yes getting a good IDE for python can be the headache. Although I guess one could just do it the old fashioned way and be fairly effective with python so my assessment of that is plain false. I primarily used Ruby now over python, and it's been a while since I've needed to on windows so I apologize for that. A decent book for python might be: http://learnpythonthehardway.org/ they offer a free html version of the book. I personally haven't used it but the reviews are decent, it's free, and it's doable without an IDE.
 
  • #22
xJakex said:
Sorry, yes getting a good IDE for python can be the headache. Although I guess one could just do it the old fashioned way and be fairly effective with python so my assessment of that is plain false. I primarily used Ruby now over python, and it's been a while since I've needed to on windows so I apologize for that. A decent book for python might be: http://learnpythonthehardway.org/ they offer a free html version of the book. I personally haven't used it but the reviews are decent, it's free, and it's doable without an IDE.

Yea, certain IDEs are more difficult to manage with windows, but that's mostly because the community itself is not as populate with windows users. However, you are not stuck with IDLE ( the stock IDE for python ) if you are a windows user:

http://wingware.com/downloads/wingide-101 ( this is a pretty good one for starting out )

http://pythonide.blogspot.com/ (this one is pretty popular )
 
  • #23
wisvuze said:
Yea, certain IDEs are more difficult to manage with windows, but that's mostly because the community itself is not as populate with windows users. However, you are not stuck with IDLE ( the stock IDE for python ) if you are a windows user:

http://wingware.com/downloads/wingide-101 ( this is a pretty good one for starting out )

http://pythonide.blogspot.com/ (this one is pretty popular )

Yeah, oddly enough python is what got me stuck using linux because that's the community, now I don't really use it lol. Thanks for those, I have been using windows increasingly more at work so I appreciate the insight.
 

Related to Is Computer Science the course for me (sorry, a bit extensive)?

1. What is computer science?

Computer science is a field of study that involves the theory, design, development, and application of computers and computing systems. It encompasses a wide range of topics, including programming, algorithms, artificial intelligence, computer graphics, and more.

2. Is computer science the right course for me?

That depends on your interests and goals. If you enjoy problem-solving, working with technology, and have a strong foundation in math and logic, then computer science could be a great fit for you. It is also a rapidly growing field with a high demand for skilled professionals, making it a good choice for those seeking job opportunities.

3. What skills do I need to succeed in computer science?

Some of the key skills for success in computer science include critical thinking, problem-solving, attention to detail, and strong communication and teamwork abilities. It is also important to have a solid understanding of math and programming concepts, as well as a willingness to continuously learn and adapt to new technologies.

4. What can I expect to learn in a computer science course?

In a computer science course, you will learn a combination of theoretical and practical skills. This may include programming languages, data structures, algorithms, database management, web development, and more. You will also learn how to design, analyze, and optimize computing systems and how to approach and solve complex problems.

5. Are there job opportunities for computer science graduates?

Yes, there are many job opportunities for computer science graduates in a variety of industries. Some common career paths include software development, data analysis, web development, cybersecurity, and artificial intelligence. With the continuous growth of technology, the demand for skilled computer science professionals is expected to remain high in the future.

Similar threads

  • STEM Academic Advising
Replies
3
Views
859
  • STEM Academic Advising
Replies
8
Views
2K
  • STEM Academic Advising
Replies
1
Views
543
  • STEM Academic Advising
Replies
6
Views
1K
Replies
15
Views
2K
  • STEM Academic Advising
Replies
6
Views
3K
Replies
2
Views
1K
Replies
19
Views
2K
  • STEM Academic Advising
Replies
2
Views
1K
  • STEM Academic Advising
Replies
23
Views
3K
Back
Top