wolf: adj1 phython? nessessary? exceedes? but for some reason, students experiment more with scripting languages. af2 only python has an indentation requirement. and maybe indentation SHOULD be mandatory... typing is not a fact of life in my programming life. alan_yeung what? gawk as a first language? i agree completely. cew4 their way, not there way i bet they'd experiment in a scripting language more than in java. scripting is actually more practical for the cs student than java. clh1 WHERE ARE YOUR POLL DATA? to many or too many? leanr or learn? rogrammer or programmer? magic or majic? slmost or almost? through or thorough? jhdavis Washinton? ", however" or "; however"? came into college? By forcing... I feel...If I had been taught...it would be? people hire perl programmers for internships... maybe more perl programmers are hired than java programmers. jp1 languages/it's. i actually believe in bottom-up scripting (why i like gawk instead of python). jtd1 python instead of gawk? learn/learned. actually/actual. is that, and that it is. necessarily. efficiency. ", then focus". kg3 i like some of the russian-isms too much to suggest corrections. kkl1 .doc? reasons which/reasons why. has but/has that. exception/exceptions. I learn/I learned. interesting idea to learn java AND a scripting language concurrently. nw4 my guess is that the transition from scripting to strongly typed o-o would be very easy if you asked the student to write a gui. sm8 underlaying/underlying. principals/principles. its/it's. this is the best argument for java... that the upperlevel courses require more than scripting. but i'm not sure it's a great argument, as java is still not c or c++, and it's better to be a good scripting programmer than a lousy professional programmer headed into cs342. smg2 (haven't gotten past the first paragraph, but this shows a lot of time and thought. also, quotes klingon proverb.) i'd given you a +, but then i realized there were many others that deserved +'s that i didn't give... sz1 ubiquitous. hmm. i often wonder where java is when i do all of my finances online through perl, python, asp, and cfm scripts. an instruction. an executable. thorough understannding. what is the importance of types, especially strict static typing? to help the compiler-writer strait-jacket the programmer? these/this knowledge. can not/cannot. language/languages fail. daunting/duanting. to the beginner/to beginner. similarity to c++ is indeed a big selling point. but gawk, bash, and c are a very tight family too. tpw1 doc? i like the coughing. wbk1 aha! i knew it. a basic man. k9: amg1 yeah, dijkstra wanted us all to program in pascal. people always want to teach abstraction in cs1, then claim they can do it to people who are simultaneously learning to program. and then people don't learn how to program. people have always claimed that declaring types solves typographical errors. they don't acknowledge that the type declarations require a lot more keystroking (i almost said "typing"). or that most of the errors aren't typos. all i can say is that cs programming skills have gone downhill since the introduction of java. it is a fair question how students would migrate to the tougher languages if they were happily scripting. i still think one big gui would do it. that's what oo is good for, and that's where it should be introduced. similarly, one device driver and they will migrate to c. on the other hand, we see students who start with pico never move up. that's indeed sad. the difference is that pico is a lousy editor, whereas the scripting languages are better for 99% of the programs you will write in your life. amh6 you are in the choir. cbh1 YOUR POLL DATA TO FORMAT? i'm not sure i follow the last line. what exactly is "correct" syntax? i think perl syntax is worse than java syntax, but java syntax supports more semantics. is the argument that we ought to remain in a family of similar languages? if so, then the gawk-> c++ -> c chain would be hard to beat. chl1 cls1 can you state a reason? i guess, but far better to give a reason, make a claim, and state a position. to make mistakes IN? WITH? faar > far, like caar > car? it's/its. you win the hello world point. or you would, if java got simpler as the tasks got more complex. that's open to argument, i think. depends on the task. btw, is understanding a task? (i have no suggested correction, which shows that i need to practice my writing...) i would love to hear more of the "many" reasons you do not agree with. cz1 really, a job interview the next day? i want a language that empowers the student to learn cs well over the next few years. and it may be easier to find a job with perl than with java. everyone thinks it is a long-term liability or hindrance to start off with something simple. wow. our students are indeed heroic. i do think that what is emerging is a simultaneous learning of a loose and a strict language. dfk1 truly an entrepreneur's view. but it is interesting to note that wash u excels at teaching people how to do things RIGHT, with a capital R. wash u is TERRIBLE at teaching people how to change the world. and sometimes the world is changing. djfreima now this is an excellent example, telling students that 3 != "3". but there are similar problems in java. i wouldn't say it's a bug in the language, either. it's often a lack of discipline. now i am open to the legitimate counterargument that it is the advanced programmer who has discipline. but i would argue that discipline comes from having made errors of too much liberty; discipline does not come from being disciplined. or if it does, it's the wrong kind of discipline -- the kind that inhibits creativity rather than promotes it. inefficient knowledge? inconvenience. i of course agree with you on semicolons and braces, as opposed to python indenting, though zelle has a valid point about indenting. ah, but there's the rub. i want students who can start things for themselves, not expect to modify other people's code all the time. people once thought that all the language features of ada would have to be learned by the cs student before graduation. that was wrong. i agree that some concepts need time to "cement" in students' heads. but i think skills come before concepts in cs1. when everyone arrived as a freshman with 10 years of programming in basic and pascal, sure, we could throw scheme at them. but times have changed and johnny can't program. emh4 another doc file? wait for this to dsl-in... do-dee-da-dee-dum... ok, A for you. just kidding. must respect students who disagree... must respect them... ha ha. you need to GIVE ME YOUR POLL DATA. your story is exactly what i have in mind when i am trying to cause trouble for the java-cs1 lovers. jas6 well, i like the art metaphor a lot more then the eiffel tower one. i still think you teach students to write sonatas before symphonies. however, it is true that the few students who are taught to speak in full sentences at childbirth, and not permitted to deviate, become remarkably eloquent in adulthood. ... assuming they don't commit suicide first! jastraat i agree that the path into cs should be with html, css, php, and javascript. ironically, it was the desire to have graphics in cs1 that made the shift from scheme to java so easy. prior to html, the students had to be in "visual X" in order to play with "fun things" like circles on the screen. personally, i like tables of logarithms. but most wanted toy graphics. now that html is around, you are completely right: we can go back to the historical branch point. i guarantee you that if recursion and numerical computing had remained interesting to students, then java would not have taken such a hold. most faculty didn't have a clue what o-o programming was, but they knew they wanted to see freshmen manipulating fun things in raster or vector representations. jdt1 who am i to complain if you wrote 20 progs outside of classes? but wasn't my number 100? i think you might have a point that c++ and c, even more than java, prepare students for certain kinds of research programming that is very fun. btw, you can draw the golden spiral in a lot of languages, nu? why does everyone in your generation think that typos generate identifier errors, esp when identifiers are short? gah! are you all making that many typos in your im-rooms? well-written. experience. gah again! why do people think that they can do more in a language which ultimately slows and inhibits their programming? i am curious -- who is jdt1? i grade these almost blindly because i can rarely decipher the initials... jjl2 to be fair, java is the dominant (but not exclusive) cs1 language across the country. i love it when i recruit a cs1/cs2 ta... jy3 another "might encourage bad programming style" person. i can't wait to see how you toilet train your kids, or teach them to walk... jyd1 good point about exposing the mechanisms. that's why co-e profs still think we should start out in assembly. i can't disagree. i am much more inclined to start out very low than very high. but o-o is actually a higher level of abstraction than non-o-o scripting. it is precisely because of gawk's paucity of types that i started thinking about optimizing virtual memory allocation through the preservation of locality (by copying rather than extending hash chains onto new heap objects). i can't stand it when students "re-use" other people's code and can't talk to me about performance. i'm not sure i agree with the calculator analogy, though it certainly sounds good. jz7 inhumane. kma1 i can see the jazz/rhythm analogy already out of the corner of my eye and i am not even reading yet. VB has a lot of respect in the (g)ui community. i agree about braces. aha, good argument. dealing with java and its clunkiness can actually be fun for the mature cs1 student in the right frame of mind. touche. scheme is also quite beautiful and even practical. i will admit that having been a happy c programmer, i have trouble going back because i can't seem to cast types. i have gotten lazy! it's true. i guess i prefer to watch tap dancers who learned on the streets. have you seen tap dancers who have emerged from tap dance academy? phew. talk about stinky. laz1 that's the theory pushed by the current cs1 mafia: that learning it right for the first time is better than learning it wrong 10 years earlier. let's look at the data below... well, that's the point, isn't it? scripting language programmers wouldn't be using variables like "mymainStringVariable". but maybe in python, the variables do start to look like this. i do think that it's nice that scripting languages make it easy to debug because they make it easy to print and checkpoint. and do you really think that those are the MOST IMPORTANT ASPECTS OF CS? or are they just programming language constructs that are required in order to master java? i think there are a lot of important aspects of cs that are not in programming languages, and now you've got a programming language that wants to get in the way. lz4 i like the "too late to change majors" point. might as well see what you're up against in the first course! also, mit agrees with you, as they never did switch away from scheme. nch2 ah, but that's the point. i want you to go back to the tutorial level. sorry to disappoint -- this was never supposed to be cs455, comparative programming languages. in fact, i chose deliberately to avoid highlighting differences and instead chose to focus on the couple of things that make all scripting languages easy to use: auto-initialization, implicit type casting, hashes, regexp support such as split, simple file i/o, and simple system calling. i avoided libraries, advanced data types, and even function/subroutine parameter conventions. you ask, WHY? because i want to know what you can do with a programming language, not what you can say about it. i want to see you write things -- and i know that you will write big things well if i start you out with programs that do not frustrate you. yes, you caught me -- that was EXACTLY what i was trying to do. i want you to learn syntax because i want you to write programs that work. i am more interested in seeing you write the same program in four different languages than seeing you compare the nuances of language which should never show up in your programming life. people don't defend perl on its abstract grounds -- they say "perl is a great language to write programs in!" we have a generation of cs students who refuse to program, and can't program. they can program the right way, but they can't actually program. it sounds like a paradox, but it's actually a cruel joke, esp. when i hire them to do research for me! ... some of us are trying to remediate this. my regret is that i didn't ask you to program TWO large projects instead of one (so i could give feedback on the first one...). i am happy to return to scheme. i found lisp to be a very powerful language, as did most ai people. scheme shows you have good taste. but it's easier to read other people's perl than even your own lisp, after a couple of months. now i am curious who nch2 is... npyianil i need your POLL DATA! wow -- someone who already knew python! sorry we didn't actually program in it. i wanted to, but someone counted the number of assignments you did in this class and i agreed it was already a lot. ... hence the writing "assignment." nsr2 see jastraat comments re graphing. i agreed that all languages are the same, and i think most of the faculty did too, when we moved to java. the problem is that students emerging from java, well, don't actually emerge. they seem to remain in java world, not well armed to program much of anything. this was to some extent true of scheme people who also came out of a language-specific development environment and were kept away from unix. so i guess i want to believe that all languages are roughly the same as first-time experiences. but i also believe that john kemeny was a really great man, and that the BASIC philosophy has a lot of merit. get them to love the machine and the programming, and all the other stuff comes easily. pas4 see nsr2 comments -- i want to agree that it doesn't matter... braces, not brackets, and i agree about the indenting. there are definitely "funky problems" in scripting -- well chosen adjective! but i do prefer iterative debugging to big-delta compile-time checks. correct -- this was a bad strawman. it's much more likely to happen in c++ where people don't really understand explicit type casting. i agree that disciplined perl is probably going to be as bad as free perl. do you think gawk has a big learning curve? it's supposed to be a one-night read. true -- zelle would choose java for cs1 before he would choose gawk. i however am no fan of o-o, as you know. i am allowed to disagree with zelle, yes? i actually chose zelle/python precisely because i thought it would appeal to those who already liked o-o. hey, php is well documented. i agree that gawk suffers from a lack of documentation/standardization of nuances. ptd2 i agree with this. actually, i love being in the position of liberator. because if indeed you learned scripting first, then fascist languages, you'd be coming back to me and saying i didn't teach you anything. i'd say "but you love to program and you're so good at it!" and you'd say "but i program so badly!" and i'd say "but it works, doesn't it? and you got so much done with your time!" and you'd say "but everyone makes fun of my code!" and i'd say "they are so silly -- they write programs the way they do because they think they are going to be big programs, but they are only big because of the way they write them," and you'd say "but they have all the money because they hire so many programmers to write the big programs..." and so on. sg3 good question -- what exactly is VB? it's almost a scripting language, yet it is also object-like in its graphics support. and it's compiled, if i recall. wellem very good point -- php and python are learnable on their own. cs1 should be in java or c++ or scheme because it is a mighty proposition. of course, the other engineering depts start sending their people away from our cs1, but that's exactly what we were hoping for in cs1 -- a course that starts out the cs major. i remember being in a special math22 for physicists instead of math55 for math majors or math21 for pre-meds. math55 emphasized theorems. math21 emphasized getting the answers right. math22 emphasized mathematical representation (accelerating some topics that would be needed by physics55). the obvious analogy would be to let co-e have its c course first, let minors in through the web soft stuff, and force hard core cs majors through java or scheme, where they really do shine as languages to look at as much as to use. FIRST langs progs courses unix like? years AXS 7 3 2 5 6 2.85 (ACTIONSCRIPT) 7.00 3.00 2.00 5.00 6.00 2.85 BASIC 11 8 4 6 8 13 BASIC 5 0 5 6 3 12 BASIC 8 9 4 5 9 15 BASIC 7 5 3 5 7 10 BASIC 8 2 3 4 7 5 BASIC 12 20 7 9 10 8 BASIC 5 1 3 5 7 10 BASIC 4 0 3 6 8 10 BASIC 10 10 5 5 7 4 BASIC 7 5 5 7 1 4 7.70 6.00 4.20 5.80 6.70 9.10 BASICQ 7 0 4 5 7 6 BASICQ 9 3 3 3 7 8 BASICQ 3 0 1 4 4 2 BASICQ 8 2 4 5 8 6 BASICQ 5 20 4 5 8 3 BASICV 3 0 3 5 7 5 BASICV 10 4 2 5 8 7 BASICV 5 0 3 2 7 7 BASICV 7 0 4 4 7 5 6.33 3.22 3.11 4.22 7.00 5.44 C++ 2 2 5 3 7.5 6 C++ 6 0 4 3 5 4 C++ 8 0 3 4 6 4 C++ 12 0 2 5 3 7 C++ 4 0 2 5 5 5 C++ 7 0 5 7 7 5 C 4 0 4 6 7 4 6.14 0.29 3.57 4.71 5.79 5.00 JAVA 3 2 2 2 9 2.5 JAVA 7 4 2 4 10 6 JAVA 8 0 5 5 8 2 JAVA 7 2 4 3 7 4 JAVA 6 0 6 7 5 3 JAVA 7 1 3 6 7 4 JAVA 7 4 3 6 7 3 JAVA 6 6 1 5 8 4 6.38 2.38 3.25 4.75 7.62 3.56 PASCAL 9 3 2 8 8 7 PASCAL 6 0 3 6 7 6 SCHEME 5 3 1 4 6 3 6.67 2.00 2.00 6.00 7.00 5.33