Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

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

  1. Jan 5, 2012 #1
    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 lets 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
  2. jcsd
  3. Jan 5, 2012 #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.
  4. Jan 6, 2012 #3


    User Avatar
    Science Advisor

    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.
  5. Jan 6, 2012 #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 whats 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.
  6. Jan 6, 2012 #5


    User Avatar
    Science Advisor

    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.
  7. Jan 6, 2012 #6


    User Avatar
    Homework Helper

    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.
  8. Jan 6, 2012 #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.
  9. Jan 6, 2012 #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 )
  10. Jan 6, 2012 #9
    Woah, thanks for all of the replies.
    Anyways, I'm looking through this:
    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?
    (just a side point, I'm a he)
  11. Jan 6, 2012 #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 )
  12. Jan 6, 2012 #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?
  13. Jan 6, 2012 #12
    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
  14. Jan 6, 2012 #13
    I wouldn't know what to PM you about. You can PM me though, if you wish
  15. Jan 6, 2012 #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 dont 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 wont be a waste of time regardless of what you decide afterwards
  16. Jan 7, 2012 #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:
    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.
  17. Jan 10, 2012 #16
    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 [Broken]
    Last edited by a moderator: May 5, 2017
  18. Jan 10, 2012 #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.
  19. Jan 10, 2012 #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/Primer-Plus-5th-Stephen-Prata/dp/0672326965

    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/QBasic-Example-Special-Pub-Que/dp/1565294394

    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/Programming-...=sr_1_8?s=books&ie=UTF8&qid=1326242839&sr=1-8

    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.
  20. Jan 10, 2012 #19
    Huh? Do you mean installing certain IDE's cause headaches? Getting python itself and most IDE's is no problem on windows.


    They even have a self-executable windows installer for Python.
  21. Jan 10, 2012 #20

    Here is a good python introduction to programming book:


    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: Jan 10, 2012
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook