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
Tunicate
May 15, 2012

Cybernetic Vermin posted:

the option to use a dedicated teaching language is there, but there'd be some real upsides to a language with some scientific computing, math, and visualization credentials as we funnel a lot of engineering disciplines through our intro courses.

So teach them MATLAB

Adbot
ADBOT LOVES YOU

bob dobbs is dead
Oct 8, 2017

I love peeps
Nap Ghost

Plorkyeran posted:

there was a time when the mainstream languages people wrote actual software in did not have closures and higher-order functions were arcane black magic, so lisp seemed incredibly fancy

i do not particularly understand why people act like lisp is still special

homoiconicity means lisp repls are still better and they can kramer in really serious language features with great backwards compatibility unlike the pythons of the world, but thats about it

bob dobbs is dead
Oct 8, 2017

I love peeps
Nap Ghost

Tunicate posted:

So teach them MATLAB

please dont

Cybernetic Vermin
Apr 18, 2005

Tunicate posted:

So teach them MATLAB

one big motivation for me here is the complete elimination of matlab from our entire curriculum.

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

bob dobbs is dead posted:

homoiconicity means lisp repls are still better and they can kramer in really serious language features with great backwards compatibility unlike the pythons of the world, but thats about it

for sure

bob dobbs is dead
Oct 8, 2017

I love peeps
Nap Ghost
clojure core.async was shoved into the language as a first party dealio 8 years after language release and got serious uptake about 10 years after language release. no breaking changes

Cybernetic Vermin
Apr 18, 2005

it is amazing how bad the default python repl is though. to a point where i imagine i could spend a day on improving it and if the patch was accepted it'd be the headline feature of the release for most normal users.

but i imagine there's some politics or weird compatibility reason why it has to be so primitive

Visions of Valerie
Jun 18, 2023

Come this autumn, we'll be miles away...

Internet Janitor posted:

i think processing is excellent for teaching programming

easy to install, good performance, low boilerplate but close enough to normal java to provide a smooth transition, a simple environment that doesn't immediately beat you over the head with distractions and unnecessary complexity, you can easily save multi-platform executables

and most importantly you can immediately draw images and play sounds and do lots of interesting things out of the box

plus the ide is terrible, which sets expectations for programming appropriately

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



Cybernetic Vermin posted:

it is amazing how bad the default python repl is though. to a point where i imagine i could spend a day on improving it and if the patch was accepted it'd be the headline feature of the release for most normal users.

but i imagine there's some politics or weird compatibility reason why it has to be so primitive

yea the ergonomics are trash

if you gently caress up typing something or just wanna make a small change, you cant copypast the working parts because of the >>>/... so you basically either have to start over or arrow up and hit return each line again until the one you wanna edit, then hit return on the rest. which of course makes the history longer so you still have to arrow up 10 times for every line

you basically have to edit your thing in a text file and then paste it into the repl. might as well just run the script directly with the interpreter

Carthag Tuek fucked around with this message at 20:16 on Feb 9, 2024

pseudorandom name
May 6, 2007

i really like java as an intro language because it leads very naturally into the most important followup skill, modding minecraft

bob dobbs is dead
Oct 8, 2017

I love peeps
Nap Ghost
the way you do it w/ clojure nrepl is you just work in a text editor, select part of your program, because everything's a statement, you can select in text editor, gently caress w some part of the running program and rerun just that part of the program direct from the text editor and get the output in some other buffer

the way you do it w/ common lisp, you can even avoid actually filling in statements and use the nutso common lisp error handler to fill in the statement in your text editor / in the program simultaneously as you run

bob dobbs is dead fucked around with this message at 20:22 on Feb 9, 2024

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



i guess some stuff you can monkeypatch, but its not ideal

Visions of Valerie
Jun 18, 2023

Come this autumn, we'll be miles away...

bob dobbs is dead posted:

the way you do it w/ clojure nrepl is you just work in a text editor, select part of your program, because everything's a statement, you can select in text editor, gently caress w some part of the running program and rerun just that part of the program direct from the text editor and get the output in some other buffer

the way you do it w/ common lisp, you can even avoid actually filling in statements and use the nutso common lisp error handler to fill in the statement in your text editor / in the program simultaneously as you run

never really got the hang of slime, but I could sense there was power within

Internet Janitor
May 17, 2008

"That isn't the appropriate trash receptacle."

bob dobbs is dead posted:

just start recommending decker and be done with it lol

in its current form i don't think decker would be very good for general introductory programming courses

i have reference documentation, but an area i'm sorely lacking is a tutorial curriculum for scripting; i plan to work on this

lil and the whole decker environment are very different from a conventional p-lang-and-text-editor workflow and these might inherently cause undue difficulty transitioning to java or python or whatever later

i have had some encouraging discussions with educators about using it in intro game design or narrative design courses, though; the same areas where tools like twine are appropriate

neosloth
Sep 5, 2013

Professional Procrastinator
one or our unis here uses racket for intro classes and everyone ive talked to that took that program despises it what makes me think it was the right choice

neosloth
Sep 5, 2013

Professional Procrastinator
common lisp is fun Im just getting back into it and its nice being able to install any feature I might want as a library. wanted pattern matching and algebraic data types and its just one download away

cant imagine working with it as a job for the same reasons

Sapozhnik
Jan 2, 2005

Nap Ghost
i learned to program in basic and i turned out just fine

bob dobbs is dead
Oct 8, 2017

I love peeps
Nap Ghost
no you didnt you post here like the rest of us

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



Internet Janitor posted:

in its current form i don't think decker would be very good for general introductory programming courses

i have reference documentation, but an area i'm sorely lacking is a tutorial curriculum for scripting; i plan to work on this

lil and the whole decker environment are very different from a conventional p-lang-and-text-editor workflow and these might inherently cause undue difficulty transitioning to java or python or whatever later

i have had some encouraging discussions with educators about using it in intro game design or narrative design courses, though; the same areas where tools like twine are appropriate

oh man i would love for kids to learn to program using decker :3:

i think i learned more about programming from hypercard than c64 basic, which doesnt mean much tbh, but now that i think about it, decker/hypercard is the perfect repl. youre just live editing your app the whole time. it owns bowns

mystes
May 31, 2006

bob dobbs is dead posted:

no you didnt you post here like the rest of us


Also I kind of think basic is probably even worse than c in terms of instilling bad habits (I guess depending on the version)

Cybernetic Vermin
Apr 18, 2005

mystes posted:

Also I kind of think basic is probably even worse than c in terms of instilling bad habits (I guess depending on the version)

except the worst habit: being a loving elitist shithead about it while not being able to solve the most basic of computational tasks.

the cs program here was never that strong, but i think the monoculture of insufferable (male, white, youth) people having strengthened over the last 20 years is to no small part attributable to a bizarre and irrelevant low-level focus, displayed (though certainly not consisting entirely) in the switch from sml to c as intro language.

Sapozhnik
Jan 2, 2005

Nap Ghost
c sort of makes sense as a stepping stone. like say starting with assembly language and observing that setting up stack frames and tracking which registers hold what is tedious, so let's move on to c. and then observing that manual memory allocation and a lack of reusable data structures is tedious, so let's move on to python or rust or whatever.

...

well, except that this sort of bottom-up teaching is great for already-knowledgeable people to jerk off to and terrible for actually teaching newcomers because none of these zoomed-in minutiae have any bearing on any problem that they actually care about. by definition a novice does not know the big picture yet.

probably better to start with something like python and then work your way downwards from there instead idk. depends on your teaching objectives i suppose? if you're teaching "data science" or whatever then python and jupyter etc are probably fine as both a beginning and end point.

Sapozhnik
Jan 2, 2005

Nap Ghost

bob dobbs is dead posted:

no you didnt you post here like the rest of us

i feel nervous about posting itt specifically to be honest with you because there are like, actual language designers in here

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



Sapozhnik posted:

i feel nervous about posting itt specifically to be honest with you because there are like, actual language designers in here

:justpost:

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
we language designers are a wild and fearsome race, long of tooth and sharp of claw. dark is the blood with which we anoint our specifications. our laughter is cruel, and our committees black havens of the depraved

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

rjmccall posted:

we language designers are a wild and fearsome race, long of tooth and sharp of claw. dark is the blood with which we anoint our specifications. our laughter is cruel, and our committees black havens of the depraved

unironically

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

do you do birthday parties?

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
not in less than five hours of discussion

Visions of Valerie
Jun 18, 2023

Come this autumn, we'll be miles away...

Subjunctive posted:

do you do birthday parties?

nah, we can't agree on date representations

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
also why we’re slowly dying out

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



open issues
- cake contents TBD [100 KPI]
- candles per cake algorithm, calendrical? #TODO localize. might be 1-indexed
- fix race condition in cut cake / first pick routine (maybe exclusive or?)
- implement time skip for adults during package opening sequence
- early return guard possible if kids have bad vibes?
- bug tracker is at neverreturn@myhouse.local

Armitag3
Mar 15, 2020

Forget it Jake, it's cybertown.


Carthag Tuek posted:

open issues
- cake contents TBD [100 KPI]
- candles per cake algorithm, calendrical? #TODO localize. might be 1-indexed
- fix race condition in cut cake / first pick routine (maybe exclusive or?)
- implement time skip for adults during package opening sequence
- early return guard possible if kids have bad vibes?
- bug tracker is at neverreturn@myhouse.local

party is over because someone brought a gift that was too big for the gift buffer

Visions of Valerie
Jun 18, 2023

Come this autumn, we'll be miles away...

Armitag3 posted:

party is over because someone brought a gift that was too big for the gift buffer

it overflowed into the pool and I am NOT cleaning that up

Xarn
Jun 26, 2015
Every time you think that to participate in language standardization, or writing the standard library or w/e requires you to be real smart, just remember: they let me do it.

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

stack canary died when someone cooked with a non stick pan

feedmegin
Jul 30, 2008

Internet Janitor posted:

awt and swing look dated and non-native, and are kind of a pain in the rear end to use, but they're functional. with a little effort you can get results comparable in many ways to Qt, but unlike Qt you don't have to run all your code through an insane custom preprocessor

java2d, the graphics foundation that underlies awt, is much closer to what i'm advocating. it provides performant (hardware accelerated where available) and perfectly cross-platform basic canvas-style drawing capabilities

Counterpoint : put the stuff the moc enables in the language (some of it can be done natively now already). Then use Qt.

prisoner of waffles
May 8, 2007

Ah! well a-day! what evil looks
Had I from old and young!
Instead of the cross, the fishmech
About my neck was hung.

Tunicate posted:

So teach them MATLAB

MATLAB is a terrible language to teach programming fundamentals in but it might be really informative to have students do some sort of math heavy task in a more general purpose language, then compare how much easier it is to do the math parts in MATLAB?

jk, I think anything that pedagogically innovative is probably a terrible idea in a large, “one size fits most, we hope” class

mystes
May 31, 2006

Just use numpy or something

Dijkstracula
Mar 18, 2003

You can't spell 'vector field' without me, Professor!

Athas posted:

Standard ML is an excellent teaching language.

apropos of nothing, my alma mater outputs a ton of machine learning research and there was a tendency to refer to non-reenforcement learning techniques as "standard ml" which even as a budding plang thread poster 15 years ago never failed to throw me for a loop

Adbot
ADBOT LOVES YOU

Dans Macabre
Apr 24, 2004


more like p-nis

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