|
Mr Dog posted:Teaching algorithms and data structures in C is good, having programmers write their very first programs in some non-awful asm (i.e. not x86) is better, maybe even hand-assemble an instruction or two. oh yeah I loved cmpt 150/250, where we p much went from truth tables to designing a complete MIPS CPU, writing asm programs and whatnot. having already been around the OO block a fair bit it was awesome to get back to basics and learn how it all fits together. but idk if it's the best use of your time if you're dealing with a weekend warrior who just wants to play with some code and make dumb little things which nonetheless vaguely feel like the software they use at home. the other day I helped a math major with an assignment from an intro programming class, and their stupid professor wanted them write a java program which simulated a MIPS architecture with opcodes and poo poo. so they were having to learn and apply high level programming AND computer design at the same time. it was atrocious. Juul-Whip fucked around with this message at 13:33 on Feb 28, 2013 |
# ? Feb 28, 2013 13:23 |
|
|
# ? May 14, 2024 20:56 |
|
Mr Dog posted:Teaching algorithms and data structures in C is good, having programmers write their very first programs in some non-awful asm (i.e. not x86) is better, maybe even hand-assemble an instruction or two. the python course is to a great part for people like economics students and such though, where it is not so much a foundation for a deep understanding of programming as it is practice for stringing things together in some tools they use. even then though python does not work out all that well, the complex fundamental building blocks distract from getting the mental model necessary to structure a program. i don't think that java really gives a clear idea of how the computer works, but it is conceptually simpler a more funny aspect that we easily solve though is that in python the students often get a very confused idea that they are supposed to learn the library, and feel that they are doing something wrong when they are solving a task by actual programming rather than doing a sequence of library calls vv
|
# ? Feb 28, 2013 13:56 |
|
well, idk I think if you had one semester to do it in then you could get someone to the point where they could code up some linked list ops in C and understand what's actually going on. This is a very powerful thing because it makes the standard library look like convenient shorthand instead of black magic. This doesn't teach somebody how to structure code though, and I'd love to find a better way for people to learn other than "gently caress it up over and over again until you get a feel for what not to do". Ken Silverman wrote the Duke Nukem 3D engine when he was eighteen, and he had his algorithms and data structures and cache awareness and inner loop optimisation down COLD, but the code is an absolute loving mess. Kid was driven as hell but he just didn't have the experience to make it maintainable at that point in his life.
|
# ? Feb 28, 2013 14:29 |
|
Cybernetic Vermin posted:the python course is to a great part for people like economics students and such though, where it is not so much a foundation for a deep understanding of programming as it is practice for stringing things together in some tools they use. even then though python does not work out all that well, the complex fundamental building blocks distract from getting the mental model necessary to structure a program. i don't think that java really gives a clear idea of how the computer works, but it is conceptually simpler tbh I think groovy would be a better babbys first language than python in every way. the syntax is simple enough that they don't really need to worry about objects and stuff yet, but then its also very similar to java so its easy for them to move on in later classes. I like java for data structures cause the collections library has all the good stuff already implemented and students can use it as is, but then swap in their own implementations without any pain at all. it shows them how it should work, provides structure for building their own implementations via collections interfaces (List,Set,Map,etc...), all while teaching some real world polymorphism in a real world language. then you've got all ur lower level languages for the os classes and what not.
|
# ? Feb 28, 2013 15:25 |
|
codechat: last night i opened up Higher Order Perl again. This book is basically like a tractor pull for me. Every time it starts out the same difficulty, but each run through I get a little farther before I bog out and stall. last night i think i actually got the concept of closures. holy poo poo these are cool and i think i understand currying functions now? thats neat too. also learned more about iterators and how to hack them together. this is useful and i am applying it immediately at work. took a 30min browse of the scala wiki page; it looks neat and i may put it on the list.
|
# ? Feb 28, 2013 15:27 |
|
Jonny 290 posted:codechat: mjd is my hero (one of them, anyway)
|
# ? Feb 28, 2013 15:32 |
|
closures own. whenever someone says javascript is a bad language it's because they don't get closures
|
# ? Feb 28, 2013 15:49 |
|
no, JavaScript is just bad
|
# ? Feb 28, 2013 15:50 |
hobbesmaster posted:no, JavaScript is just bad
|
|
# ? Feb 28, 2013 15:55 |
|
es6 is lookin pretty sly tho
|
# ? Feb 28, 2013 15:57 |
|
lol you don't get closures.
|
# ? Feb 28, 2013 16:00 |
|
closures being awesome does little to save javascript from being awful
|
# ? Feb 28, 2013 16:03 |
Tiny Bug Child posted:lol you don't get closures. lots of languages have closures, but just because they have them doesn't mean they're necessarily good.
|
|
# ? Feb 28, 2013 16:03 |
|
imagine an alternative universe where brendan eich invented closures and were even more insufferable~~
|
# ? Feb 28, 2013 16:06 |
|
Shaggar posted:tbh I think groovy would be a better babbys first language than python in every way. the syntax is simple enough that they don't really need to worry about objects and stuff yet, but then its also very similar to java so its easy for them to move on in later classes. I like java for data structures cause the collections library has all the good stuff already implemented and students can use it as is, but then swap in their own implementations without any pain at all. it shows them how it should work, provides structure for building their own implementations via collections interfaces (List,Set,Map,etc...), all while teaching some real world polymorphism in a real world language. then you've got all ur lower level languages for the os classes and what not. groovy has some issues like automatic "stringification" for map keys, weird range syntax rules because of loose parsing, ruby-esque paren omission in some cases but not others that i think would hamper n00bs i still like groovy as a "near-java templating language" but i wouldn't use it to teach CS101
|
# ? Feb 28, 2013 16:13 |
|
yeah I guess. maybe you could avoid that stuff, stick to basic procedural stuff, and then move into java quickly once they want to start doing more complex stuff. idk. maybe instead make a babby's first java shell type thing that's just eclipse that hides the public static void main and just lets them write simple procedural java. then pull it back and start doing real stuff? idk??? I never had problems picking up java myself cause of previous programming stuff in highschool (pascal [lol] and c++). so I guess I really cant say what would be useful for new students w/ no experience.
Shaggar fucked around with this message at 16:22 on Feb 28, 2013 |
# ? Feb 28, 2013 16:18 |
|
trex eaterofcadrs posted:groovy has some issues like automatic "stringification" for map keys, weird range syntax rules because of loose parsing, ruby-esque paren omission in some cases but not others that i think would hamper n00bs This is why using Haskell to teach CS fundamentals is great since you can rely on equational reasoning and algebra and don't have to worry about poo poo like memory management when trying to teach recursion or algorithms Then you learn C or whatever to get close to real machines Oxford does this fyi so it's not exactly without precedent
|
# ? Feb 28, 2013 16:27 |
|
Malcolm XML posted:This is why using Haskell to teach CS fundamentals is great since you can rely on equational reasoning and algebra and don't have to worry about poo poo like memory management when trying to teach recursion or algorithms haskell is a great way to misteach algorithms, cf. idiomatic haskell quicksort not actually being quicksort, etc
|
# ? Feb 28, 2013 16:30 |
|
Malcolm XML posted:This is why using Haskell to teach CS fundamentals is great since you can rely on equational reasoning and algebra and don't have to worry about poo poo like memory management when trying to teach recursion or algorithms i bet its also tought by a math prof too. gross.
|
# ? Feb 28, 2013 16:30 |
|
TBC blog incoming Is it really so bad to develop on a production server?
|
# ? Feb 28, 2013 16:42 |
|
horse mans posted:gc pausing is a non issue! funny that you should mention ad bidding, seeing as java dominates that space appnexus was just the first to come to mind because i have actually talked to these guys. they work under hard real-time constraints with millions of transactions a second, all java all the time gc pausing really is a non-issue. you can still have stop-the-world gc in real-time, because what is important is predictable pauses, not the presence or absence of pausing. (i think they mostly use concurrent gc tho, to sidestep the issue entirely)
|
# ? Feb 28, 2013 16:45 |
|
Mr Dog posted:I'd love to find a better way for people to learn other than "gently caress it up over and over again until you get a feel for what not to do" hey when you figure this out, be sure to share it with every other discipline that isn't CS also when you get your first crop of bright-eyed eager students, enjoy crushing their enthusiasm with "hand assembling multiple instructions" christ that is literally a mechanical task
|
# ? Feb 28, 2013 16:49 |
|
Shameproof posted:In Corinian C we don't say x.hello() or x->goodbye(), we say [x salame] try not to shed no tears
|
# ? Feb 28, 2013 16:54 |
|
so i picked up coders at work and i think i discovered how!!'s secret identityquote:Zawinski: Yes, there are definitely times when you have to cut your losses. And this always feels wrong to me, but when you inherit code from someone else, sometimes it's faster to write your own than to reuse theirs. Because it's going to take a certain amount of time to understand their code and learn how to use it and understand it well enough to be able to debug it. Where if you started from scratch it would take less time. And it might only do 80 percent of what you need, but maybe that's the 80 percent you actually need.
|
# ? Feb 28, 2013 17:01 |
|
Otto Skorzeny posted:haskell is a great way to misteach algorithms, cf. idiomatic haskell quicksort not actually being quicksort, etc It's an out-of-place quicksort but that's an opportunity to teach people about the pros and cons of mutable data structures Note you can get a mergesort that's more or less the same, so it's not like the world is lost because of MY QUICKSORTZ Shaggar posted:i bet its also tought by a math prof too. gross. Nah it's in the CS dept. but cs is a subset of math so it's not like theres a semantic difference
|
# ? Feb 28, 2013 17:16 |
|
Cybernetic Vermin posted:closures being awesome does little to save javascript from being awful nothing needs to save javascript from being awful cause the only people who think it's awful are bad programmers or people who haven't touched it since 1998 (but i repeat myself)
|
# ? Feb 28, 2013 17:17 |
|
brendan? is that you?
|
# ? Feb 28, 2013 17:21 |
Mr Dog posted:Teaching algorithms and data structures in C is good, having programmers write their very first programs in some non-awful asm (i.e. not x86) is better, maybe even hand-assemble an instruction or two. lol this is absolute nonsense. seriously why the gently caress would you do this?
|
|
# ? Feb 28, 2013 17:32 |
|
OBAMA BIN LinkedIn posted:lol this is absolute nonsense. seriously why the gently caress would you do this? fetishization of obsoleteness
|
# ? Feb 28, 2013 17:34 |
since my autism requires me to think only in extremes, i'm going to force you to use some ancient antiquated language and loving about with memory management in 2013 tyool so you can learn how a binary tree works.
|
|
# ? Feb 28, 2013 17:35 |
|
javascript has some bad parts (hell the book is called "the good parts") but most (not all) of them can be ignored and closures are indeed awesome and javascript makes it easy to use them. ive been writing games in javascript and dare i say i enjoy it? its not really a "good" language but its not nearly as awful as its made out to be
|
# ? Feb 28, 2013 17:37 |
|
Dudes someone at some point has to know how to do this poo poo. Javascript is not self-hosting.
|
# ? Feb 28, 2013 17:37 |
|
Bream posted:Dudes someone at some point has to know how to do this poo poo. Javascript is not self-hosting. coffeescript is
|
# ? Feb 28, 2013 17:41 |
|
OBAMA BIN LinkedIn posted:since my autism requires me to think only in extremes, i'm going to force you to use some ancient antiquated language and loving about with memory management in 2013 tyool so you can learn how a binary tree works. I prefer to code by rubbing magic code cream on the repo until it looks not broken long enough to pass muster.
|
# ? Feb 28, 2013 17:43 |
i love these cs profs that try to shoehorn memory management and other tedious crap into a completely different syllabus because they are stuck in the 80s when managing memory was still a thing that people did and because they had to deal with it when learning, obviously everybody in the 21st century should have to as well.
|
|
# ? Feb 28, 2013 17:45 |
|
the computer is a magic box, what is this "swapping" horseshit you're talking about????????????????
|
# ? Feb 28, 2013 17:48 |
|
academia is glacially slow to adopt new practical approaches? well .... gently caress! it's totally weird how it takes longer to reconcile new evidence with decades or centuries or millennia old epistomological frameworks
|
# ? Feb 28, 2013 17:48 |
|
horse mans posted:academia is glacially slow to adopt new practical approaches? well .... gently caress! i don't think it's an epistemological framework that gets changed at all. the professor's views on knowledge and what it means to know something are not being modified, rather the things he knows within an immutable framework of what it means to know something are slow to change as he balances new evidence against old.
|
# ? Feb 28, 2013 17:49 |
horse mans posted:academia is glacially slow to adopt new practical approaches? well .... gently caress! yeah man loving centuries of papers back the prof up when it comes to teaching a student to program data structures in loving assembly language. C is bad enough, but assembly? lmao just because it's harder to make a binary tree in C than it is in python doesn't mean the student gets any more of a learning experience of it, infact they probably get less because they spend all their time messing about with memory errors and debugging than actually learning how the algorithm works. save the memory management crap for C or operating systems classes where it belongs.
|
|
# ? Feb 28, 2013 17:55 |
|
|
# ? May 14, 2024 20:56 |
|
Yeah, guys, why don't you kiss girls and get on github instead of all this nerd poo poo?
|
# ? Feb 28, 2013 17:57 |