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.
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?
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.
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".