Welcome to Dream.In.Code
Getting C++ Help is Easy!

Join 132,656 C++ Programmers for FREE! Get instant access to thousands of C++ experts, tutorials, code snippets, and more! There are 1,174 people online right now. Registration is fast and FREE... Join Now!




Intro to Programming: Advice Requested

2 Pages V  1 2 >  
Reply to this topicStart new topic

Intro to Programming: Advice Requested

LowWaterMark
post 19 Aug, 2008 - 02:39 AM
Post #1


D.I.C Head

**
Joined: 30 Jul, 2008
Posts: 119



Thanked 1 times
My Contributions


I've posted on this forum to get assistance with introductory issues in C/C++ programming. I realize that I've issued forth a sufficient number of posts to suggest that I step back a bit and get myself squared away on some of the more basic fundamentals.

I'm trying to isolate a resource (book, tutorial, whatever) to help get me grounded on introductory program design, logic and philosophy. As a start, I've tracked down and am examining two resources on the Internet:
1. Wikiversity's Introduction to Programming
2. How to Design Programs: An Introduction to Computing and Programming

Ideally I would like to find a resource that is language independent and hence, IDE independent. This of course presents the problem of not being able to do problems and exercises. I would appreciate your thoughts on this.

Finally, I would like to know if anyone is familiar with either site hyperlinked above and if so, what your opinion is of them. More broadly, does my strategy make good sense? If so, could you point me toward a better resource (book, tutorial, et cetera), one that might address my needs as I've explained them?

This post has been edited by LowWaterMark: 19 Aug, 2008 - 03:05 AM
User is offlineProfile CardPM

Go to the top of the page

gabehabe
post 19 Aug, 2008 - 10:51 AM
Post #2


Working Girl.

Group Icon
Joined: 6 Feb, 2008
Posts: 5,441



Thanked 94 times

Dream Kudos: 2625

Expert In: ruling the world.

My Contributions


I've never seen either, but after a quick (read: very quick) review, I'd say the Wikiversity one is better.

Number two seems to use fairly technical phrasing, and you could quickly end up feeling like you're in over your head, even on the most basic of problems.

My first book was a very user-friendly book to teach C++ wherein the author spoke as if it was a game:
"Now, brave warrior, continue on to the next page to discover the wonder of object oriented programming."

That kinda stuff. The book is called "C++ Programming for the Absolute Beginner" published by Premier Press, written by Dirk Henkemans (I think that's how you spell it) and someone else. I know you want something that isn't language specific, but I just thought I'd throw that out there.

smile.gif
User is online!Profile CardPM

Go to the top of the page

KYA
post 19 Aug, 2008 - 10:59 AM
Post #3


#include <nerd.h>

Group Icon
Joined: 14 Sep, 2007
Posts: 4,211



Thanked 50 times

Dream Kudos: 1150
My Contributions


Hmmm, you want to learn how to program without actually doing any programming? That is going to get tough. You can find a book that just talks about variables, functions, and the like, but examples and practice are what cement the concepts.
User is offlineProfile CardPM

Go to the top of the page

OliveOyl3471
post 19 Aug, 2008 - 11:32 AM
Post #4


It's all about the code ♥

Group Icon
Joined: 11 Jul, 2007
Posts: 1,503



Thanked 14 times

Dream Kudos: 125
My Contributions


In college I took a class called CIS 110, introduction to programming and logic. It was a prerequisite for the other programming classes, and really helped me understand the basic logic of programming. It was compiler and IDE independent, other than a little QBasic during the second half of the semester. I am not sure if there is a prerequisite for 110. It seems like this is what you are looking for. You might be able to take a course online, and if it's only one course (at a community college) it would probably only cost about $400 or so, including the book. $400 is a lot for me, which is why I use financial aid, but for a doctor it should be chump change. smile.gif

Anyway, it might be worth looking into, especially if you are seriously considering changing careers. I think a course would really help you learn the fundamentals, and would pay off well in the long run. If you want to do this, I suspect that you want to do it right.

BTW...Didn't you say that you already know one programming language--Fortran? Did I remember that right? Is it that different, that you have to start all over again?


edit--I did not mean to imply that those who learned on your own did not 'do it right.' Obviously, you must have done something right or you would not be as good as you are.

This post has been edited by OliveOyl3471: 19 Aug, 2008 - 12:15 PM
User is offlineProfile CardPM

Go to the top of the page

NickDMax
post 19 Aug, 2008 - 01:59 PM
Post #5


2B||!2B

Group Icon
Joined: 18 Feb, 2007
Posts: 2,858



Thanked 47 times

Dream Kudos: 550
My Contributions


In general I would say that it is hard to have a conversation about computer programming without having a common platform for your concepts to be realized on.

Knuth wanted to talk about computing in the abstract and ended up with MIX (an abstract computer with a simple assembly language). While learning to program in the abstract may be a benefit, I think that learning a language is the more convenient way to go.

As for the two links. I have looked over both and the first one is basically in rough into to java/C type syntax but does not contain much meat. The other is on functional programming and all of the examples are in scheme and while I think this is probably the better tutorial to follow, it is also likely to cause some confusion when you start learning a procedural language.

So, look over the first one... if you like academia then reading the second is interesting (but you will be learning scheme) but is not as utilitarian as the first.

In the end... find a little corner to play with some programs.
User is offlineProfile CardPM

Go to the top of the page

Whizzy
post 19 Aug, 2008 - 05:10 PM
Post #6


Unregistered




QUOTE(LowWaterMark @ 19 Aug, 2008 - 03:39 AM) *
Ideally I would like to find a resource that is language independent and hence, IDE independent.


I don't know if this will help you out or not.

This tutorial introduces basic programming concepts such as program structure, variable declaration, conditional and looping constructs, and the code/compile/run style of programming. This tutorial is intended for use as an introduction to these concepts for students who have no prior programming experience.


http://cisnet.baruch.cuny.edu/holowczak/classes/programming/

It even has the Email addy for Richard Holowczak

The writer of the tutorial

Go to the top of the page

LowWaterMark
post 19 Aug, 2008 - 11:20 PM
Post #7


D.I.C Head

**
Joined: 30 Jul, 2008
Posts: 119



Thanked 1 times
My Contributions


Whizzy, thanks for the link. I'm reading it now and it is exactly the kind of thing I'm looking for. I wish it was more in depth but it is a start and I thank you. If you know of any other similar links please do send them my way. Fortunately, I play poker for money and have a special cert in biostatistics so the Boolean stuff is second nature. Somehow, I missed graph theory though. How would you graph the incremental iteration:
CODE
i = i + 1;

what would be the nodes and what would be the arc(s)?

NickDMax and gabehabe, yea I've looked over both and I keep going back to the Wikiversity. I think it is more my style. Thanks for the advice. The second tutorial requires you know the Lispesque Dr. Scheme world, so I'm not sure I'm getting anywhere down that road.

OliveOyl, if I could, the perfect thing would be taking community college classes. Just can't find the time. Ironic: there's a CC down the street from where I live that offers CIS 110 - Intro to Programming and Logic. Maybe we're neighbors. But online might be the way to go and there are plenty of those. The tough part is getting any sense of the quality before they run your VISA number. FWIW, I never waste money - I hate it. I went to med-schol at Tufts Med the year I turned thirty and am now a resident physician, pushing forty. As a resident, nothing is chump change. Oh, I did learn Fortran back in college but that was nearly twenty years ago and it was an 8AM class which I rarely attended. Fortunately, I have this savant capacity to test well and I passed the class withought remembering a thing. Embarrasing.

KYA, I know that you advise a trial by fire approach. You've mentioned it before and I respect your position. That's how medicine is taught (I'm an MD) and I understand why. But in the long hallways of the hospital there is always an attending physician over my shoulder to watch my back if I misunderstand something or accidentally try and kill a patient. My dilemma is that I constantly run into terminology and concepts that I don't understand. I just need some fundamentals. I realize it sounds like I want to learn to program without programming but that isn't the case. I just think I could move faster if the concepts held a bit more meaning for me before I start scribbling code. Thoughts?

This post has been edited by LowWaterMark: 19 Aug, 2008 - 11:51 PM
User is offlineProfile CardPM

Go to the top of the page

NickDMax
post 20 Aug, 2008 - 06:09 PM
Post #8


2B||!2B

Group Icon
Joined: 18 Feb, 2007
Posts: 2,858



Thanked 47 times

Dream Kudos: 550
My Contributions


You can put the "i = i + 1;" into a flow chart, though it is a really simple one.

(Load i) -> (Load 1) -> (ADD i and 1) -> (Assign Value to i)

Graphs are great for visualization of things like abstract data structures and machines -- they can even be useful for visualizing algorithms (depth first search vs breadth first search etc). But like any tool there are times where other tool are better for the job.
User is offlineProfile CardPM

Go to the top of the page

KYA
post 20 Aug, 2008 - 07:05 PM
Post #9


#include <nerd.h>

Group Icon
Joined: 14 Sep, 2007
Posts: 4,211



Thanked 50 times

Dream Kudos: 1150
My Contributions


How about some discrete math? That is one of my favorite classes so far. It is essentially math "logic" as it pertains to computing.

The book I used was:

Discrete Mathematics with Applications Third Edition
Susanna S. Epp


although that really isn't programming per se.

i = i + 1 is the same as i+= 1

Graph wise it would be a linear function.

y = x + b, etc... I wouldn't think of it terms of nodes unless you wanted a linked list between plot points.
User is offlineProfile CardPM

Go to the top of the page

Whizzy
post 20 Aug, 2008 - 09:25 PM
Post #10


Unregistered




QUOTE(LowWaterMark @ 20 Aug, 2008 - 12:20 AM) *

Whizzy, thanks for the link. I'm reading it now and it is exactly the kind of thing I'm looking for.


You're welcome. I did an advanced google search for "Progamming concepts"
There were more links there. Also try "Programming techniques"

I think you'll find a gem or two.


Go to the top of the page

LowWaterMark
post 20 Aug, 2008 - 09:48 PM
Post #11


D.I.C Head

**
Joined: 30 Jul, 2008
Posts: 119



Thanked 1 times
My Contributions


Again, thanks to everyone. I found the motherload of resources for free online texts that focus on theory of programming. Check out the link. It's a gold mine. Should any bumbling beginner ask a similar question or be on a similar quest, this might make a good sticky.

I've been going through the texts for hours and they run the gamut from needing good common sense as a prerequisite to being embarked on graduate work in logic and/or math. Anyway it is good stuff.

Thanks again for your help. Oh, BTW, these dudes and dudettes at Lambda had a similar dialogue three years back. I found the back-and-forth equally helpful to the many resources discussed and referenced.

Edit: if y'all are familiar with any of the works from either link above, please offer your comments and of course, your suggestions.

This post has been edited by LowWaterMark: 21 Aug, 2008 - 02:50 AM
User is offlineProfile CardPM

Go to the top of the page

AfterBurner66
post 21 Aug, 2008 - 02:18 PM
Post #12


New D.I.C Head

*
Joined: 2 Aug, 2008
Posts: 16


My Contributions


I think that your best bet is to make the decision:
Do I want to learn practical programming or going for something deeper?
Of course there are practicians of programming all over the world, that are really good, but to get there had a big time cost.On the other side of coin there are people much more involved( from CS or some other discipline),who began learning algorithms, software engineering principles together with some programming language,and this way they normally became far better than practitioners, having spent the same time as them.
What I'm trying to say is that the real measure for you, is the extent you want to reach.
Personally I was taught basics of algorithms together with Pascal language,so what I was learning in theory I had the opportunity to make as program.I think that this is the right way to go( of course no matter which programming language, though I think Pascal is better by far than any other language,as far as education is concerned).Try to begin with what is a problem, what is an algorithm, how you construct one to solve your problem, how you optimize it,and try to practice that using any language you like.Along the way, you'll see that you will understand what you're doing while programming,and the issue of developing a personal programming style is a matter of time.I think that is totally wrong to try to learn only in an intuitive way from complete programs that others edited, or to use some features of some language just to do your job.Trying hard is difficult, but pays off!
User is offlineProfile CardPM

Go to the top of the page

2 Pages V  1 2 >
Reply to this topicStart new topic
Time is now: 11/23/08 05:31AM

Live C++ Help!

C++ Tutorials

Reference Sheets

C++ Snippets

Bye Bye Ads

Free DIC T-Shirt

T-Shirt Example

Related Sites

Monthly Drawing

Thumb Drive

Partners

Top Contributors

Top 10 Kudos This Month