1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Computer science courses and college credit

  1. May 24, 2015 #1

    I am a student in high school who is about to go on summer vacation. During my long vacation, I would like to learn about computer science and mathematics. I have a few questions on this:
    1. What computer science courses do you recommend me to take in order (I know the Java programming language and its libraries)?
    2. What do you recommend me while I study (tips, things to avoid, etc)?
    3. Are there online courses where I can get college credit by doing the work (and explain how to get credit)?

    Thank you.
  2. jcsd
  3. May 25, 2015 #2


    User Avatar
    Education Advisor

    I'm currently in a similar situation. I'm a college student, but have not yet had any exposure to programming in any of my courses. This fall I'm taking an introductory programming course, and I'm getting a bit of a jump on it this summer. The course I'm taking works mainly in C and Java, and this summer I'm spending some time self-teaching a bit of coding in Python. I'm using the open source text Think Python, in conjunction with an Introduction to Computer Science and Programming course on MIT Open Course Ware. I'm only about two weeks into it at this point, but it's been going very well. This is a very clear book, and the material on MIT OCW is very helpful.

    As I've always been told, having experience with a given specific language isn't really that crucial early on. What really matters is getting experience with the overall process of programming. Python is reputed to be one of the best starter languages, and from what I've seen of it so far it's fairly straight forward. Although I haven't gotten too far into it yet.

    As far as online courses for college credit are concerned, that may be hard to find. There are some sites that offer certificates for completing courses such as MIT edX, Coursera, and others...but these courses aren't typically accepted for college credit. Others may have some better input on that specific point though.
  4. May 25, 2015 #3


    User Avatar

    Staff: Mentor

    Although I haven't searched myself, I strongly suspect some colleges offer their introductory computer science courses online, that are run by their professors. You'd have to register for them and pay tuition for them, same as for their bricks-n-mortar courses. Also, they probably run on some sort of schedule corresponding to their academic calendar, so you're not completely free to start whenever you want and go at your own pace. However, you would get the same academic credit as if you took the course in person on campus. It would transfer to other colleges the under the same conditions as normal courses, that is, subject to approval by the "receiving" college according to their rules for transfer credit.

    The college where I work has online courses like this, this summer, but not computer science.
  5. May 25, 2015 #4


    User Avatar
    Education Advisor

    I agree, taking an actual course through an actual accredited school would be the best option. Introductory programming courses are nearly always offered in the summer. It may not be as flexible as you'd like as far as structure and pacing goes, but you'll ultimately get more out of it.
  6. May 26, 2015 #5
    Can you please provide a list of computer science classes that I should take in chronological order?
  7. May 26, 2015 #6


    User Avatar
    Education Advisor
    Gold Member

    It would probably not be possible to give you any meaningful schedule of courses to take. It depends too strongly on a variety of things. What are your plans for your degree? What specifics of tasks will you be doing that require some kind of computing?

    There are HUGE numbers of possible topics you could study, even at this level.

    My suggestions:
    - Try to get an idea about what specifics you will be doing. The kind of computer tasks you will do will strongly affect what you should study. But at the same time, try not to put yourself in too narrow a channel. Technology is changing amazingly rapidly these days. Just as an example: Learn to design in object oriented patterns, as opposed to learning to make classes in Java.

    - Contact the school you plan to study at and find out their advice. Google up the department you will be in and find some contacts there. See if you can find the course catalog and pick from that what looks most interesting.

    - Don't be dramatically concerned about learning specific computer languages. Once you know one language you can pick up another in acceptable time. And computer languages are yet another technology that is changing very rapidly. Knowledge of a 10 year old version of a language may, or may not, be helpful.

    - Consider learning to program well, as opposed to just learning to program. For example, get yourself a copy of the book _Code Complete_.
  8. May 26, 2015 #7


    User Avatar
    Education Advisor

    I'm sorry, I really can't. I'm a physics/math double major, so computer science is not my expertise. I'm in the midst of working through my first programming book currently, and I'll likely only take 2 programming courses during college.

    I do think you're rather over-thinking this though. The most important thing is to simply get experience with programming, regardless of what type of course designation it would fall under. The overwhelming odds are that you're not going to make it through the equivalent of multiple programming courses this summer, so I think the best bet is to use some type of introductory open source programming book like Think Python. It's working very well for me.
  9. May 26, 2015 #8
    I am not overthinking it, but planning what I am doing in summer. Like I said, I already know how to code Java. I'm trying to go at my pace (which is faster than most people) and with that pace, I'll be able to cover a couple of courses over the summer (there is a LOT of time in summer; I will won't be able to cover as many courses when school starts). Simultaneously, I am going to learn mathematics (courses beyond single and multi variable calculus). So maybe you could give a list of mathematics courses in chronological order (from your university).
    Last edited: May 26, 2015
  10. May 26, 2015 #9
    Like I said, I know Java which means I already picked a programming language. I am familiar with the Java language and library. I am trying to go into the field of artificial general intelligence, specifically. I am trying to learn from computer science courses because I want to have the same knowledge of a computer science major. I know that there is not just one order of taking classes. But I need advice from someone who already has taken these courses. Maybe a link of a list of courses from a university will help. When searching for required courses in a specific university, they all say the class number but there is no detailed information about those classes that I can find.
  11. May 26, 2015 #10


    User Avatar
    Education Advisor

    After the calculus sequence, math isn't quite as sequential as it is prior to this point. Prior to this, the sequence is typically Algebra I>Geometry>Algebra II>College Algebra>Trigonometry>Calculus. After this point there are really a number of different directions that one can take. Working through a more advanced calculus book is always a good idea for really solidifying a foundation in calculus, but I suspect you're looking for new subjects to study. Linear algebra and differential equations are both important subjects that are foundational to a lot of physics and a great deal of computer science, so they're typically what students take after the calculus sequence.

    After this, it's not so much a matter of taking them in proper chronological order because a lot of the classes that one will take as a math major will be quite distinct from one another. In general, a math major will require the following courses (based on the math degree at UIUC):

    Calculus I-III
    Intro to Mathematical Proofs (Called Fundamental Mathematics at UIUC; other schools may call it something else or simply introduce proofs within other courses)
    Abstract Linear Algebra
    Differential Equations
    Statistics/Probability Theory
    Real Analysis
    Complex Analysis
    Abstract Algebra
    Some type of upper level geometry

    These are the core courses for a typical math major. This list isn't necessarily in any particular order, other than the order in which I'll most likely be completing my own math courses. I'll have room for for an additional few math electives as well. I'll most likely be using those to take partial differential equations, and an upper level numerical methods course that's focused on programming algorithms for solving equations. I'd like to squeeze in a course on set theory and topology as well, but I may not be able to fit anything else in. There are many other options for these electives as well.

    In short, I think the best subjects to follow introductory calculus with are linear algebra and differential equations.
  12. Jun 2, 2015 #11
    Out of curiosity, do you know what topics branch out of linear algebra and differential equations? Do you know what the prerequisites for complex analysis and abstract algebra are?
  13. Jun 3, 2015 #12
    Functional analysis, abstract algebra, dynamical systems, differential geometry, algebraic geometry, projective geometry, probability theory, etc. Almost all of math nowadays uses linear algebra to some extent.

    For complex analysis, you need to be solid in calculus. I also recommend knowing the basics of real analysis (this does not need to go far, a rigorous knowledge of calculus such as Spivak is more than sufficient). Topology is a nice extra since a lot of complex analysis topics are inherently topological.

    There are not really any prerequisites for abstract algebra (other than high school stuff). I do recommend some acquaintance with basic set theory. A knowledge of linear algebra helps but is not necessary.

    It would be easier if you were to tell us what your concrete goal is in mathematics. For example, is there a piece of mathematics that you would really like to understand? We can then give much better directions on what to study.
  14. Jun 3, 2015 #13
    My concrete goal is to learn the mathematics topics that are necessary for learning topics in computer science: artificial intelligence and big data. I'll list the specific topics I want to learn:
    -Computer vision
    -Machine learning
    -Neural networks
    -Natural language understanding
    -Automated reasoning
    -Automated planning and scheduling
    -Knowledge representation
    -Algorithms (Java)
    -Data structures
    -Algorithm design
    The main reason why I'm learning these a.i. topics is that I want to implement them in the code of my games or web assistant applications(intelligently assist users) and my personal a.i. project (make artificial general intelligence/ strong a.i.). I'm motivated to learn these topics because I think that the applications of a.i. will make a huge impact which interests me. So all I'm asking is which required or strongly recommended mathematics topics I need to study before jumping onto the topics listed above.
    Last edited: Jun 3, 2015
  15. Jun 3, 2015 #14
    The only things I can come up with that would be immediately useful would be linear algebra (for computer graphics), and discrete math (such as graphs, algorithms, etc.) Both can be started with a good knowledge of calculus (and even that is not really needed).
  16. Jun 4, 2015 #15


    User Avatar
    Education Advisor

    To the OP:

    In addition to what micromass has stated, I would add that learning probability theory and statistics is very important for machine learning, so maybe an introductory text on probability and statistics may be useful. My question to you would be -- you said you're a student in high school. What kind of math background do you have at the moment, and how far away are you before college/university?
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook