Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Zombywuf
Mar 29, 2008

Deus Rex posted:

my sister had never done any programming before college and is in her third year of a math/CS major

Can she actually program?

Adbot
ADBOT LOVES YOU

Squinty Applebottom
Jan 1, 2013

its a shame shes ruining her math major with CS poo poo

Cybernetic Vermin
Apr 18, 2005

on the python course i worked on >90% had never programmed before, and a lot of them needed explanations of stuff like files and directories, having been born in the 90s and used to just using desktop/my documents/whatever.

a fairly good proportion made it through the course and i am pretty confident that they learned something useful even though few of them will ever program much

Cybernetic Vermin
Apr 18, 2005

also people who "know" how to program but actually don't are the worst people in the world to teach

Squinty Applebottom
Jan 1, 2013

Cybernetic Vermin posted:

also people who "know" how to program but actually don't are the worst people in the world to teach

god stop piling on sulk already

Cybernetic Vermin
Apr 18, 2005

polpotpi posted:

god stop piling on sulk already

you are confusing me with someone else here, i quite enjoy the introductory programming courses and believe that they are useful and functioning

pointers
Sep 4, 2008

something's wrong with CS when there are people graduating never having seen algorithm analysis, or not knowing the difference between pass by reference and pass by value. if you don't learn what's going on in the background, if you can't explain why this algorithm is better than that one and why, wtf are you in CS for?

my school split the intro courses into 'for CS', 'for science' and 'for social sciences' which is a pretty decent solution to 'other majors need to learn programming too!'

Cybernetic Vermin
Apr 18, 2005

computer science and computer engineering seems to be pretty mixed up pretty much everywhere, we attempt to have a split, a monumental failure of a split

tbqh i am not really sure what to do about it, since student demands and expectations is part of why it works out this way

MononcQc
May 29, 2007

Teaching how to program is such a terrible topic. Only anecdotes everywhere and everywhere.

I agree with tef things often end up being "I recommend you learn the [lovely] way I learned because it obviously worked for me", which sounds like a basic variation on "good programmers are programmers like me."

There's actually existing material on best ways to teach poo poo and evaluate it, and some of the most basic material could be things like Bloom's Taxonomy. There's a load of material on how to apply it in different ways. There's a somewhat interesting paper of the topic of applying Bloom's taxonomy to basic CS (Bloom's taxonomy for CS assessment). Of course this doesn't approach the question of "are we even teaching the right thing?", but that's another finger trap to poke.

A lot of the people who teach programming as hobbyists or without any training (myself included) don't appear to know about this, or how to apply it effectively, or how to make sure it's done right. Then there's people being surprised that education is bad when few people are very good at educating.

I can remember a ton of classes I've taken in university or college where entire aspects of this were omitted, and I can point to a bunch of stuff I've done that doesn't respect it either. I can remember high school classes where I still remember the most stuff seemed to follow its principles, too.

(I figure it's not the only taxonomy/methodology available, so judging everything by its standard is sure to be wrong)

Cybernetic Vermin
Apr 18, 2005

Eh, I find this a pretty interesting conversation, people have different ideas and many of them are rather interesting. It is no more anecdote-driven than the main topic of this thread anyway, which basically amounts to reminding people that most languages are terrible for various reasons.

For the record I am not deeply into the theoretical parts of learning either (usual 80/20 research/teaching split), and don't actually run the courses (as we have hundreds of students on each course many parts require additional teachers), but we luckily have researchers on staff in the field of teaching, so there is some interplay. Sometimes unsuccessfully, such as a stint with a BlueJ-based starting curriculum, but I think a lot of good comes from it anyway. The situation remains constrained though as we for technical and political reasons have to please a bunch of other departments in the structure of the courses, but there is certainly no lack of thought going into what is done.

Progressive JPEG
Feb 19, 2003

tef posted:

ugh I leave this thread and look at it.
glad ur back

ps watched ur vid a couple weeks ago and liked it a lot

MononcQc
May 29, 2007

Cybernetic Vermin posted:

Eh, I find this a pretty interesting conversation, people have different ideas and many of them are rather interesting. It is no more anecdote-driven than the main topic of this thread anyway, which basically amounts to reminding people that most languages are terrible for various reasons.

Yeah, I'm definitely fine with the topic, and the discussions are fun to read anyway. At some point it has to devolve in "what should a programmer know", and that gets close to "what is a good programmer", where people end up pointing out "here's how I learned stuff, it is likely the best!" with no idea on how to assess anything they'd love to see taught.

It's interesting to know all the different approaches that ended up working for each person, at least, and it's something interesting to keep in mind when writing training or teaching material.

quote:

For the record I am not deeply into the theoretical parts of learning either (usual 80/20 research/teaching split), and don't actually run the courses (as we have hundreds of students on each course many parts require additional teachers), but we luckily have researchers on staff in the field of teaching, so there is some interplay. Sometimes unsuccessfully, such as a stint with a BlueJ-based starting curriculum, but I think a lot of good comes from it anyway. The situation remains constrained though as we for technical and political reasons have to please a bunch of other departments in the structure of the courses, but there is certainly no lack of thought going into what is done.

I'm not big on theory either, and as I mentioned, I don't claim to be a good teacher/trainer. In fact I generally don't teach. I wrote a book, and wrote course material trained people on Erlang for about a year, but that's the extent of my experience, and I mostly just winged it.

I remember discussing the curriculum with my teachers in college back when I was studying multimedia (3 years on this, only to go program instead!). They were mostly people from various areas of the industry who cared about giving good material, but ended up struggling a lot because of lovely people (other teachers who were union protected or saw the department as a way into cheap contracts or never felt they needed to update their knowledge with the real world), inter-department agreements regarding structures, topics, or even who teaches classes, and, obviously, budget.

It's extremely complex as a topic, and teachers and professors who can manage to cut through all the issues and bullshit to make their classes better, without ending up being cynical as hell, are pretty impressive.

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror

this is cool. shows you how much behind the scenes effort is involved in stuff that just automatically does the right thing

Jonny 290
May 5, 2005



[ASK] me about OS/2 Warp

Tiny Bug Child posted:

this is cool. shows you how much behind the scenes effort is involved in stuff that just automatically does the right thing

well, it's a good contrast that that stuff anyways.

Zombywuf
Mar 29, 2008

MononcQc posted:

Yeah, I'm definitely fine with the topic, and the discussions are fun to read anyway. At some point it has to devolve in "what should a programmer know",

To me this is use case based design, which has a habit of producing terrible outcomes. A beginner class should be looking at "What do all programmers know that they don't know they know?" I've watched many students when I was at university getting completely confused because the syllabus at that time (completely unrelated to a large donation from Sun - honest) had decided that what every programmer should know is OO design. So they started there, with beginners. This was at a time when there were still people in the CS courses who had not ever actually used a computer, and they went straight into OO design because a programmer should know it.

Zed Shaw has a wonderful bit on teaching in one of his talks where he claims that the biggest difficulty the majority of beginners have is semicolons. Thinking back to when I was a beginner, friends who were also beginners and also beginners around me when I was reasonably capable this is certainly the case for a lot of people. I mean really, how many non-programmers at university have ever actually typed a semicolon? There's a whole bunch of really foundational stuff programmers need to know, things like "the compiler is really really picky about what you type into it". All the other poo poo, the poo poo that seems relavent to people like us who can take a context free grammar and just start typing code that conforms to it (sometimes even getting it right), is for later when the student is vaguely used to how computers try to execute the poo poo they type.

The idea behind starting with a really simple language is so there is as little as possible between the student and what is going on, meaning they have to make fewer guesses, fewer mental models have to be developed. Mental models that are likely to be often incorrect.

Catalyst-proof
May 11, 2011

better waste some time with you

Shaggar
Apr 26, 2006
one of the comp sci classes I took in highschool started w/ this thing with a robot that could only move forward or turn left. so you wrote programs to make the robot move thru a maze that were just a list of instructions on how the robot should move. then they introduced subroutines so you could create a turnRight that was 3 turn lefts in a row or moveBackwards (2 turn lefts and a move forward) etc... to demonstrate some basic code reusability ideas. even tho it was kind of boring cause it was my second comp sci class, it was still kind of a cool way to teach those concepts w/out really any computerery involved. then later we went into c++ and started w/ similar simple programs and moved on to more complex topics.

Catalyst-proof
May 11, 2011

better waste some time with you
lol if you didn't learn boolean logic and programming from rocky's boots and robot odyssey on the tandy trs-80

also i guess the island of dr brain

Bream
Feb 3, 2013

Farmer's Barket
My kindergarten class had Apple IIs, and logo was where I first had that magical moment of being able to make computer bow to my will. But seriously, for a ~*first language*~, can you not expect that a general education has prepared people enough that at most you should have to introduce concepts like boolean logic and functions and arguments and stuff like that with a two-hour review?

How do you guys feel about singletons? Are they just a way of sneaking in global state?

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror

Jonny 290 posted:

well, it's a good contrast that that stuff anyways.

i have been using a lot of foreaches every day for quite some time now and i have never run into any of those problems. foreach just works

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

tef came back, and then he left again. why am i still reading this thread and posting in it

Zombywuf
Mar 29, 2008

Bream posted:

My kindergarten class had Apple IIs, and logo was where I first had that magical moment of being able to make computer bow to my will.

Logo at a young age seems really common among programmers. They should put a health warning on it.

Toady
Jan 12, 2009

Cybernetic Vermin posted:

on the python course i worked on >90% had never programmed before, and a lot of them needed explanations of stuff like files and directories, having been born in the 90s and used to just using desktop/my documents/whatever.

it's weird to come across a 20 year old who "doesn't know computers", which is fine in THE POST PC ERA, but also strange to watch a generation act like their grandparents

Toady
Jan 12, 2009

btw the "teach everyone programming" topic that flares up every three months on hacker news is loving tedious

Bream
Feb 3, 2013

Farmer's Barket

code.org posted:

Code With Karel the Dog
Giving commands to a computer is just like giving commands to a dog.

Shaggar
Apr 26, 2006
yes that's it. but its karel the robot (named for http://en.wikipedia.org/wiki/Karel_%C4%8Capek)

Jonny 290
May 5, 2005



[ASK] me about OS/2 Warp

Tiny Bug Child posted:

i have been using a lot of foreaches every day for quite some time now and i have never run into any of those problems. foreach just works

map is fun esp with code blocks

code:

@posters = ('tbc', 'shaggar', 'rotor');
$badposter = { "$_ is a terrible poster" };
$goodposter = { "$_ is pretty funny" };

my @badposters = map $badposter @posters;

tef
May 30, 2004

-> some l-system crap ->

Zombywuf posted:

Another word for suffering is challenging. Students who are not challenged will not learn, this is like lesson one in teacher training.

The fact you cannot distinguish between suffering and challenging is exactly the problem I have with you.

Catalyst-proof
May 11, 2011

better waste some time with you
i got your challenging right here bioootch








seriously i was like 4

JewKiller 3000
Nov 28, 2006

by Lowtax

tef posted:

or: no-one should learn first aid because real medicine is hard.

maybe am I the only who thinks that maybe learning to code even a little might help people use computers effectively, even if it's just simple automation or scripting.


rather than just teaching monks how to illuminate scripts

look bro, us monks are making a poo poo ton of money right now illuminating those scripts. if the rest of the world figures out that programming isn't just arcane sperg wizardry, and they can do it too, we might have to get off our asses and Do Work, or accept lower salaries!

JawnV6
Jul 4, 2004

So hot ...

Shaggar posted:

one of the comp sci classes I took in highschool started w/ this thing with a robot that could only move forward or turn left. so you wrote programs to make the robot move thru a maze that were just a list of instructions on how the robot should move. then they introduced subroutines so you could create a turnRight that was 3 turn lefts in a row or moveBackwards (2 turn lefts and a move forward) etc... to demonstrate some basic code reusability ideas. even tho it was kind of boring cause it was my second comp sci class, it was still kind of a cool way to teach those concepts w/out really any computerery involved. then later we went into c++ and started w/ similar simple programs and moved on to more complex topics.

karel the robot :3:

Shaggar
Apr 26, 2006
there was also that robot puzzle in castle of dr brain that was similar.

tef
May 30, 2004

-> some l-system crap ->
ps logo is neat but ugh make "x :x + 1 is awful as gently caress

FamDav
Mar 29, 2008

Zombywuf posted:

I'd like to believe it but I've never seen a counter-example.

I started programming in a 3rd year c++ programming competition class. I think being a math major gives you a huge leg up tho

Anyways, learning to program initially is not entirely dissimilar to learning a new language, and one thing people seem to neglect is practicing it a little bit every day at the beginning. The 101 students I had who had never programmed and still did very well in the class were the ones who pumped out poo poo day after day and came and asked us about it. Eventually they stopped pumping out poo poo and it started to click because they did it enough.

welp this is my anecdote.

FamDav fucked around with this message at 20:06 on Mar 1, 2013

MeruFM
Jul 27, 2010

JewKiller 3000 posted:

look bro, us monks are making a poo poo ton of money right now illuminating those scripts. if the rest of the world figures out that programming isn't just arcane sperg wizardry, and they can do it too, we might have to get off our asses and Do Work, or accept lower salaries!

this but unironically for the last 6 pages

I learned bool-logic and shits to be lazy at games. who knew I could use it to be lazy in real life AND get paid for it?

For normals, AutoHotKey/AutoIt/Applescript are the best languages to learn. It becomes immediately obvious how useful they are for many tasks. Even for something as simple as "mouse wheel changes volume"

Once they get past that and want to do something fancy, then javascript because everyone has a javascript interpreter.

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

MeruFM posted:

Once they get past that and want to do something fancy, then javascript because everyone has a javascript interpreter.

i recommend that a lot, especially since it's built in to the tool for seeing how a web page works

Zombywuf
Mar 29, 2008

FamDav posted:

I started programming in a 3rd year c++ programming competition class. I think being a math major gives you a huge leg up tho

Cool, it's good to know it is possible to learn without starting as a child. What problems did you have when learning?

quote:

Anyways, learning to program initially is not entirely dissimilar to learning a new language, and one thing people seem to neglect is practicing it a little bit every day at the beginning. The 101 students I had who had never programmed and still did very well in the class were the ones who pumped out poo poo day after day and came and asked us about it. Eventually they stopped pumping out poo poo and it started to click because they did it enough.

Yeah, this is why you either a) already have a pressing issue to solve that can be solved with relatively simple code or b) need someone setting loads and loads of toy examples. The latter case is probably where using a low level language is good because you need to re-implement a whole bunch of stuff that is (or should be) very well understood by the teacher.

Then again, I think 99% of all the code I wrote as a teenager was making balls bounce around a screen.

shrughes
Oct 11, 2008

(call/cc call/cc)

Zombywuf posted:

I'd like to believe it but I've never seen a counter-example.

I've seen plenty.

And i thought that people thinking they know how to program failing out of intro CS weed-out courses and being surpassed by non-retarded noobs is a common trope in CS education.

MononcQc
May 29, 2007

I came here to write video games :qq:

Adbot
ADBOT LOVES YOU

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

shrughes posted:

I've seen plenty.

And i thought that people thinking they know how to program failing out of intro CS weed-out courses and being surpassed by non-retarded noobs is a common trope in CS education.

some of the smartest and best coworkers i have started because they could they make a lot of money programming and never knew anything before uni

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply