What humanities scholars want students to know about the internet
computinged.wordpress.com
computinged.wordpress.com
In CS courses you teach students to be CS scholars so it's normal that you teach the fundamentals to make them achieve that goal. When teaching stuff to a people of different background you need to first ask why, why do you need this and then adapt the curriculum to that.
Weeder courses signal to the students "Hey, if you're struggling in this class, it's not too late to switch majors". Every student "weeded out" frees up a disproportionate amount of resources for the rest of the students who are ready and willing to learn.
But sometimes they are a real problem from the student’s perspective, especially when the class is made artificially difficult to pass, and this does happen. They are not always used to prune students who can’t handle a degree, they are sometimes used to limit enrollment in a program that doesn’t have enough capacity, which isn’t an issue with student preparation or capabilities.
Their proposals were beaten back, but it took a lot of effort.
Czechia, 1998-1999. No tuition involved, study was still completely financed by the taxpayer.
Out of necessity, academia historically selected for students who could learn from being read to just once without much context, and there was little pressure to fundamentally change the education format. It's very easy to better serve most modern students by actually designing the program for those students for a change.
Debates over this get muddled by zero-sum concerns. E.g. catering to the average student hurts the top performers; putting applications first replaces rigorous education with training.
The absolute lack of context and meaning to anything that was done in math education meant I never appreciated them, they were literally just wastes of time to me. Anything beyond simple arithmetic made no sense to me, because I was never taught how they made sense.
It was only once I started playing around with programming when everything suddenly clicked. All at once, concepts like variables and equations had meaning, I could sincerely understand what the numbers and letters stood for.
Math education in general really would benefit students of all ages more if they had more of the Hows and Whys before engaging in all the Whats.
This is probably the most valuable exercise described in the article. It is essentially an exercise in art, where you can reflect on the path that someone you actually admired took, and what your own representation to the world looks like. The tone of the course materials about justice and power are sort of gross to me, but maybe the physical competence and reflection will imbue the students with more character and insight than their instructors. The "write the resume of a historical or fictional figure," idea looks like a really interesting project.
In what way?
I quite like the precrime cluedo, which will show what the problems with that approach are:
"Department of Police of Clueville, Pennyslvania has contacted you. They received a tip that someone planning a crime used our Eliza chatbot. They think that it was either Colonel Mustard, Professor Plum, or Mr. Green. The tip to the police said that the person was really angry and seemed to think that Eliza was a real person. “I think they told Eliza about their plans,” said the tip.
The fakelog.txt dataset is based on the log file from when our class was interacting with Eliza. Your job is to figure out: The IP address of who is planning the crime, what they said to Eliza, and see if you can figure out (a) the room where they are planning their crime and (b) what weapon the planner intends to use. (Hint: Probably mentioned on this page https://en.wikipedia.org/wiki/Cluedo.)."
Which is: > The focus of the course is on text, which is at the traditional heart of the humanities. We study how text appears and is used in computing, and how computation has changed the experience of text. Most of the text we deal with daily is on the Web. We trace the development of computational text from the early days to today’s Web, as a lens to understand computing’s impact on the world. We will address directly how early computing biased towards supporting only certain kind of texts for only certain kinds of people. The Web was created with a bias towards America and Europe, men, and most strongly, towards English.
Each section of the course will teach about computing, explicitly including programming, in the frame of justice. How was computing created, and for who and what purposes – both explicit and implicit? What computational skills, knowledge, and insights support critical study of the impact of computation on our lives?
Strange thing to be grossed out about, but hey..
E.g. chapter 1 of the "Computing for Expression" ebook https://runestone.academy/ns/books/published/comp-expression... starts with "We saw the Riley Quilt program in class." and dumps a huge pile of Snap spaghetti on the unsuspecting reader, which makes it rather unsuitable as a standalone textbook.
A pity, because curating subsets of CS skills useful to non-CS folks seems quite promising to me.
It's natural for the CS professor to instinctively teach how computers work first, because the computer is the goal. The inner workings of computers are the means to an end: "How do I make a computer say 'hello world'?"
But for everyone else like the history professor, they want to know how and why making a computer say "hello world" can be useful to them and their goals. The computer is simply just another tool that might help them achieve something, and nobody cares about how any of it specifically works.
You, on the other hand, are asking why she isn't teaching what a website is. So yes, you're seeing computers as the end to a means while the history professor is asking how computers could be a means to an end.
Did you know in the 70s and 80s, common undergrads (not CS students) used to program Fortran on punchcards? My mother was an undergrad biology student, when she learned I was interested in programming she pulled a dusty box of punchcards out of the attic to show me programs she had written. If colleges are using Snap instead of asking students to write some basic SQL queries, I think they're damning those students with faint expectations.
If any of those students in humanities need to do data science later for their own careers how does building websites with Snap help them?
If you'll please take the time to read some of the things they've written, especially the The Beauty and Joy of Computing, and the long history of Scratch and Logo and Scheme that led to and inspired the development of Snap!, you'd probably find that you agree with a lot of things they say.
https://en.wikipedia.org/wiki/Brian_Harvey_(lecturer)
https://bjc.berkeley.edu/team/snap/
https://snap.berkeley.edu/research
https://www.snapcon.org/users/5
https://en.wikipedia.org/wiki/Cynthia_Solomon
https://news.ycombinator.com/item?id=36755836
Seymour Papert, introducing "The Turtle":
https://www.youtube.com/watch?v=-V_OPfmbbCk
https://www.youtube.com/watch?v=fTO-Ruby-Uo
https://www.youtube.com/watch?v=CJlRGe5QGhs
Also thanks to Lars Brinkhoff's research: Here's a video uploaded by Cynthia Solomon. Seems legit.
https://www.youtube.com/watch?v=c4kMzrDr4jQ
Definitely check out the rest of Cynthia Solomon's youtube video treasure trove, with lots of great stuff by Marvin and Margaret Minsky, Seymour Papert, and others from MIT and Atari Cambridge Research:
https://www.youtube.com/user/cynthiaso/videos
Seymour Papert on Logo, Turtles and Giraffes:
https://www.youtube.com/watch?v=maDzjHIiXZc
https://www.youtube.com/watch?v=lDyym_9-E-g
https://www.youtube.com/watch?v=ha8sTgtUejM
A gestural programming system developed by Margaret Minsky, Danny Hillis, Daniel Huttenlocher, David Wallace (Gumby), and Radia Perlman at the MIT-AI Lab:
https://www.youtube.com/watch?v=-Wq6SQTVM9M
Marvin Minsky demonstrating a Logo Machine with an acoustic modem and cassette tape, talking about education theory, and showing a part of his first "thinking" machine: a simulated nerve synapse (1 of 40) with an adjustable knob that he built in 1951 out of WW-II surplus hardware, and discussing playing with Tinker Toys as a child:
https://www.youtube.com/watch?v=c4kMzrDr4jQ
https://www.youtube.com/watch?v=S72xF3gd-mI
https://www.youtube.com/watch?v=yZRQQl8mA0c
https://www.youtube.com/watch?v=dfKRNHRyD64
David Levitt demonstrating his musical improvisation software:
https://www.youtube.com/watch?v=ocwsVkqEKys
List of Logo memos from MIT AI Lab:
https://github.com/pdp11/sits/wiki/List-of-Logo-memos
Brian Harvey’s Personal Narrative on Snap!: Scheme Disguised as Scratch
https://escholarship.org/uc/item/1623m1p3
>In 2009, the University of California, Berkeley, was one of several universities developing a new kind of introductory computer science course, meant for non-CS majors, to include aspects of the social implications of computing along with the programming content. Scratch wasn’t quite expressive enough to support such a course (it lacked the ability to write recursive functions), soProf. Daniel Garcia and I thought “What’s the smallest change we could make to Scratch to make it usable in our course?” After 20 years teaching Structure and Interpretation of Computer Programs [Abelson et al.1984], the best computer science text ever written, I knew that the answer to “what’s the smallest change” is generally “add lambda.” I joined forces with German programmer Jens Mönig, who had developed BYOB (Build Your Own Blocks), an extension to Scratch with custom (user-defined) blocks, including reporters and predicates. [...]
How is it "custom-made", and what's wrong with that?
The HTML extensions to Snap! are essentially just block based macros.
Are Lisp macros a "custom-made domain specific language", therefore it's bad to make websites with Lisp if you use macros because they're "custom-made"?
Paul Graham would probably disagree. What's wrong with using "any language you want", what's so "custom-made" about Snap!, and why is that a problem?
https://news.ycombinator.com/item?id=606619
https://ep.turbifycdn.com/ty/cdn/paulgraham/bbnexcerpts.txt
Lisp in Web-Based Applications
Paul Graham
(This is an excerpt of a talk given at BBN Labs in Cambridge, MA, in April 2001.)
Any Language You Want
One of the reasons to use Lisp in writing Web-based applications is that you can use Lisp. When you're writing software that is only going to run on your own servers, you can use whatever language you want.
[...]
This is what I mean by custom-made:
> Undergraduate Fuchun Wang created a great set of blocks explicitly designed to look like SQL for manipulating CSV files. We used these blocks to talk about queries and database design in the class.
To me the fact that someone had to create this for this class indicates that this is not a common and well-supported way to build database-backed websites.
> Are Lisp macros a "custom-made domain specific language", therefore it's bad to make websites with Lisp if you use macros because they're "custom-made"?
I'm not saying that making websites with any tech is bad, but I think students should learn how to make websites using standard tech. And that's how I understood the goal here: My students build websites. And maybe a freelance web developer would be a better teacher then a CS professor.
It's strange that you would object to writing "custom made" functions in a visual programming language, while you seem just fine with writing functions in JavaScript. Why are "custom made JavaScript functions" ok but "custom made Snap! blocks" aren't?
It sounds to me like you originally misunderstood that Snap! has already existed for many years, and that you could "build your own blocks" with it (which was its original name: BYOB), and mistakenly thought the teachers wrote their own entire block based visual programming language just to generate html. And now you're trying to move the goalposts when it's clear that simply isn't true, because Snap! and the other block and text based programming languages that inspired (like Scratch, Logo, and Scheme) have decades of experience and widespread use in education.
And you're also totally missing the point that this is about a multidisciplinary university, not a trade school for pumping out code monkeys and search engine optimization "experts".
It may humble you to go volunteer to teach adults how to program. Once you're outside the bubble of technically minded people it becomes very obvious how intractable the problem can become. If you're smart, you will arrive at the same conclusion the professor did. In some cases it's often better to start people off with PlaySkool My First Language than immediately plunging them into the depths of language hell. Especially if the goal is simply to improve their productivity.
An example from my personal life. I have taught business people how to think about programming. I generally will sit them down and teach them about Excel, Excel macros, etc. I don't use these in my daily life. I might prefer R, Pandas, or something else. If I recommended those to a non-technical person they would learn nothing. But if I teach them something they can click, play with, etc they will not only be more effective but perhaps eventually be inspired to spread their wings a little. It's not a hit to my ego and I don't look down on them.
Indeed I've never done that. I would have thought that college students are young and intellegent enough to learn to code, but if that's not the case, and they're supposed to learn how to make websites, then they should learn wordpress, or some other CMS that's actually used.
> An example from my personal life. I have taught business people how to think about programming. I generally will sit them down and teach them about Excel, Excel macros, etc.
Yes, Excel is a tool that's used in the real world, and that's the kind of tool people should learn.
Remember, these are liberal arts students; their focus of learning is going down a completely different path from computer science or anything to do with engineering.
As the history professor wants to show her students, a computer can be used to construct a database of information and a website can be used to present that information for subsequent use. This is for furthering their subject of liberal arts, none of them care exactly how computers or websites work because it doesn't matter to them.
So long as they have a rudimentary understanding of what a database is, what a website is, and how they can be used for their goals of studying liberal arts, that's all that matters. They will likely just hire someone with the professional expertise to actually handle the database and website itself later in their careers, because their job is bigger than being a webmaster or a programmer.
It's like how the CEO of a company will want to know how a website could further his business endeavours, but wouldn't necessarily be interested in knowing what a website is because his job is running a company and not a web server.
> Undergraduate Fuchun Wang created a great set of blocks explicitly designed to look like SQL for manipulating CSV files. We used these blocks to talk about queries and database design in the class.
If you want to learn something, you need lots of examples. You have that with javascript and SQL, and today you even have ChatGPT.
If you want to deploy websites you need something well-supported.
https://forum.snap.berkeley.edu/t/whats-new-in-snap-9/14534
I've been writing about Snap! on Hacker News for years, including just recently, comparing it to Logo and Scheme and Scratch:
https://news.ycombinator.com/item?id=36755852
Here's the discussion of Version 5 from four years ago, and it's come a long way since then:
https://news.ycombinator.com/item?id=20309162
There's a whole book of computer science curriculum that's being taught at UCB and many other high schools and universities:
>The Beauty and Joy of Computing
>The Beauty and Joy of Computing (BJC) is an introductory computer science curriculum using Snap!, developed at the University of California, Berkeley and Education Development Center, Inc., intended for non-CS majors at the high school junior through undergraduate freshman level. It is a College Board-endorsed AP CS Principles course. It is offered as CS10 at Berkeley.
Your mischaracterization of Snap! as "not in fact available but had to be custom-made" is only true in the narrowest sense that every programming language, including JavaScript and SQL, were once not in fact available but had to be custom made.
> Undergraduate Fuchun Wang created a great set of blocks explicitly designed to look like SQL for manipulating CSV files. We used these blocks to talk about queries and database design in the class.
>If you want to deploy websites you need something well-supported.
That's not what Paul Graham believes.
The final project of the course is a static web page. Databases need not be involved at all, much less JS code. Why not just HTML and CSS?
What do you mean by “insistence”, are you referring to this article or the broader ongoing existence of visual programming languages?
It would make no sense to send humanities students on a wild goose chase trying to learn two harder languages when visual programming delivers the message just as effectively.
We often get lost in this industry thinking anyone can do what we do. We even see it with this new "ChatGPT is going to take your job" non-sense. The truth is what we do, when we do it well, is hard. If the goal is to deliver a greater point and use some programming construct as a conduit you can't get simpler and more effective than something visual.