Thread: Bottom-up tutorials?

  1. #1
    Ugly C Lover audinue's Avatar
    Join Date
    Jun 2008
    Location
    Indonesia
    Posts
    489

    Bottom-up tutorials?

    Anyone know any bottom-up software design tutorials on the net?

    I just giving up from the top-down one,..
    it's just.. just.. too overcomplicated I think..
    Just GET it OFF out my mind!!

  2. #2
    Making mistakes
    Join Date
    Dec 2008
    Posts
    476
    What do you mean by "bottom-up"?

    EDIT: Do you mean a book also teaching why to do things, not just how?

  3. #3
    Registered User
    Join Date
    Apr 2004
    Posts
    210
    I just did a google image search on the subject and am now confident that you and google probably associate different meanings with the term

    You aren't talking about lisp/scheme et al, right? As in remodeling the language to suit your needs?

  4. #4
    and the hat of copycat stevesmithx's Avatar
    Join Date
    Sep 2007
    Posts
    587
    Quote Originally Posted by audinue View Post
    Anyone know any bottom-up software design tutorials on the net?

    I just giving up from the top-down one,..
    it's just.. just.. too overcomplicated I think..
    I agree with Nyda. You've misunderstood the terms "bottom-up" and "top-down" it seems.

    Everybody starts thinking "bottom-up" when they begin programming but as they get more experienced they begin to think "top-down". So if you are giving up "top-down" means you are going back to your earlier ways.

    Here is a quote from one of the Stanford's open courses.
    Quote Originally Posted by Stanford professor Mehran Sahami
    And it starts with the low-level stuff and this is actually the place most programmers, when they start out, this is what they begin doing is bottom-up design.

    People have actually done psychological studies. It takes about 100 hours of programming proficiency. In the average case, I think everyone at Stanford's above average so it'll take you less, to go from thinking bottom-up to thinking top-down.

    Guess what? It's a 10-week quarter. We might do about 100 hours of programming in here. Hopefully by the end of this class, everyone's doing top-down design. But if you can start from the very beginning doing top-down design, you're golden.
    Source:http://see.stanford.edu/materials/ic...Lecture03.html
    Not everything that can be counted counts, and not everything that counts can be counted
    - Albert Einstein.


    No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes.
    - Herbert Mayer

  5. #5
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    That's interesting. I had never heard of this distinction before. After reading a few paragraphs of the wikipedia article the distinction seems obvious to me, but maybe I have it wrong:

    I would say the most elementary point where you should easily be able to conceive of things "top-down" would be when you are comfortable with what functions can do for you, so you could write pseudo-code like:
    Code:
    datastructure X = function Y (input one, input two, input three)
    without having to write or think about function Y, beyond this pseudo-code.

    Say function Y is asking the user a question and verifying their response.

    A "bottom-up" conception might be to decide you first need to get some user input, and once you have that input you can figure out what to do with it.

    I don't know if this necessarily will lead to a different outcome. In reality I think a huge component of software is adding things onto an existing product. Of course, you could approach that "top-down" or "bottom-up" too but once you start coding of any sort, you probably at least think of things to some degree both ways, which is to say "pause and plan" sometimes. I imagine this must be much less vague working as part of a team.

    I would say the larger and more complex a project is, the more conscious I have been of taking a "top-down" approach. Also interesting that bottom-up is associated with OOP: I like objects, but in the same sense that I like functions and arrays. To me recognizing that an object is the solution implies I formulated a specific problem.

    Finally IMO I would not sweat this too much, I think it is just a dialogical tool, like being able to say "I'll fly North" rather than "I will proceed to the airport and board a plane with a destination latitude > here".
    Last edited by MK27; 08-10-2009 at 03:13 AM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  6. #6
    Ugly C Lover audinue's Avatar
    Join Date
    Jun 2008
    Location
    Indonesia
    Posts
    489
    But whenever we talk about flexibilities, reusabilities and realibilies;

    Everything become complex, too much work and the worst: increasing overhead.
    Just GET it OFF out my mind!!

  7. #7
    and the Hat of Guessing tabstop's Avatar
    Join Date
    Nov 2007
    Posts
    14,336
    Quote Originally Posted by audinue View Post
    But whenever we talk about flexibilities, reusabilities and realibilies;

    Everything become complex, too much work and the worst: increasing overhead.
    Well, that implies that you've only got about 10 minutes to solve the problem.

    A lot of tools I wrote started out very specific -- they required an input file to be exactly so, then did one and only one thing and wrote the output in whatever way seemed like a good idea at the time. By the time I copied and pasted that code for the third time to deal with a slightly different input file that needed a slightly different output format, it was well worth my time to just delete them all and do something generic, flexible, and reusable. If you are actually using the programs you are writing on a daily (or even every-other-daily) basis, you will find out for yourself why people preach what they do, and it won't take you very long to do so.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Recursive function
    By WatchTower in forum C Programming
    Replies: 11
    Last Post: 07-15-2009, 07:42 AM
  2. how to make opengl draw in lighter colors ?
    By jabka in forum Game Programming
    Replies: 2
    Last Post: 12-17-2007, 06:12 AM
  3. Why don't the tutorials on this site work on my computer?
    By jsrig88 in forum C++ Programming
    Replies: 3
    Last Post: 05-15-2006, 10:39 PM
  4. Odd 3D Invis Objects?
    By Zeusbwr in forum Game Programming
    Replies: 4
    Last Post: 12-07-2004, 07:01 PM
  5. CProgramming.com should update their tutorials.
    By PorkyChop in forum C++ Programming
    Replies: 17
    Last Post: 09-19-2004, 10:51 PM