PDA

View Full Version : Programming language for math majors?


sandyr
08-18-2009, 12:00 AM
Hi,

My son, 15, is currently planning to study math in college. He's thinking about getting starting learning computer programming, since that will probably be useful, if not required.

Does anyone know what might be the currently recommended programming language(s) for someone looking at a math major?

THanks,
Sandy

8FillTheHeart
08-18-2009, 06:51 AM
Hi,

My son, 15, is currently planning to study math in college. He's thinking about getting starting learning computer programming, since that will probably be useful, if not required.

Does anyone know what might be the currently recommended programming language(s) for someone looking at a math major?

THanks,
Sandy

My ds has used Maple for a lot of his engineering courses. I don't know about math majors, though. It definitely is a math program.

http://www.maplesoft.com/

ETA: I forgot to mention that he learned the programming language in his cal 1 class that had a lab requirement (which was learning the language.) He learned it at our local university and not the university he is attending for his engineering degree. He is extremely thankful for having learned the language and having the program on his computer b/c he sees it as invaluable tool.

Jane in NC
08-18-2009, 07:35 AM
My ds has used Maple for a lot of his engineering courses.

Maple is a software program. I think the OP is looking for a language. In my day, math majors took Fortran which only shows how old I am!

A couple of ideas: check out the language being used in AP Comp Sci. Alternately, I'd telephone a couple of math departments (or look over degree requirements via online catalogs) to see what is being suggested.

Sorry not to be more helpful.

Jane

Gwen in VA
08-18-2009, 09:14 AM
I'd recommend either C++ or JAVA.

JAVA is the language used in AP computer science currently.

Once he is comfortable in one language, he will be able to pick up others fairly quickly.

8FillTheHeart
08-18-2009, 10:45 AM
Maple is a software program. I think the OP is looking for a language. In my day, math majors took Fortran which only shows how old I am!

A couple of ideas: check out the language being used in AP Comp Sci. Alternately, I'd telephone a couple of math departments (or look over degree requirements via online catalogs) to see what is being suggested.

Sorry not to be more helpful.

Jane

Gotcha. He did take an actual programming class, but I am clueless as to what language that was.

Sorry I wasn't any help!

Sue in St Pete
08-18-2009, 01:53 PM
I'd recommend either C++ or JAVA.

JAVA is the language used in AP computer science currently.

Once he is comfortable in one language, he will be able to pick up others fairly quickly.
:iagree:

However, if he happens to be very interested in Statistics, SAS would be a good language to know.

Jane in NC
08-18-2009, 01:56 PM
:iagree:

However, if he happens to be very interested in Statistics, SAS would be a good language to know.

I thought that SAS was software. Is there a SAS language as well?

TRILLIUM
08-18-2009, 02:28 PM
My son has TeenCoder, which is a home school program for C++. When my husband asked a computer type at his work what his son should learn he suggested Python---but I found the C++ resource so I went with that.

http://www.homeschoolprogramming.com/

BTW I'm old enough to have used Fortran as an engineering student and to have submitted batch jobs on hole punch cards.

Sue in St Pete
08-18-2009, 05:10 PM
I thought that SAS was software. Is there a SAS language as well?
SAS=Statistical Analysis Software, but I do consider it a programming language. If you want to do any kind of statistical analysis, it's good to know SAS. In my User's Guide, it has a section entitled "Intro to the SAS language".

Sue in St Pete
08-18-2009, 05:12 PM
BTW I'm old enough to have used Fortran as an engineering student and to have submitted batch jobs on hole punch cards.
Yup. That's was my first EECS college class. I'm 48.

Moni
08-18-2009, 05:23 PM
Fortran .

Ah, yes, the good ole days

:seeya:

Jane in NC
08-18-2009, 05:23 PM
SAS=Statistical Analysis Software, but I do consider it a programming language. If you want to do any kind of statistical analysis, it's good to know SAS. In my User's Guide, it has a section entitled "Intro to the SAS language".

While I agree that those who use statistics are wise to learn SAS, I guess what I was really wondering if using the software product is comparable to programming. (Do all SAS users learn the SAS language?) I have met many students who thought they wanted to be computer science majors until they encountered the nitty gritty of programming--which was much harder than using software packages!

Jane

P.S. I only did one program on cards. We felt that we were quite advanced in that our programs were typed on paper tapes, then batched. Every typo (syntax error) came back for correction so that a single program could take weeks to straighten out. I'll never forget the work that went into a program for finding area under the curve using trapezoids. Ugh. Nightmares...

Jane in NC
08-18-2009, 05:24 PM
Ah, yes, the good ole days

:seeya:

Fellow Former Fortraners unite!

TRILLIUM
08-18-2009, 05:50 PM
If you have any First Robotics teams in your area they use C. My dd's team is alway desperate for programmers---their programming mentor would have taught anyone who made it to the meetings.

BTW my knowledge of Fortran came in handy when my son was doing C++. Can't totally explain---but I did have some knowledge about how programming.

I guess it's sort of like knowlege of two languages can help you learn a third unrelated language.

So probably any language that you have resources for him to be sucessful would be useful.

Moni
08-18-2009, 06:05 PM
Fellow Former Fortraners unite!

Oh, I meant to add, my son learned C++ first

:seeya:

Sue in St Pete
08-18-2009, 07:47 PM
While I agree that those who use statistics are wise to learn SAS, I guess what I was really wondering if using the software product is comparable to programming. (Do all SAS users learn the SAS language?)
Well, I've worked as a programmer since 1984 in Fortran, Cobol, PL/1, SAS, and C. SAS is similar to the other language I know in some ways and different in other ways. It has: reading input, writing output, if-then-else, do-while, assignments, logical operators, subroutines, etc. It also has many statistical tools: frequency, sorting, summarizing, merging data, and more. Perhaps it's called a software product because there are so many statistical tools built into it. Maybe there is an interface so that a statistician with no programming skills could still use the language, and that's why it's considered a software product. If so, I've never used it. I've only programmed in it.

When I think of a software product, I think of something like FrontPage, which writes HTML code for you (at least that is my understanding), so that you can create websites without having to know the nitty gritty details of HTML.

Lately, I've been thinking about going back to school in statistics. With my knowledge of SAS, it would be a nice fork off the branch of the tree I've been traveling for so many years.

:auto:

Horseymom
08-18-2009, 08:35 PM
My husband is a software engineer and mostly uses C# and C++...he does not use much Java...hope this helps..
T

KAR120C
08-18-2009, 09:16 PM
Maybe there is an interface so that a statistician with no programming skills could still use the language, and that's why it's considered a software product. If so, I've never used it. I've only programmed in it.
I've never used the interface, so I can't say just how little programming it takes, but I know among my SAS programmer friends (my gosh that sounds geeky...) it's not considered "real" SAS. ;) I made DS do the code editor, semicolons and all. It's a rite of passage. (And I made him a semicolon t-shirt! LOL)

I would consider SAS a programming language, although so many of the commands you learn early on are like integrated circuits... you type proc corr and it spits out a whole report. I think really, though, that's in the teaching rather than the language. I'm about to wade through all the certification stuff (to fill the probably-gazillion gaps in how I learned it the first time, through a supplement to a Statistics text), and I'm hoping that covers more of the logic than the language... kwim?

So far DS has done programming with Scratch, the Lego Mindstorms programs (both versions), the TI-84, and SAS... but what he's done with all of them together hasn't been a full run through what I'd call "real programming." But he's got a lot of good general background now. He's doing Python this summer, and I know you can write and call your own functions, but I've not actually been looking over his shoulder as much as I should so other than "it can be done independently" I don't know how much more I can say from my own experience... When he's done with it I think we'll go on to Alice before we hit the "real" languages.

I started a billion years ago with BASIC, and I still have a certain fondness for it. It launched me and two siblings into programming, although in very different directions (I only did VBA and database design professionally.. my sister did assembly language for a while and went to some kind of C, and my brother did some kind of C for a while and went to Java... You know the joke about the three programmers who go into a bar? :D)

But really if you learn variables, functions, subroutines, looping, if/then/else, data in and data out, I don't think it matters what language you learn it in. The logic can be translated (maybe not always directly, but with some order...), and knowing one makes it that much easier to learn the next.

Jane in NC
08-18-2009, 09:45 PM
Thanks Sue and KAR1200 for explaining SAS so well. I had no idea! Sue, with a master's in OR, I can see why you are attracted to it.

Jane

Sue in St Pete
08-18-2009, 09:50 PM
I started a billion years ago with BASIC, and I still have a certain fondness for it. It launched me and two siblings into programming, although in very different directions (I only did VBA and database design professionally.. my sister did assembly language for a while and went to some kind of C, and my brother did some kind of C for a while and went to Java... You know the joke about the three programmers who go into a bar? :D)

I have a vague memory of BASIC from high school. I detested assembly. It has been wiped out of my memory.

What's the joke? :confused:


But really if you learn variables, functions, subroutines, looping, if/then/else, data in and data out, I don't think it matters what language you learn it in. The logic can be translated (maybe not always directly, but with some order...), and knowing one makes it that much easier to learn the next.
:iagree:

KAR120C
08-18-2009, 10:31 PM
What's the joke? :confused:
Three programmers go into a bar. They all order milk. The assembly programmer says, "You know, I don't need a glass, just bring the cow right in here -- I really like to get my milk straight from the cow." The C programmer says, "Actually now that you mention it I don't need a glass either, I'd prefer to drink from the carton." The VBA programmer says, "Can I have a bendy straw?"

;)

TRILLIUM
08-18-2009, 10:43 PM
So far DS has done programming with Scratch, the Lego Mindstorms programs (both versions), the TI-84, and SAS... but what he's done with all of them together hasn't been a full run through what I'd call "real programming." But he's got a lot of good general background now. He's doing Python this summer, and I know you can write and call your own functions, but I've not actually been looking over his shoulder as much as I should so other than "it can be done independently" I don't know how much more I can say from my own experience... When he's done with it I think we'll go on to Alice before we hit the "real" languages.



What you son using to learn Python independently?

KAR120C
08-18-2009, 11:50 PM
What you son using to learn Python independently?
It's a book a friend of ours was done with, and her DS loved it.... so I handed it over to DS without seriously vetting it myself... but what I've seen looks good.

It's available at this website (http://www.handysoftware.com/cpif/), and the program is on a CD with the book (convenient) or downloadable from the same site. I had been looking at the MIT opencourseware Python class, but it was confusing, and seemed to be missing some important parts.... I might have figured it out eventually but then this dropped into our laps!

stripe
08-19-2009, 08:02 AM
I studied Fortran too! Two versions -- 77 and 90 (snort). In addition to a host of other computer languages. I have to say that, much more so than natural languages, the skills one learns in one language (esp if it's a proper one, unlike, say, BASIC) translate really well to others, because of the logical thinking/ordering involved. It's really, really easy to learn more; I taught myself one as part of a class, and it was ... well, fun. :)

TRILLIUM
08-19-2009, 08:08 AM
Thanks that looks great and just $10.00. My son's done Scratch, Lego Robotics NXT-G and then some C++ with Homeschool Programming. He's 12 and one of the challenges is getting something he can pretty much do himself.
I'd also thought of having him do RobotC because you have something concrete to Program. Also my FLL team will not be competing this year. They are changing the timing of the competition, we'll have a Qualifier in Nov, I have no second coach to even help with the research project and I have to do my college applications for my oldest homeschooled dd. So Robot C might be a fun thing to do with the kids who don't decide to look for another team.

shamima
08-19-2009, 08:50 AM
My experience of homeschooled kids (dd 12, ds 6) is that they like to know the nitty and the gritty of it all.

I would start with a bit of C then heavy on C++ and Java the following year.
There are still so many companies running on COBOL (at the backend), C, and C++ (in the frontend) that just knowing Java or Python is not a good idea.

Seeing all the FORTRAN people here reminded me about having taken BASIC in high school. It was such a big deal class and I still remember my final graphic project - a Brain with a hammer swinging inside it w/ the blurb - I Think Therefore I am.

Can't get more nerdy than that :-)

shamima

Sue in St Pete
08-19-2009, 08:57 AM
I studied Fortran too! Two versions -- 77 and 90 (snort).
I maintain a couple of programs in Fortran 77. :blink:

Jane in NC
08-19-2009, 10:38 AM
I maintain a couple of programs in Fortran 77. :blink:

And do you still own your plastic template for making flow charts? :D I do!

Sue in St Pete
08-19-2009, 12:04 PM
And do you still own your plastic template for making flow charts? :D I do!
We have software for that now. :D

stripe
08-19-2009, 12:16 PM
I maintain a couple of programs in Fortran 77. :blink:
We were breathlessly waiting for Fortran90 to be released; it was a few years overdue. Ha. I used to remember what the improvements were, but, uh, no longer.

Sue in St Pete
08-19-2009, 01:08 PM
We were breathlessly waiting for Fortran90 to be released; it was a few years overdue. Ha. I used to remember what the improvements were, but, uh, no longer.
With Fortran90, you can use <, >, <=, >=, etc. Fortran77 only recognizes .GT., .LT., .GE., .GT., etc.

stripe
08-19-2009, 01:17 PM
Ha ha! Thanks! That is an improvement.

Nan in Mass
08-19-2009, 09:23 PM
Math majors did APL when I was in school. I've never heard of it since, but it was pretty interesting.

Calming Tea
08-20-2009, 01:38 PM
The point right now is to learn how programming works and enjoy it a little. My dh uses mostly .net and c# but he says the new language Ruby is awesome for beginners and has great support and is now being included in the . Net framework..

Have him get new books, and loom Round for one he enjoys...if he's motivated he can learn just by reading the book.

Maryalice
08-20-2009, 04:41 PM
fwiw - My dau is a senior in college math major and she suggested C+.

Back in my dinosaur days, I first strarted on a PDP with binary switches, moved to punch cards and FORTRAN, then onto Basic, Lisp, and about 5 other specialty languages.

Any language that teaches the logic of programming is good. Once a brain thinks that way, it is just a matter of "key words" of a particular language. Even now, I end up debugging my kids programs in languages that I don't know.

stripe
08-20-2009, 05:16 PM
Lisp! Good old Lisp! What a name, eh?

I salute you for having used binary switches and punch cards. :)

Sue in St Pete
08-20-2009, 06:07 PM
Lisp! Good old Lisp! What a name, eh?

LISP=Lots of Irritating Silly Parentheses
This was my first introduction to object oriented programming. I have been loathe to travel down the path again...

Mary in GA
08-20-2009, 08:42 PM
I'd recommend either C++ or JAVA.

JAVA is the language used in AP computer science currently.

Once he is comfortable in one language, he will be able to pick up others fairly quickly.

I want to tell a quick story, really a brag, based on Gwen's last sentence. Ds just transferred into Georgia Tech from a smaller university where he took 2 CS classes. The CS classes didn't transfer so he took tests to try to place out of the first 2 required CS courses. He aced the test for the first semester class. The second test was on Java. He could do any of the code in C++ or C#, but he has never used Java. He studied for 3 hours and passed the test barely, with a 70, but he passed.

Ds taught himself Python and C++ while he was in high school. And I also was one of those learning FORTRAN abck in the day.

Mary

brianglass
08-21-2009, 01:25 PM
Sorry I'm a bit late to this thread, but I am a software developer who has been in the industry for about 16 years. I started in my teens with Basic, learned C, C++, and Fortran in school, and then went on to learn Perl and Javascript, and now I'm programming nearly everything in Python. In addition I have dabbled with Java and looked at c# (which is very similar to Java). I have played with Lisp as well.

Of all the languages I have encountered, the best one by far for someone who is just learning to program is Python. It is clean, simple, elegant, and extremely powerful.

Go grab the free PDF book Snake Wrangling for Kids (http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/) and you should be off to a running start.

If you're doing a lot of mathematics check out SciPy.

Dee in MI
08-22-2009, 09:26 AM
We're working through Hello World; Programming for Kids and Other Beginners (http://www.amazon.com/Hello-World-Computer-Programming-Beginners/dp/1933988495/ref=sr_1_1?ie=UTF8&s=books&qid=1250947400&sr=8-1). It uses Python. I've worked through about the fourth chapter, and it looks good.

I have been very Perl savvy in the past, but haven't worked with it for some time.

Cabertmom
08-22-2009, 12:41 PM
We have a 12-year-old who wants to learn computer programming. We've done quite a bit of research and found that Python sounds good. It's easy to learn, capable of doing pretty much everything, can be used on both Mac and PC (we have a mixed marriage--my husband uses Macs and I use PCs!), it can be used on the web and off, it's free, has lots of support, the syntax is similar to several other languages, and it's considered a respectable programming language by programmers overall.

I'd love to hear the conclusions others come to and why. Also, if anyone has suggestions for good tutorials and/or books for Python, that would be most helpful.

CleoQc
02-12-2010, 03:44 PM
Three programmers go into a bar. They all order milk. The assembly programmer says, "You know, I don't need a glass, just bring the cow right in here -- I really like to get my milk straight from the cow." The C programmer says, "Actually now that you mention it I don't need a glass either, I'd prefer to drink from the carton." The VBA programmer says, "Can I have a bendy straw?"

;)

LOL!!!
SOrry, I just got to this joke, but it's so true!

CleoQc
02-12-2010, 03:46 PM
I'm getting ready to start the kids with Scratch, although I'm not sure about my son. I think he'll go right away into some C#. He's done a little bit of C++ but my major hurdle is to find him some projects worth the time to program them!

(oh and he's mastered the C64 Basics, now talk about old! )

eumyang
02-13-2010, 08:37 AM
When I was a math major in college, we were required to take a year of programming in PASCAL plus a semester (albeit a one-credit course) in Fortran. We were the last graduating class to have those requirements, I think. Afterwards, the programming classes changed to C, then C++, then Java. I think at the school I attended they still require a year of programming courses.

(oh and he's mastered the C64 Basics, now talk about old! )

In middle school & high school I remember having fun with Applesoft BASIC (remember the Apple IIe anyone?). I was also a comp. sci. minor in college, so after Pascal, I ended up learning C, Assembly (yuck, yuck, yuck!), Prolog, ml, scheme, C++... I never learned Java.

Ah, the memories... ;)


69