• Welcome to Computer Association of SIUE - Forums.
 

Recent posts

#71
Questions and Answers / Re: g++ vs Visual Studio
Last post by William Grim - 2010-09-16T22:22:46-05:00 (Thursday)
I'm glad I use emacs.  Gotta love that C-x M-c M-butterfly.  Sometimes it doesn't work and you have to do C-u 2048 C-x M-c M-butterfly though.  It's all a bit random.
#72
Questions and Answers / Re: g++ vs Visual Studio
Last post by thatguy - 2010-09-16T19:56:30-05:00 (Thursday)
Quote from: Brent Beer on 2010-09-16T19:09:27-05:00 (Thursday)
what does...that even mean?



Alt text:  Real programmers set the universal constants at the start such that the universe evolves to contain the disk with the data they want.
#73
Questions and Answers / Re: g++ vs Visual Studio
Last post by Brent Beer - 2010-09-16T19:09:27-05:00 (Thursday)
Quote from: thatguy on 2010-09-14T14:49:01-05:00 (Tuesday)
Real programmers use butterflies.

what does...that even mean?
#74
Questions and Answers / Re: g++ vs Visual Studio
Last post by thatguy - 2010-09-14T14:49:01-05:00 (Tuesday)
Real programmers use butterflies.
#75
Questions and Answers / Re: g++ vs Visual Studio
Last post by Adam C - 2010-09-14T11:06:51-05:00 (Tuesday)
The Pragmatic Programmer is one of the 3 best programming books that I've ever read. It should be required reading for anyone even considering writing code for a living. Best of all, its platform/language/toolchain agnostic for the most part.
#76
Questions and Answers / Re: g++ vs Visual Studio
Last post by Robert Kennedy - 2010-09-14T09:02:43-05:00 (Tuesday)
Quote from: djb on 2010-09-13T19:43:50-05:00 (Monday)
There are new courses on the drawing board, and it's likely that in the next few years (as they are rolled out in sequence) there will be a complete renovation of 100 and 200 level courses. One of the 200-level courses under consideration would introduce students to Linux and other languages (but not new tool chains, sorry). I'm intentionally avoiding specifics to avoid the religious arguments regarding language choice, etc.

Not to be the one to start any language wars or take this thread off topic (read:  I'm about to start some language wars and take this thread off topic), but I found MIT's Intro to Programming using Python Course(http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2008/) on their Open Courseware site to be excellent.  I just figured I'd toss it out there in hopes that someone working on these courses could save themselves some time and effort by reusing some of the material.  

Quote from: djb on 2010-09-13T19:43:50-05:00 (Monday)
What from my Freshman CS course is still relevant?

The concepts of documentation, making code readable, debugging techniques, and basic logic constructs of procedural programming. I learned a lot of other stuff on my own.
Also, I've finally gotten around to reading "The Pragmatic Programmer".  I must ask, why isn't this book required reading for one of the 100 or 200 level courses?  Throughout the text I've found myself in a constant state of "I wish I would have read this when I was just starting out".  Granted, some mentions of specific applications are dated, but the majority of the material concerning industry best practices remains as relevant today as ever.  It just seems so packed with knowledge that will remain useful for years to come. 
#77
Questions and Answers / Re: g++ vs Visual Studio
Last post by William Grim - 2010-09-13T20:09:08-05:00 (Monday)
+1 djb!  That message definitely comes from experience.  As mine has grown in the field, I, too, have begun to see things much more like that.  I don't get so caught up in tool chain specifics (for the most part) anymore when I just want to apply concepts and get the job done.  Needless to say, I still deliberate on the tool chains when I'm trying to think about what can be better in the workplace or my programming "on-the-side".
#78
Questions and Answers / Re: g++ vs Visual Studio
Last post by Adam C - 2010-09-13T20:02:12-05:00 (Monday)
Yes, you have been one of the professors that, in my experience has been the most willing to work with us on alternate toolchains, I very clearly remember that incident (back in 340 if I'm not mistaken). You're certainly right about many things in your post and I'm really just glad that someone in the faculty is taking the time to evaluate the situation and put some thought into it.

Obviously you're never going to be able to please all of us with our favorite language/scm/toolchain/os etc. I think the most important takeaway is not the particular systems that are eventually selected so much as to instill the idea that there are many, equally viable alternatives, each of which has their own benefits and drawbacks. Once people are made to realize the existence of all the alternatives, then the impetus is on them to teach themselves as they see fit. That's what I did and its worked well for me, and many of my peers.

I think the most succinct definition of the problem is when I see 100 and even 200 level students call Visual Studio C++ as if they think those two things are one and the same or that one begets the other.

Thanks for listening to us whine, I really do appreciate knowing that someone is listening!
#79
Questions and Answers / Re: g++ vs Visual Studio
Last post by djb - 2010-09-13T19:43:50-05:00 (Monday)
Gents,

I've been reading this thread with some interest. As some of you may know, I have (and plan to continue to) conduct research in the Computer Science Education field. In particular, my "specialty" has been 'novice programmers'. To date, the work I have done focuses on issues related to conveyance of concepts, and what skills novice programmers bring to the classroom (in hopes of using that to an advantage in teaching CS concepts).

The discussion of tool chain for novice programmers has been studied by some educators. There is no consensus found in the research literature that I am aware of. I have my biases, but one can teach/learn programming concepts (novice level programmers) using any reasonable tool chain (let's not debate what is reasonable right now -- give me a break, and keep reading).

I have taught intro CS programming at (five) other universities using other tool chains. I've been in labs with students struggling with Linux command line, vim, and gcc. I've been in labs with students struggling with other tools as well. While you can argue for one tool chain or another based on some subset of qualities; in the end, each has it's draw backs.

For the champions of Linux in this audience, I suspect you've long since repressed the struggles you had with learning simple things, like how to exit vim and what a 'bus error' really is. I also suspect that you are not the average student. You have probably coded for money and learned things on your own. Both admirable qualities, and qualities I wish that all CS majors possessed, but, alas ....

I would also like to point out that the focus in the early programming courses is on problem solving and programming concepts. Programming itself is a vehicle toward learning the basic logical concepts. The intro courses are not focused on a particular tool chain anymore than necessary. Having students use the tool chain of their choice in the course would create support nightmares, not just for grading assignments that compile with one, but not another; but also in being able to conduct class and answer questions. Imagine and instructor (in class or lab): "If you are using XXX, then type this, but if you are using YYY then type this, and if you are using ZZZz ..." ZZZzzzzzzzzz will be the sound (even more than it may be already) in the classroom if you are constantly trying to pay attention for the right conditional which tells you when to listen.

I have been open to students developing using alternative tools and alternative platforms. Even at the 300 level when I don't have to worry about mis-communication issues (yeah right), there are problems that arise in the variety of submissions. Adam C, you might recall when you were docked points because your code running in Windoze environment would crash, but didn't in OSX. We talked and I verified, but that was time spent on my part allowing flexibility.

I would argue (as I alluded to above) that students should learn new languages and tool on their own. We can't possibly deliver your education and training, too. You can take care of the training - learn new languages and tools on your own. These are the things that will distinguish you in the job search. Not because you know the right tools, but because you can learn new tools.

Do you really think a BS CS will teach you everything you need to know over the span of your career?

(musical interlude while you think about that question..... use your imagination or iPod ..... for me it's ColdPlay )


How many years would you like to spend getting a degree?

(musical interlude while you think about that question..... use your imagination or iPod ..... this time it's RUSH)



Could the CS department do a better job? You bet. We are working on that.

There are new courses on the drawing board, and it's likely that in the next few years (as they are rolled out in sequence) there will be a complete renovation of 100 and 200 level courses. One of the 200-level courses under consideration would introduce students to Linux and other languages (but not new tool chains, sorry). I'm intentionally avoiding specifics to avoid the religious arguments regarding language choice, etc.


(taking this a bit further down the road)

Computing is a unique field. Though there was earlier conceptual work, computing as an academic field/department is only about 50 years young. Our curricula tend to change significantly every decade. Compared to Math, Sociology, Economics, ... any other degree program on campus, including Engineering ... Computing is the most dynamic field. Some of the same Physics, Math, and engineering textbooks I studied from 20+ years ago are still being used. We, as a department, are a little behind, but we are making efforts to become current.

As I said before, people can learn to program with any reasonable tool chain. Back in the 80s, a punch card system was somewhat reasonable, and people still learned to program. I missed learning to program with punch cards by one year. My reasonable tool chain was a FORTRAN compiler and a linker. I used a dumb terminal on a slow time-share system.

What from my Freshman CS course is still relevant?

The concepts of documentation, making code readable, debugging techniques, and basic logic constructs of procedural programming. I learned a lot of other stuff on my own.

I apologize for the rambling nature of this message. I will spend the time I could have used making this message more readable to work on the new courses Freshmen, in years to come, will benefit from. So, in a sense, you are like the Freshman class before mine who learned to program on punch cards. (I bet they were a tough bunch).

-djb
#80
Questions and Answers / Re: g++ vs Visual Studio
Last post by Adam C - 2010-09-13T14:10:34-05:00 (Monday)
You've nailed it precisely. I've never understood why its done this way. I've taken CS courses at two other colleges and at both of them, low level courses explicitly disallowed the use of an IDE, not the other way around.