6 ms·
I still remember being in my AI class and having the teacher say "This course is taught in LISP. We'll be spending one class on the peculiarities of our system,
by mfringel 5y ago
I still remember being in my AI class and having the teacher say "This course is taught in LISP. We'll be spending one class on the peculiarities of our system, but otherwise you're on your own. If you don't learn it, you'll fail."
They did eventually realize that teaching some of the basics would actually make for more successful students, and better alumni donations.
In the end, the CS Dept. started offering these things as zero-credit courses as a way to square the circle.
- AuryGlenz 5y agoIt’s funny - I can’t think of an equivalent for that sort of thing in any other major. Of course, most other students don’t go in to their major with as much knowledge and experience as a good portion of CS students do.
- spunker540 5y agoThe one big exception I can think of is the arts. But they usually require an audition or portfolio for acceptance. CS majors take anyone but then not until first week of classes is it clear how much pre-reqs are expected.
- silicon2401 5y agoMy experience was the opposite. The learning curve for CS classes is steep, but you can go in with zero knowledge. When I took music theory, there was a hard requirement for vocal training experience and I was rather shocked that such an important and uncommon thing was just taken for granted.
- moshmosh 5y agoOh, music majors in particular are a really good comparison. Though at least music instruction is available in most US school systems over a span of several years, as an ordinary during-school-hours class. Then again if that's the only instruction you've had, you're probably still starting out (maybe hopelessly) behind those who had private lessons outside of school, who are likely the real intended candidates of such programs, and you might not even be able to get into a good program. [EDIT] incidentally, the arts are also infamous for being dominated, at a professional level, by kids with artist parents and kids with rich parents (who can bankroll years of private lessons and then years of little-to-no income while paying for access to career-makers) so... there's that.
- mgkimsal 5y agoMy freshman year of college I took a music course - 'music 101' or something like that. I'd played sax, then guitar and piano, for ... 5-6 years, could read music, write a bit (notation, etc) - took a music theory class in high school - wanted to dive in more. Of the 22 people in the class, 21 of them were singers - everyone except me. Much of the class was around singing - singing scales, etc. I saw nothing in the syllabus that required singing, but... you had to learn to sing stuff by sight reading, and... I'm not a singer. It was embarrassing for me (and probably for others). I think I managed to drop out before losing all my money on that, but... frustrating. Could also tell most of these people had had voice lessons for years, and were all taking this class as a way of getting in to theater work, not... to play an instrument.
- telesilla 5y agoYou can get accepted to a music degree for some majors such as composition without prior proven knowledge but you'd need to do a summer class or similar to learn music theory. It would be rough if you think to learn in a couple of months what most musicians take years, but a friend of mine managed and 2 decades later he's head of the school.
- alistairSH 5y agoAll liberal arts degrees at UVA require 2 writing courses. The first course is required to be taken in your first year. The second is strongly encouraged to be taken in your second year. That feels roughly analogous to a CS department requiring a "*nix skills" course or similar, as most liberal arts degrees require a substantial amount of writing. I assume music (and possibly some fine arts) would require some background in those subjects. They often require a portfolio or audition before entering the program. Do engineering programs expect students to have taken calculus? Though with music (and possibly engineering), you likely have to prove ability prior to being accepted into the program.
- moshmosh 5y agoIt struck me in college that CS departments are getting away with assuming a lot of background familiarity with computers from their incoming freshmen, picked up on those freshmen's own time, in a way that I don't think any other departments do. I don't know how people coming in not having sunk thousands of hours into computer crap before entering a CS major don't drown in a hurry. It'd be like starting a creative writing degree in a world where reading & writing aren't taught in school, except maybe as a one-semester high school elective, and you're just expected to have picked them up on your own time by age 18, if you're going to be a creative writing major. "OK, you're familiar with stories from watching TV, but now you're going to need to read and write them. If you can't read them here's a book(!) to help you learn to read, in you own time. Good luck anyone who wasn't already a long-time reading-and-writing nerd before choosing this major".
- Falling3 5y agoI felt very out of place in my college CS classes. I picked up programming my freshman year and switched to CS from my original major. I was completely green while so many other students - what felt like a majority - had been programming for years and were already extremely familiar with many of the concepts and tools that I was just being introduced to. It was rough for me to feel like I was starting out at such a disadvantage.
- moshmosh 5y agoI was just thinking about this more, and CS programs kinda remind me more of college sports programs than traditional college majors: if you haven't spent years playing the sport before going to college, you're probably gonna have a bad time. Can you still do it? Maybe, but... damn, it's going to be hard, and take some unusual levels of determination. Of course some of the problem is that CS programs use computers so much. Which I know may seem like a silly complaint, but I think the fundamental issue is CS-the-science being mashed together with what's really a vocational program (which is what 99+% of students and employers actually want out of it, and its being "real" CS is mostly just an IQ filter). I imagine if you go into, say, a junior college HVAC program not knowing which is the business end of a screwdriver, you'd also be at a big disadvantage compared with most of your peers, and probably feel really out-of-place for quite a while.
- dehrmann 5y agoNot sure how long ago that was, but Lisp is an interesting choice for an AI class.
- mfringel 5y agoMeasured in decades.
- philsnow 5y agoIt makes complete sense depending on the time. My first advisor in grad school was a more traditional "cog sci / comp sci" phd and then I took a "data mining" grad-level course, but aside from that I'm a complete outsider to the field, but here's my take: Since the 70s, AI was dominated by lisps and nearly everybody was driving at "general" AI by emulating or even attempting to simulate human thought processes. In the 00s people started putting more weight behind statistical / stochastic methods for arriving at answers without necessarily trying to use any model of human cognition. This was called "data mining" and then "machine learning" (partly, I presume, to distance it from the 40 years of academia's dismal failure to produce working AI) and only in the last ~5 years has it come around to people starting to use the term "artificial intelligence" again. In the early days of the revamp, it was common to see janky perl and fortran and not much structure holding it all together. Lately, I gather, the ecosystem is nearly entirely python-centric, but this is due to the gravity well around pandas. There's nothing in particular about python that makes it suitable to the task, though it is happily more approachable/accessible for academics than if a pandas equivalent had instead evolved in C++ or Java.
- sjg007 5y agoLol.. I had the same version of that class but in Haskell. There were basically zero books on the topic at the time too and we didn't have internet in our dorm rooms. It was a mess.
- markus_zhang 5y agoI actually hold the opposite opinion: For an advanced class such as AI (I assume you at least need to work on Data Structures before that), students should be comfortable to learn whatever language and tools they need to succeed in a couple of weeks, and even less if needed. They should be able to grasp the basic in a few days and gradually improve their knowledge about the tools and languages along the way. After all I have never seen a univeristy course that assumes excellent grasp of a language. It is very sad that we need to take two entry level programming language classes in the first year. My university does not allow me to remove it as it's the pre-requisite of pretty much everything else. And I can't "prove" that I know Java, which I didn't but I'm confident that I can get the basics going in one day and the basic-medium stuffs in a week because I already know some C, C++ and Python. The only class that I think should teach programming languages should be a PL class. An introductive one usually teaches three or more languages in one shot with each an example of a paradigm. BTW the zero-credit courses sound like an excellent idea. Students do not get credits but still get education out of them. It's a great practice.
- sumtechguy 5y agoThe college I went to they would bundle these sorts of classes into other ones. For example my 'C' class was also a how to get around in unix class and it was 1 day a week. But they also had pre-reqs so you had to have the 3 other classes first before you could do that one. So they could assume a particular level of education. When you are on your 2nd or 3rd language sometimes you are not sure what is important in a new one. So sometimes it takes a bit longer to learn. Now having a few under my belt I have a good idea which bits to look at first in a language. If all you knew was java and it was 1-2 classes of it, then being dumped into lisp and picking it up in 2-3 weeks would be a challenge for many. Java as a language is actually tiny. So are most languages. Most of the pain is in the tools, build chains, and libraries that go along with them. Also sometimes what works very well in one lang is a pain in another. For example the dictionary in python has no real equivalent in C, unless you use some lib or write something yourself. In java you would need a map or hashmap class and knowing it exists sometimes is the biggest hurdle. But at least it is in the std library. So sometimes those sharp edges bite students as they are first starting with new langs and have decent exp in another language.
- gumby 5y ago> "This course is taught in LISP. We'll be spending one class on the peculiarities of our system, but otherwise you're on your own. If you don't learn it, you'll fail." SCIP (well loved on HN) was designed for as the introductory class for freshpersons who'd never seen a computer before (which was the default case when the course was designed). The first lecture was about how to program in lisp, using the example of symbolic differentiation. That one lecture was 100% of the introduction to computers and programming: the rest of the semester was spent on computer science.