First course in programming?

<p>For a high school senior who is good in math, but hasn't had any courses in programming, what is the best college course to start with? This would be for a student who might consider a computer science minor or major depending on whether they end up enjoying programming.</p>

<p>Too late to edit my post, but wanted to mention that I’ve now seen the other thread similar to this one from yesterday. The difference is that no AP computer science has been taken, and this would be taken before beginning at 4 year university. So, if anyone has any suggestions specific to our situation, it would be greatly appreciated. We need a course that assumes no prior programming experience at all. As was mentioned in the other thread, so many cs majors begin with a considerable amount of exposure to programming.</p>

<p>Take whatever the introductory programming class is. Alternatively, take such a class at a CC before you get to your school so you know ahead of time.</p>

<p>To your second post: At my school, there’s one class that assumes no prior programming experience and starts from scratch with Python. The class required for the major assumes prior experience and teaches C. Check to see if the school you end up at has that distinction or not.</p>

<p>Sorry, should have mentioned that this is for my D, I’m the mom. Yes, this would be for the spring semester at CC, not at high school.</p>

<p>There are many useful resources on the internet. For a beginner with no prior programming experience I’d consider learning about HTML/CSS/JavaScript first before doing any object-oriented programming or server-side scripting. The AP Computer Science A course is not challenging at all, considering that you know what you’re getting into. These are the basics of the very basics, i.e. data structures, iterations, conditional statements, etc. </p>

<p>Just from my own experience, learning a programming language needs a goal beforehand. If you want to learn something that could possibly bring an income, stick with learning basic web design and web development, i.e. HTML/CSS/JavaScript/Ajax and PHP, as well as SQL. The basics of Java won’t get you anywhere, as this is the standard knowledge of any programmer that could do while sleeping. You’d have to spend more money on an object-oriented programming course if you want to be able to apply anything to real-world applications, games or whatever.</p>

<p>The good thing about the internet is that there are many dilligent people on YouTube who have posted entire tutorials on HTML, CSS, Java, JavaScript, Perl, PHP, Ajax, jQuery, C++, C#, Python. It’s only a matter of interest, not a matter of money. Good luck.</p>

<p>A Computer Science I course is a C++ course and assumes no prior knowledge. However, it will be tough as it is a college course, so your D should be aware of this to avoid becoming discouraged.</p>

<p>Why not intro to CS? fyi, my daughter, good at math, took the intro sequence for majors with no prior experience or AP, loved it and decided to major in it. But that course at her college is pretty famous for changing people’s majors. Also at her college they don’t offer programming classes in specific languages. Those are learned as part of comp sci coursework. So taking the intro and being introduced to the concepts along with some programming might give better insight to the major.</p>

<p>^^That’s really good advice. And that way she won’t have to spend an inordinate amount of time on the course when she still has her her HS courses. The only downside is that she probably won’t get any college credit for a specific CS course wherever she goes to college because it’s an intro course, although it may count as an elective.</p>

<p>One of my kids did the first course here
[url=&lt;a href=“Student_UCS_Overview”&gt;Student_UCS_Overview]Student_UCS_Overview[/url</a>]</p>

<p>It was extremely thorough and would really give you a sense of what CS is all about. </p>

<p>It uses Scheme.</p>

<p>There is also this classic introductory CS book to self-study with (the Scheme interpreter to do the examples and exercises can be downloaded on one’s own computer):
[Welcome</a> to the SICP Web Site](<a href=“http://mitpress.mit.edu/sicp/]Welcome”>http://mitpress.mit.edu/sicp/)</p>

<p>A somewhat derived version of this course can be found here:
[url=&lt;a href=“http://www-inst.eecs.berkeley.edu/~cs61a/fa13/]CS”&gt;CS 61A Fall 2013: Structure and Interpretation of Computer Programs]CS</a> 61A Fall 2013: Structure and Interpretation of Computer Programs<a href=“previous%20semester%20here:%20%5Burl=http://www-inst.eecs.berkeley.edu/~cs61a/sp13/]CS%2061A%20Spring%202013:%20Structure%20and%20Interpretation%20of%20Computer%20Programs[/url]”>/url</a></p>

<p>Thank you Econcalc for the ideas of sources other than community college classes.</p>

<p>Thank you Alaink. Does the first course in C++ usually assume no prior programming knowledge as BrownParent suggests an intro course would be needed first? Ah - saw your answer to this in your second post. Getting credit isn’t a concern.</p>

<p>Thank you ClassicRockerDad. I have no idea what Scheme is and everything Econcalc mentioned sounds like Greek to me, so I have some researching to do.</p>

<p>Thank you Ucbalumnus. You’ve saved me some research!</p>

<p>Thank you all. I’ll probably have some more questions after I look into all of this a bit more.</p>

<p>Okay. So Scheme and LISP are languages and Scheme originated at MIT and is easier and more fun than JAVA for beginning programming. That sounds like a good place to start.</p>

<p>If you’re considering to major in Computer Science or possibly minor in it, why would you want to learn a programming language whose market value is… probably nothing? Let me ask you this: Why do you want to learn a programming language in the first place? Why LISP? I don’t know anything about LISP, but as [url=&lt;a href=“http://stackoverflow.com/questions/106221/why-isnt-lisp-more-widely-used]examined[/url”&gt;http://stackoverflow.com/questions/106221/why-isnt-lisp-more-widely-used]examined[/url</a>] here, it’s not commonly used at all. To break it down for you, the market of software engineers looks (similar) to this:</p>

<p>Most popular programming languages / market-driven

[ol]
[<em>]C++
[</em>]Java
[<em>]C#
[</em>]PHP
[<em>]Objective-C
[</em>]Ruby
[<em>]Python
[</em>]Perl
[/ol]</p>

<p>I actually really stopped after listing the 8th programming language without knowing [url=&lt;a href=“https://www.udemy.com/blog/best-programming-language/]this[/url”&gt;https://www.udemy.com/blog/best-programming-language/]this[/url</a>] source lists 8 as well. </p>

<p>Don’t misinterpret this. The popularity of programming languages is, in fact, based on the projects completed using the language. For instance, PHP is very popular for a good reason: Facebook has been built using PHP, for the most part, and millions of other websites. Java has gained its popularity a long time ago. Your local ATM most likely runs Java, as well as your toaster, and obviously, the second widely used smartphone operating system, Android. Objective-C has gained its popularity from iPhone apps, and Perl, Ruby and Python are alternatives to PHP, (please don’t bash me for saying Python is an alternative), and C++ is and has always been the main programming language someone should really consider learning in-depth.</p>

<p>My D is the one who is interested in computer science, possibly as a double major or a minor. What I read of Scheme indicated that while it’s a language that isn’t used for anything, it gives a good intro to programming and facilitates learning other more useful languages.</p>

<p>None of what you said is obvious. lol From the toaster to the androids running on JAVA. And that’s part of what makes this all so difficult is that other than having taken a course in BASIC eons ago, I have no computer knowledge. Certainly no bashing regarding Python. lol</p>

<p>I don’t know anything about Scheme; I’ve been programming in Java, PHP, Perl and doing front-end for over 4 years now. If you believe that knowing a non-market driven programming language is useful, go ahead. If you believe that none of that is obvious, then go ahead. If you believe that programming won’t be difficult in the future, then you should do some research. </p>

<p>I am a CS major, not Econ.</p>

<p>A beginning course in C++ will usually assume the student has no prior experience with or knowledge of programming, unless perhaps it’s a course intended for science or engineering majors. But there’s no need to worry about that because the course description should be clear enough.</p>

<p>

</p>

<p>Languages like Scheme and Python are used in introductory computer science courses because they are effective tools for teaching students computer science without bogging them down into finicky syntax and compiler issues. C, C++, Java, etc. certainly do show up later in the computer science curricula at the same schools.</p>

<p>Thank you Alaink.</p>

<p>And thank you UCB as that’s what I was trying to say from what I gathered from the info in the link. </p>

<p>Econcalc, I’m sorry as I don’t understand why you are taking exception with what I’ve written. I was saying that it’s not obvious to me that toaster and Android programs are written in JAVA as I’m ignorant about computer programming. There’s a lot I don’t know, which is why I chose my username. ; ) I’d be interested to know what you mean about programming being difficult in the future. If you’re suggesting that higher level programming is more difficult than introductory level, of that I have no doubt. It’s known as one of the more demanding majors for a reason. If my D finds that she enjoys programming, then I think she’ll be up for the challenge and enjoy it. If you’re saying that finding jobs will be more difficult, I’m aware of outsourcing of that as well but haven’t heard that students are being discouraged of entering the field. Please explain your thoughts. Thanks!</p>

<p>I was only suggesting that learning market-driven languages is more applicable than, per say, LISP or Scheme. Java is a very useful programming language to learn first because C# is very similar, as well as object-oriented PHP. You kill several birds with one stone, and not only that; you save time, money, and gain more applicable knowledge. </p>

<p>Sure, if logic is what drives the interest in programming, then take any programming course, that would fulfill the needs. I’m just very confuzzled by the idea of wanting to take “any” programming language “introductory” course. Is there an introductory course at all? If you want to study Linguistics, and Romance languages are high in popularity (equivalent to market-driven programming languages), why would you want to learn Chinese and not Spanish? When you learn Spanish, there are many similarities in French, Italian, Portuguese, etc.</p>

<p>Maybe you’re not emphasizing of what your daughter (I assume?) wants to do with that knowledge. You can learn many programming languages just by looking for them, and as a matter of fact, the world away from keyboard isn’t always the best option.</p>

<p>For a beginning programmer who isn’t yet sure if she wants to major in computer science, I would recommend an intro course taught in a high level imperative programming language like Java, Python, Ruby, or C#. I think MIT has one on Itunes U that’s taught in Python.</p>