1/13/2025 at 12:28:43 AM
I went to Caltech when they were contemplating similar things in the CS curriculum, although the normal curriculum was less radical than Northeastern's seems to be.There is a tension here that is being understated which is that people of every major now take the intro-level CS class because programming is integral to everything. Teaching algorithm design in that class is not particularly useful to a biologist who just wants to be able to cobble something together to analyze some data (usually in Python). As a result, the non-computer-scientists and non-software-engineers at the school would rather have a curriculum that is more "practical" and directly applies to research (or later class projects) the students might be doing.
Some time not far in the future, we are going to accept that this is not the same thing at all as computer science and give the computer scientists a curriculum that is a lot heavier on math and theory while adding elective or core courses for non-major students on programming. That will end the compromised state that intro CS courses currently sit in. Right now, there isn't enough teaching talent to run those non-core courses (because that talent is earning the big bucks doing something else).
by pclmulqdq
1/13/2025 at 12:57:26 AM
> There is a tension here that is being understated which is that people of every major now take the intro-level CS class because programming is integral to everything.Why doesn’t the CS department have a different intro class for CS majors and non-CS majors.
That’s a common practice in the mathematics, physics, etc. departments.
(To have harder intro classes for the students majoring in your department vs those who don’t.)
by tiffanyh
1/13/2025 at 5:21:11 AM
At least when I went to school, intro CS was a weed out course for getting into the CS department in the first place, along with calculus based physics that potential engineer and physic majors also had to take.I think these days it’s a bit different in that many schools allow high schoolers to apply directly to the CS department? But then it would be a matter of scale I guess, they usually have clinical professors run these classes because they demand full time attention.
by seanmcdirmid
1/13/2025 at 7:07:07 AM
Weed out courses do have various problems. Some of it is regulatory - certain public or public funded universities don't let you eliminate large portions of your cohort. Graduation rate is a part of many college rankings, so there's also an incentive to not fail.I don't think it's completely wrong. Failing a student after he or she sunk a ton of money into it is really not ideal. IMO it seems really easy to pass prospective students the first few chapters of your CS textbook/lectures then test them as a prerequisite for enrollment, before they enrol. This would be close to free, filter out a lot of would be dropouts and just save money and effort all around.
by InkCanon
1/13/2025 at 10:54:50 AM
Doing weed out courses on purpose I think is elitist and unnecessary, but computer science does require understanding of some hard topics. Linear algebra, theoretical computer science and the like may have very high failure rates, but are a necessary pre-requisite to become a computer scientist.by bakuninsbart
1/13/2025 at 12:17:56 PM
I wouldn’t say linear algebra is a necessity to being a computer scientist. At least, not the full linear algebra content. Knowing matrix math is enough.by morby
1/13/2025 at 6:04:59 PM
It's not completely necessary. But I will say, as someone who began their career as an 18 year old "self-taught developer" then completed a CS degree at 30, I found linear algebra to be the most useful bit of knowledge that was missing from my kit.by mywittyname
1/13/2025 at 6:13:54 PM
Two reasons:1. Back when I was in CS, the department was much smaller than it was today. This was after the 80s programmer crash, and so they just didn't have enough professors or resources to teach as many students as were interested in being CS majors.
2. You are able to teach to a higher standard if you've filtered the students that enter your department. You can have one or two people fail OS rather than half the class. At some point, it is reasonable to see if the students are committed, and they get to prove themselves a couple of years after high schools, which worked better for people like me who weren't very accomplished until they get to college.
by seanmcdirmid
1/13/2025 at 6:40:49 AM
They need to get rid of the concept of weed out courses. It's bad for learning. If you are paying 30-50K a year for an education, course availability should be a given. Don't use the bell curve as an excuse to deny students an education, or if you are going to use a threshold, use a fixed one, not one that limits by percentage of students. The fat cat admins and professors need to be fired. Too many schools take the students' money and plow it into research and other areas, with zero regard for undergraduate education. "You are in university now, it's sink or swim. Can't make it? Too bad." This attitude is especially prevalent in the state/public unis, especially places like Berkeley where demands exceeds supply. Your traditional private colleges like Dartmouth and Harvard don't have this problem.by sansnomme
1/13/2025 at 12:17:25 PM
Ideally people who can't handle the course should get filtered out before being accepted to the college, so they don't waste any money. But since it's impossible to filter reliable at that stage, surely it makes sense to also filter early on in the course. (from the perspective of the student. If the college wants to take more of their money they could still direct them to a different, easier/more suitable subject).by nmeofthestate
1/13/2025 at 6:21:27 PM
A lot of schools these days weed out at the application level: if you have a great portfolio from middle school through high school, great! You have it made.I sort of like the change to redeem yourself during the first two years of your university if you didn't have the ideal secondary school experience to get into a hot department of a hot university. CC can do that as well, I guess, but it is a much harder hill to climb.
by seanmcdirmid
1/13/2025 at 8:08:22 AM
Are there "math weed out courses"?by addcommitpush
1/13/2025 at 2:50:47 PM
My university had a proof based, let's construct the natural numbers from axioms and prove that a+b == b+a type course as the first class for aspiring math majors. It was a "weed out" course, not in the sense that it was particularly hard, but more in the sense of introducing students to this is what 'real' math is actually about, and not so much the stuff you were doing in high school. Some students decided each year that they didn't want to do 'real' math and went on to focus on other things.by dagw
1/13/2025 at 10:07:55 AM
Yep.At my university, after the usual calculus/diff eq/lin alg sequence everyone in STEM takes, we had “intro to advanced mathematics” that was proof based, taught in the spring, and a pre-req for everything higher level (abstract algebra, real analysis, etc). Most math programs have a similar “first proofs” class as their “weed out” class.
by zmgsabst
1/13/2025 at 2:23:45 PM
In that case the weed-out course is _after_ the calculus/diff eq/lin alg sequence then, not the intro math course.by addcommitpush
1/13/2025 at 6:15:31 PM
Math isn't popular enough to have weed out courses, and math professors of higher division classes don't mind failing half the class. There isn't much of a drawback to letting as many people who want to major in math.But intro STEM math is used as a weed out for other majors. You aren't going to get far in CS if you aren't able to ace your basic calculus classes.
by seanmcdirmid
1/13/2025 at 4:05:20 PM
Real analysis or other similar "proofs of basic things" classes usually fill this role.by pclmulqdq
1/13/2025 at 1:04:18 AM
At my university, they did, I don't think it's that uncommon.by klooney
1/13/2025 at 1:23:07 AM
Same here. The CS curriculum was theory-heavy (as it should be), and there were purely practical programming courses for the other faculties.by layer8
1/13/2025 at 6:38:45 AM
Right, there’s the longstanding joke about whether you’re taking real geology vs “rocks for jocks”.by SilasX
1/13/2025 at 5:04:48 AM
Costs. They don't want to have two courses teaching largely the same concepts when one will do. Short sighted, but that's how they roll.by chris_wot
1/13/2025 at 2:06:49 PM
This is how physics is now. You teach an intro physics class and you have a billion engineering students all telling you what they actually need to know to be an engineer. But the truth is, it is often impossible to anticipate what a person needs to know for their future. The future is not an easy thing to predict despite recent innovations in AI and machine learning. And a student's current motivation is not necessarily the most important thing to consider when thinking about what they should be currently learning. People often change majors, career paths, etc. This is why I would rather people learn about topics that are fundamental to various fields, such as algorithms or conservation of energy or whatever, than some topical thing.by mnky9800n
1/13/2025 at 1:04:39 AM
This exists already at Northeastern. They have a data science major and minor with a much more 'practical' intro sequence that teaches in Python. I actually TA'd for it, and many of the students were business or life sciences majors going for a data science minor. It even came with a 1-credit practicum geared towards specific domains, which students could choose from.by shmorkin
1/13/2025 at 2:04:47 PM
I live in California and I recently read an article from the perspective of Berkeley's CS department explaining why they don't take transfer credits from high schoolers who took AP CS or AP Stats -- they're just not "real" Computer Science, but rather applied programming.Even when I was an undergrad (1995-1999) and a grad student (2008-2011) everyone knew that CS was a research science [that happened to turn out people who lucratively employable skills], and not a software engineering program, which existed separately at both schools.
by eitally
1/13/2025 at 5:52:01 AM
That uses to be called CIS. When I was at Harvard they still took the algorithms class. Yeah, it was the ezmode version, but it still covered stuff like how to build a hash table and a trie.by User23
1/13/2025 at 1:48:36 PM
I went to UNC Chapel Hill, and this was already done back in 2005 there. CS major intro classes were numbered in the 400s (401, 402, etc) with a focus on data structures, basics of big-O (later refined in algorithms), etc.CS 101, 102, etc. were the “non-major” intro CS classes and exactly what you describe here. They didn’t count towards a CS major at all. Neither would non-calculus-based physics classes.
Note that, at least at UNC, in every other department I know of, 400-series classes were generally graduate level. But UNC CS operated a bit differently.
I loved the challenge and the knowledge I gained, but it’s worth noting that CS at UNC was much, much harder than nearly any other major there (Chemistry may be the one exception).
by pseudocomposer
1/13/2025 at 2:33:03 PM
Why can't they just take a class on shell scripting? The whole point of computer science is to automate things, because that's what gives you leverage. If you don't care about understanding computer science, at least skip to the point and enjoy the fruits. We've been using the UNIX shell for 50 years. It's not going anywhere.by jart
1/13/2025 at 3:59:37 PM
I majored in biology. A shell script would be a much more cumbersome tool for making a scatterplot, running a linear regression on a csv, etc.The things that people are using Python for are significantly easier with Python. There are libraries designed to make these tasks super simple, and with the right IDE you wouldn't ever have to touch the shell.
by antasvara
1/14/2025 at 3:20:44 AM
I put gnuplot code and python code in my shell scripts all the time.Someone like you should think of it as a jupyter notebook that doesn't need a web browser.
by jart
1/14/2025 at 5:25:32 PM
I'm someone that uses shell scripts in my day to day work (I don't work in biology any more, but did for a while).I'm saying that for the average scientist using these tools, a shell script is not an easier or more useful tool than Python plus libraries. Can you honestly say that shell scripts are more intuitive and easy to understand than Jupyter notebooks? Are they going to be more easy to transfer to other stakeholders?
This is one of those solutions that seems better in theory, but likely isn't in practice.
by antasvara
1/15/2025 at 5:35:40 AM
I can't think of a faster easier tool for composing and controlling a bunch of heterogeneous things. Even if you write a Python script that does it, you're still using shell to run it. Notebooks are good for experimenting and explaining, not for automating.by jart
1/14/2025 at 11:46:15 PM
Relational databases are going to be around for the next thousand years if you want something useful outside of tech.by LikesPwsh
1/14/2025 at 2:06:09 AM
This is how bad ideas keep propagating.by norir
1/13/2025 at 1:02:53 PM
In the 90's at MIT they solved the problem by having the civil engineering department teach a C coding class to the non-CS engineers.There was no pretense that it was even remotely appropriate as a CS class.
by ocschwar
1/13/2025 at 12:53:37 AM
"Practical python" is undoubtedly useful to a biologist, but I wouldnt understate the utility of an intro to algorithms for technical but non CS majors.'Algorithmic thinking' more or less doesn't exist in a lot of the classical disciplines with any degree of rigor, so a CS class is the only place a biologist is going to be exposed.
Specifically for utility, there is a very tight mapping between 'how do I search these strings' and 'how do I [most efficiently] design a set of experiments [searching for a a result]'. Both in the literal algorithms as well as the logical framework necessary to extend past trivial examples.
by thereisnospork
1/13/2025 at 12:49:26 AM
<specialty> for non-majors isn't radical."Stats for business"
"PE for physicists"
Why isn't "programming for sciences" not a thing?
by unethical_ban
1/13/2025 at 3:20:48 AM
"PE for physicists." Touche. ;-)Dating myself, my college had Pascal for CS majors, and FORTRAN for physicists. The FORTRAN class was math heavy, and we had a higher level course in process control as well, plus we all took the math class in numerical analysis.
When my daughter was in college, it was Java and Python. She took Java. I had suggested to her that she could easily keep up with the CS students, which she did.
I very much favor better training in programming for scientists. Taught by a scientist. The "intro to Matlab" that many students take is really too lightweight. Also, as for languages becoming obsolete, the disciplines that I learned in the 1980s are still of value today even if the languages have changed.
by analog31
1/13/2025 at 6:45:25 AM
>PE for physicistsYou meant juggling and fencing?
A more pragmatic answer is who’s going to teach it? Someone with weak skills in the discipline? Or someone with weak skills in computing? (This is a glib answer)
Finding people at the true intersection is surprisingly hard, and those people tend to be busy.
In grad school I took and advanced statistics course in the psych department. The concepts were new to me but not to the folks in the discipline. However the math (matrix multiplication) and basic coding were easy for me and very hard for them.
There was only one person in the department who could teach it, other faculty did that type of work entirely as “clients” which just ran tools and code from others.
by avs733
1/13/2025 at 6:21:50 PM
Who teaches the "<math specialty> for business" courses? IME, it was math professors.It's not unreasonable for the biology department to come up with the common programming use-cases for their students, then have the CS department build a course around those skills.
My minor was Bioinformatics. The biology department taught foundational course like biology and genetics and the CS department taught the courses on processing data.
by mywittyname
1/14/2025 at 4:54:30 PM
> Who teaches the "<math specialty> for business" courses? IME, it was math professors.IME its the same...I've also found that approach works less well at generating good learning. It (seemingly inherently) results in decontextualized knowledge and does not get students over the application gap, which is the exact problem that such things are trying to solve.
by avs733
1/13/2025 at 12:54:26 AM
It is. When I was in school we had a matlab class for grad students in other departments.I don’t know why you’d try to throw CS majors and Biology majors looking to cobble together scripts into the same class.
by sarchertech
1/14/2025 at 2:27:29 AM
When I was at UCLA in the mid-‘90s there were computer science courses taught through the school of engineering, mostly limited to SEAS students. So computer science, computer engineering, ee, me, and the like. I think the intro classes were taught in scheme.And then for everyone else the Math department of the school of Letters and Science had their PIC (program in computing I think?) series which had two or three courses in C++ and another course in Lisp. As a physics major I took the latter.
by scelerat
1/13/2025 at 3:33:20 PM
> Some time not far in the future, we are going to accept that this is not the same thing at all as computer science and give the computer scientists a curriculum that is a lot heavier on math and theory while adding elective or core courses for non-major students on programming.I graduated from an Engineering focused college in the late 1990's, and many departments offered exactly these types of courses in addition to the standard intro courses. They were typically named something [domain] [course #] for non-majors.
by fatnoah
1/13/2025 at 2:40:24 PM
See also Applied Mathematics vs Pure Mathematics.by HPsquared