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

Enrollment in C programming course

  1. Mar 29, 2014 #1
    I've decided to learn programming in my holidays. And I've enrolled myself in a C programming class (Apparently they don't allow C++ unless you know C). The course requirement says familiarity with "programming techniques" I tried searching it but I din't get the meaning I just got various techniques. So 1.)what exactly is the meaning? I know HTML if that helps and I learnt little python some years ago, the results were awesome but I have forgotten most of the stuff.

    It's a four hour daily course for one and a half month. 2.) What should I expect?
    And 3.) What is the aptitude required?
    I love physics and maths. Fortunately I can grasp the set theory terms that computer science people usually use. I have good grasping skills. I have bad short-term memory, absence of mind, bad social skills, good reasoning skills. I can visualize stuff verry good. What more?

    Please advice me more if you feel that I need it. And Thank you very much in advance
  2. jcsd
  3. Mar 29, 2014 #2
    I wouldn't say that knowing html qualifies as familiarity with prog.techn. Python does. My guess is that the course assumes you understand about variables, types, sub-routines, assignment, and flow control, among other concepts. If you are unsure whether you have the background to hit the ground running, then you definitely should buy a book on C for absolute beginners. Amazon will be a good place to start. Then start WORKING through the book.
    To specifically answer your questions:
    1. You would have to ask the instructor. I assume previous programming is required. If you can't look at simple Python code and understand its meaning, if you wouldn't know how to begin to write code to compute the factorial of any number input, if you couldn't create a program to play "guess my number", then I'd guess you lack some of the basics you'll need.
    2. 4hrs x 5 times a week? 4x? You should expect to spend 3x that per week doing coding outside of class. (If you're not, then the course is more of an overview than actually teaching how to do it).
    3. You need to be proficient in logic. If all men are mortal and if Plato died, was Plato a man? You also need to be able to create an algorithm (recipe) to get from a given set of starting facts to a desired result (goal).
    (4.) If you have learning disabilities, then your guess is much better than mine about what you will need to do. One thing for sure: practice, practice, practice.
  4. Mar 29, 2014 #3
    I am indeed an absolute beginner. I don't even know what a compiler means.
    This all is close to a foreign language for me
    All I was told about python was open this, type this, rename it and save it. It worked but I don't know how. Its a sad story :(

    Its a 4 hour daily for 6 days a week for 1 month (not one and a half, I'm sorry for that),
    I asked again they gave more details saying that 2 hrs theory 2 hrs practicals.
    I know I'm not going to understand the answer for this question but how far should I expect to go with c programming in 1 month?? So at the end of one month I'll know what I'm lacking.


    I don't have any learning disabilities. When I was small I was considered by the non-computer man as a computer-geek. As a matter of face I still am. But all I did was this https://xkcd.com/627/ . Later I realized how Illiterate I am.:biggrin:
  5. Mar 30, 2014 #4


    Staff: Mentor

    I believe that you will have a tough time in this course, based on how you have described yourself ("absolute beginner") and lack of familiarity of programming techniques. Because they will be presenting two hours of information each day, and assuming that you understand basic programming techniques, such as those abitslow listed, it's likely to be very difficult for you to keep up.
  6. Mar 30, 2014 #5
    I'll get the book that abitslow recommended. I am sure it's not impossible and there are still 6 days for the course to start. Thank you making me realise the situation. I'll try as hard as I can. Best of luck to me :(
  7. Mar 30, 2014 #6


    User Avatar

    Staff: Mentor

    I had a dog called Plato.
  8. Mar 30, 2014 #7
    A guy and his dog go into a bar. The bartender says, "Hey, get that dog out of here... we don't allow dogs in here."
    "Wait a minute", the guy says, "This is no ordinary dog ! This is 'Plato' the talking dog !"
    "Yeah, sure," says the bartender.
    "I'll prove it to you," says the guy. "Plato... what's on top of a building?"
    "ROOF !" says the dog.
    "Look," says the bartender, "just how dumb do you think I am?"
    "Wait a minute," says the guy. "Plato, how does sandpaper feel?"
    "RUFF !" says the dog.
    "Do I have 'stupid' tattooed across my forehead or something?" asks the bartender. "Now get that dog out of here! "
    "Wait.. I'm not through", says the guy. "Plato, who was the greatest baseball player of all time?"
    "RUTH !" says the dog.
    "That does it !! " says the bartender, and he throws them both out on the street.
    Outside, the dog looks at his owner and says, "Do you think I should have gone with DiMaggio?"

    I was gonna change the name but I don't want to piss anyone off.
    No offence Borek.

    Thead getting off topic I'm scared it mite be closed.
  9. Mar 30, 2014 #8
    Aptitude for maths is a very strong indicator of aptitude for coding. Some people pick it up incredibly quickly, others just struggle with it.

    Any head start you can get from books and online guides will be beneficial. If you can find out which development environment you'll be using, getting some familiarity with that will help too. It's likely that you'll be able to download a version of your development environment for free.

    There are books and guides that claim to teach C in one day. That's a dubious claim, but you can easily skip through all the features of the language within that time. It's a pretty small language, but you're certainly not going to be a "good" C programmer after 24 hours. You need time to use the language to really learn it properly and even with C, professional programmers still learn new things years later.
    Last edited: Mar 30, 2014
  10. Mar 30, 2014 #9
    I've been doing some reading, people claim that after 23 years of programming they are still not sure they know all about c++

    I bought this book
    Its fairly well written.I already know what "development environment" means,, so that is a progress. hehe
    I guess we'll be using turbo or visual basic (They are IDEs rite?) I'm not sure yet.

    I don't expect to learn very fast. Infact I expect that I should learn how to learn. After this one month course I'll be doing another 1 month course of c++ . I've to learn python, java, FORTAN, matlab and mathematica.

    I'll read that book for 6 days and see how it goes.

    Thank you all for your inputs. :cool:
    Last edited by a moderator: May 6, 2017
  11. Mar 30, 2014 #10
    Turbo is an IDE, Visual Basic is a different programming language.

    If you're not sure, I'd guess that you'll be using Visual Studio.

    You can download free versions of Turbo or Visual Studio.

    I wouldn't recommend just reading the book for 6 days straight. Your time would be better spent writing and running code based upon what you learn along the way.
  12. Mar 30, 2014 #11
    Oh yes that must be visual studio. I'm sorry for that.

    So I should practice writing codes from the book before attending the class? That book recommends an IDE called Code::Blocks (its free) so I'm guessing that is good too.
    Thank you again.

    And whatever posted previously, I should get to that stage? (Computing a factorial of a given number, etc)
  13. Mar 30, 2014 #12
    Visual Studio is widely regarded as the industry standard for C/C++. The Express versions are free.

    I'd recommend following the book and writing code as you go through it. As it introduces a new concept, use it in your program. You'll remember it much better that way and it'll help you understand what the book is trying to teach you.

    You wouldn't learn maths very well by just reading about the methods. You have to use them for yourself. Coding is the same in this respect.
  14. Mar 30, 2014 #13
  15. Mar 30, 2014 #14
    "Writing codes by following the book." I understand it better when you use math analogy.

    Edgardo thanks for the link I'll look into it in the morning ( I'm in +5.30 time zone. So it's night )

    Hopefully I'll have plenty of time tomorrow to execute all these suggestions
    Thanks a lot.
  16. Apr 2, 2014 #15
    Well.... I guess if you want to write slow programs for Windows that may be true, but there are other environments that are used much more extensively than Visual Studio. The GNU g++ and gcc compilers I would regard as the industry standard for C/C++. The problem is that for a beginner they are VERY intimidating, frightening actually.

    If I were learning programing, I would start with Python. It is a nice clean language which is easy and fun to learn. C and C++ are bears even in a friendly environment like Visual Studio.

    Mathematica is fun too.
  17. Apr 2, 2014 #16
    I found out there are no good python classes here. I'll have to learn it on my own. So having a background in some (popular and available) programming language would be good I figured. So there is 1 month c programming course and from May onward I'll do C++.

    What do you think??

    I can change my plan after 7 May because that's when this course will get over
  18. Apr 2, 2014 #17


    User Avatar
    Homework Helper

  19. Apr 2, 2014 #18
    WOW Thanks.
    I"ll try to solve.
  20. Apr 2, 2014 #19
    Thanks for those, they gave me a fun half hour!

    My solution to hte last puzzle is below for anyone interested, I think it works....

  21. Apr 3, 2014 #20
    There's a good C tutorial here you might want to look at, to get warmed up a bit.


    I would recommend you do it with Cygwin (in Windows) or a Linux virtual machine so you don't have to deal with Windows and can use the standard tools (gcc, gdb, valgrind, make). Most tutorials assume you are using these standard tools.
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook