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

Am I in over my head?

  1. Dec 21, 2009 #1
    Well I have literally zero programming experience and I am a freshman so I decided to take a Java class. Problem is that I heard the intro class is an absolute joke and I don't really want to waste time on it. The next prerequisite for the intermediate class is only "the equivalent to a High school level programming ability" they go on to say
    "Experience must include variables, expressions, control statements (loops and conditions), arrays, methods (functions) and more."

    I am eager to become at least semi competent at programing, but am I in over my head? Or could I handle being thrown straight into it?

    I recognize you don't really know my capabilities but do you think it is untenably difficult to catch up? I'm sure they will review at least the basic concepts.

    Also, if it helps, the text they are using is this:


    I appreciate any input.
    Last edited by a moderator: Apr 24, 2017
  2. jcsd
  3. Dec 21, 2009 #2
    Depends, I suppose. When I went to school, there was "Intro to programming", and then each course beyond that branched off into different areas of programming, rather than a single general purpose "intermediate" course.

    To be honest, I would recommend going to the intro level course if you're planning on doing anything programming-wise. When I took my intro-level course (this was 14 years ago mind you), I already had had exposure to everything in the course by way of my high school programming courses (I had programming in Pascal, BASIC, and C in HS, and my intro programming course was in C).

    Despite the fact that I already knew HOW to program (I had been programming since about 8th grade), I didn't really have a good concept of WHY it worked. I knew (for example) that you put "#include <stdio.h>" at the beginning of every C program, but I didn't understand why. The intro course taught me quite a bit about how variables are represented, the basics of how compilers work, and it gave me a good introduction to the UNIX environment that we used all throughout college. And other stuff.

    If you don't have any programming experience, it may be tough. If you had some experience already-- even doing things like advanced JavaScript (not talking about DOM manipulation, but more like actual logic), then you might be ok. I would recommend finding a friend who's also taking the course ASAP, and work with them where you may need assistance.

    Also, I'd recommend doing some programming while you're (assumably) on break. Download a Java compiler for your computer and try writing some programs. If you have a hard time thinking up some test programs, go through the problems listed on http://projecteuler.net/index.php?section=problems .

  4. Dec 22, 2009 #3
    Yeah I have begun going through some Java tutorials on the internet because I am rather concerned about it. I will definitely see what I can learn over break.
    I am not pursuing Programming, I am a Physics major, but I have only recently learned the importance of programming for um. anything.

    I suppose I was not being entirely forthcoming and I will list the reasons I even considered taking this class:

    1. The recommended pre-requisite knowledge did not seem particularly large, but I do not really know what any of those listed things are. Are they particularly difficult concepts?

    2. I am doing a Research project with a math professor next semester who told me to skip the intro class if "I knew what a mouse and a monitor were" (I wasn't sure how to take this considering it is obviously an exaggeration).

    3. I was sort of interviewing for the position when the professor told me to skip the intro class and I basically would have said yes to whatever he said so I could work with him,
    so I told him I would skip the intro class. So that is another factor I suppose, I would hate to disappoint him.
  5. Dec 22, 2009 #4
    Hopefully, that will help you out a great deal. Pick a couple small "projects" for break and try to get them working. Like, say, a short "Guess what number I'm thinking of?" game, where you get "higher" and "lower" clues from the computer until you guess correctly. Or something that reads in some text you enter, and prints it out backwards. That sort of low-level simple task.

    Fortunately, you're not planning on being a programmer, so it's not vital to you to know how strings are stored compared to floating point numbers, or the other nuances that are good to know if you're pursuing a career in programming.

    Not really. The trick is really to think in those terms. The classic example is "write a program to sort this list of numbers". If you give that problem to a human, they just sort of "do it". But when you write a program to do that task, you suddenly have to break it into small steps, like "IF statement A is true, THEN do something, ELSE do something else". Similarly, things like "Repeat this step starting at point D".

    Each one of the concepts they mention is just a different type of thing that a computer can do, like "IF, THEN, ELSE", or "LOOP X TIMES" or "PERFORM A NAMED TASK USING X AS INPUT". Specifically:

    - variables

    Learn how to establish variables (the type of variable (integer, string, character, floating point number, etc), the starting/default values of them, and how to reference them in code)

    - expressions

    Learn how to change the value of a variable

    - loops

    There are a lot of types of loops. Such as "perform this task until statement A is true", or "do this task X times"

    - conditions

    Things like IF(X) THEN DO (Y) ELSE DO (Z)

    - arrays

    These are special types of variables, akin to a data set in mathematics. So, you may have an array of integers, an array of characters, an array of floating point numbers, etc. In other words, know how to reference variables that aren't your standard X = 12 types of variables, but instead are X = [12, 15, 97, 22, 10]

    - methods

    Similar to "functions" in mathematics. For a given set of inputs, perform a function F(x) on it. So you might have (for example) a function that finds the mathematical median of a set of numbers, or does some other task-- particularly a task that you may want to use frequently.

    Granted, I have no idea what the course is like-- depends where they end the curriculum for the intro level course. It might be more basic than I'm imagining it, but it's hard to say.

    For the record, our "final" project for our intro level course was to make a VERY basic word processor. You'd enter something like "I 52", and then "Hello Bob", and it would insert "Hello Bob" into the text that it already had, at position 52. Similarly, there was a delete command, a "print" command to display the whole text, and probably some other simple functions. All on the command line, of course-- no windowed applications or anything.

  6. Dec 22, 2009 #5
    Thanks that list definitely helps.

    I think I will just go for it. I will try to learn as much as I can for now and if

    I am struggling in the class I can always drop to the lower one.

    (Plus I heard the professor is exceedingly gracious).

    So thanks again for the remarks.
  7. Dec 27, 2009 #6
    Redd, are you still here?

    If so, I would like to say a few things. First, Java is not a good language for beginners to learn, in my opinion, since even a "Hello, World" program requires the use of advanced object-oriented concepts. Simple programs in Java are much more complicated than equilivent C or Basic programs. I actually tried to begin programming when I was baout 12 with Java and gave up, instead doing Basic to learn the principles of programming. I then moved to C, which is a lot like a more powerful version of Java that can't do web stuff, to expand my concepts of the basics, like variables, branching, compiling, etc. After that, I learned the OOP stuff that Java relies on with C++. It may be rather difficult to go the other way and use the advanced stuff before you know the basics, which is what you are doing.

    I would recommend first getting at least a tiny bit of experience with something like Basic to learn the essential concepts of programming. Try downloading the FreeBASIC compiler and writing a console version of Pong or Conway's game of life. It is a very simple language with great documentation and online help forum that can teach complete beginners (the 'B' in "Basic" is for "beginner's") what programming is about very quickly.
  8. Dec 28, 2009 #7
    Yup, still here.

    I definitely see what you are saying.
    I originally thought it was a C ++ class so I was reading up on it a bit and I was essentially writing very simple programs on the first day. But now that I am trying Java and it does seem to have a steeper learning curve.

    Well I actually also realized that the only time I can take this Java class is during the same time slot when the professor wants to meet :P so haha um. I guess I will just slip into the easier class (which I think is actually a BASIC class) at a different time and hope he doesn't ask too many questions...

    Thanks for the help, both.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook