Computer science courses and college credit

In summary, the conversation revolves around a high school student's interest in learning computer science and mathematics during their summer vacation. They ask for recommendations on computer science courses, tips while studying, and online courses for college credit. The conversation also touches on the importance of gaining experience in programming and not being too concerned about specific languages. Suggestions are given to contact schools and to focus on learning to program well rather than just learning to program. The recommendation of the open source book "Think Python" is also mentioned.
  • #1
icecubebeast
66
3
Hello,

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.
 
Physics news on Phys.org
  • #2
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.
 
  • #3
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.
 
  • #4
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.
 
  • #5
QuantumCurt said:
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.
Can you please provide a list of computer science classes that I should take in chronological order?
 
  • #6
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_.
 
  • #7
icecubebeast said:
Can you please provide a list of computer science classes that I should take in chronological order?

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.
 
  • #8
QuantumCurt said:
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.

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:
  • #9
DEvens said:
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?
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.
 
  • #10
icecubebeast said:
So maybe you could give a list of mathematics courses in chronological order (from your university).

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.
 
  • Like
Likes icecubebeast
  • #11
QuantumCurt said:
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

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?
 
  • #12
icecubebeast said:
Out of curiosity, do you know what topics branch out of linear algebra and differential equations?

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.

Do you know what the prerequisites for complex analysis and abstract algebra are?

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.
 
  • Like
Likes icecubebeast
  • #13
micromass said:
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.
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:
  • #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).
 
  • #15
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?
 
  • Like
Likes micromass

Related to Computer science courses and college credit

1. What are some common computer science courses offered in college?

Some common computer science courses offered in college include Programming Fundamentals, Data Structures and Algorithms, Computer Architecture, Software Engineering, and Database Management.

2. How many credit hours are typically required for a computer science major?

The number of credit hours required for a computer science major can vary by school, but it is typically around 120 credit hours. This includes general education requirements, core computer science courses, and electives.

3. Can computer science courses count towards fulfilling general education requirements?

Yes, some computer science courses may count towards fulfilling general education requirements, such as math, science, or even humanities courses. It is important to check with your specific school and major requirements.

4. Are there any prerequisites for taking computer science courses in college?

Some computer science courses may have prerequisites, such as prior programming experience or completion of certain math courses. It is important to check with your school and the course requirements before enrolling.

5. How can I earn college credit for computer science courses?

You can earn college credit for computer science courses by enrolling in a college or university and completing the courses as part of your major or elective requirements. You may also be able to earn credit through AP or IB exams, or by transferring credits from a community college or online courses.

Similar threads

  • STEM Academic Advising
Replies
3
Views
859
  • STEM Academic Advising
Replies
11
Views
790
  • STEM Academic Advising
Replies
12
Views
1K
  • STEM Academic Advising
Replies
1
Views
543
  • STEM Academic Advising
Replies
8
Views
2K
  • STEM Academic Advising
Replies
6
Views
1K
Replies
19
Views
358
  • STEM Academic Advising
Replies
17
Views
1K
Replies
4
Views
1K
Replies
2
Views
525
Back
Top