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
Doom Mathematic
Sep 2, 2008

Hammerite posted:

Would you mind explaining what "[opinion] is a Very Normal thing to say at best" means without using this internet-cool-person register, because I have no loving idea

"Very Normal" is sarcasm, in this context it means "bad and inappropriate". See also "having a normal one" ("flipping out over something which is very strange to be flipping out over").

Adbot
ADBOT LOVES YOU

Master_Odin
Apr 15, 2010

My spear never misses its mark...

ladies

Simulated posted:

That may be true, but Chemistry and Calculus programs have labs where you learn at least a little bit about practical applications. Computer Science programs should be doing the same thing, with labs and maybe even a few SW engineering courses that teach folks how to use source control, the ins and outs of various languages, and so on. At the very least it might increase the quality of the code coming from academia.
A big problem here though being that a lot of CS professors have really only worked in academia for their whole careers, or maybe a smidgen of working in research labs at a company which can be similar in that you can get away with being bad at normal SW engineering things like source control, what is a linter and coding standards, etc.

Hammerite
Mar 9, 2007

And you don't remember what I said here, either, but it was pompous and stupid.
Jade Ear Joe

Phobeste posted:

Oh sorry thought the context of somebody calling for public violence against professors for not doing their jobs in the way this guy would personally like would be more self evident, my bad.

Given that one person expressed [opinion] in this forum and might be presumed to hold that opinion with some degree of sincerity - you seem to think they were sincere, or at least close enough to it that you found the remarks objectionable - it's feasible that others, such as you, sincerely hold that opinion too. As such, it's not "self evident" in the least what views you might hold with respect to his opinion. I don't think calling for violence against college professors on the basis of their personal failings is reasonable (although I suspect the poster who originally made the remarks intended them to be tongue-in-cheek), but how am I to know whether you approve of or abhor his opinion? I don't know you from Adam.

As it happens, I did suspect that your post was intended to indicate disapproval of his stated view. But I wasn't certain because of the extremely obtuse manner in which you expressed it. Hence my request for you to clarify. I know that it's en vogue in certain circles of the internet, including here, to express opinions in a very arch and obtuse way that assumes a great deal about what shared understanding the speaker and others share about the situation; but I personally find that to be objectionable when it leaks out into places (like this one) where more forthright communication might be expected. Keep it to Twitter, is what I'm really saying here.

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
nice meltdown

Phobeste
Apr 9, 2006

never, like, count out Touchdown Tom, man
My guy we're on a dead comedy forum you can lose the cut-rate William F. Buckley act

Hammerite
Mar 9, 2007

And you don't remember what I said here, either, but it was pompous and stupid.
Jade Ear Joe

Phobeste posted:

My guy we're on a dead comedy forum you can lose the cut-rate William F. Buckley act

I assure you it's not an act, I am genuinely this verbose and insufferable.

xtal
Jan 9, 2011

by Fluffdaddy

Munkeymon posted:

99.9% of the code people get paid to write, by volume.

There's a word for that!

iospace
Jan 19, 2038



Fixed that.

Also: Javascript, the "WE'RE NOT PHP!" of web languages.

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...

Dumb Lowtax posted:

The bulk of this thread showed up to their CS theory class hungover and now can only guess as to what was in it. Big-O analysis being the whole focus, lmao... maybe for the first week and then stop, because your second programming course should have already covered that enough and there's too much else.

Also remember that University classes differ wildly in quality. Most people are going to be talking about mid or lower tier programs. The types at state schools that only try to crank kids out into the local jobs market, where the theory classes are added in as an afterthought to keep their accreditation. I went to one of those for undergrad, took theory again at a better school, and surprise, my reservations about the worth of being good at CS Theory have changed once it was taught with care.

I'm glad that you enjoyed it. My problem is that mere programming jobs expect applicants to have CS degrees, but CS is taught as an offshoot of the math department. I've never had reason professionally to use the Analysis Of Algorithms class, nor the Statistics class, or even Calculus, etc. Linear Algebra was interesting but by the time I would have even had to think about it I was a decade out of college. About 1/4 of the CS courses were actually useful in my career, and they were all ones focused on actually coding something and print theory into practice, instead of doing math proofs. There's definitely jobs where these things are necessary to know, because it's actual computer science, and they should require a CS degree. The rest of them (99% of the industry) should ask for a software engineering degree, and universities should start pushing themselves to offer a track on that, that isn't staffed by professors who think that actually touching code is beneath them, and have done so more recently than the 80s.

Xarn
Jun 26, 2015
The only reason our students meet with git is that we make them use it as part of practical programming courses -- homeworks, semestral works and so on are submitted through faculty's gitlab pages.

We also give them some basics and try to point them towards good tutorials on the whys and hows, but 90% of the students end up pushing everything at once, without actually using version control. We also tried motivating them with providing proper CI environment... It did nothing :v:

Arsenic Lupin
Apr 12, 2012

This particularly rapid💨 unintelligible 😖patter💁 isn't generally heard🧏‍♂️, and if it is🤔, it doesn't matter💁.


Pentecoastal Elites posted:

I don’t have a cs degree but as far as I can tell from this thread the only useful things it would have taught me I learned in a weekend from that big-O complexity cheat sheet

Nonsense. Graph theory comes up over and over and over again.

Jeb Bush 2012
Apr 4, 2007

A mathematician, like a painter or poet, is a maker of patterns. If his patterns are more permanent than theirs, it is because they are made with ideas.
as someone who actually does CS theory I am not aware of any department that teaches CS "as an offshoot of the maths department"

Arsenic Lupin
Apr 12, 2012

This particularly rapid💨 unintelligible 😖patter💁 isn't generally heard🧏‍♂️, and if it is🤔, it doesn't matter💁.


Jeb Bush 2012 posted:

as someone who actually does CS theory I am not aware of any department that teaches CS "as an offshoot of the maths department"

My college did, but that was in 1981, when there wasn't a separate CS department.

Doc Hawkins
Jun 15, 2010

Dashing? But I'm not even moving!


Jeb Bush 2012 posted:

as someone who actually does CS theory I am not aware of any department that teaches CS "as an offshoot of the maths department"

Edinburgh? They call it Informatics, of course.

Jeb Bush 2012
Apr 4, 2007

A mathematician, like a painter or poet, is a maker of patterns. If his patterns are more permanent than theirs, it is because they are made with ideas.
to be clear I'm talking about how they actually teach the course, I know a lot of CS departments have their origins in maths departments. the edinburgh one seems unusually maths heavy but still not out of line with the maths content you see in a lot of hard science undergrad degrees

hyphz
Aug 5, 2003

Number 1 Nerd Tear Farmer 2022.

Keep it up, champ.

Also you're a skeleton warrior now. Kree.
Unlockable Ben
I managed to get a module covering debugging, lint, source control etc onto a CS programme. Like most programming things the students are almost completely polarised on it. And very few use version control beyond the minimum the module requires. Even when I just had a student fail their final project by uploading one of their early drafts instead of the final report. Enjoy extending by a year :(

Absurd Alhazred
Mar 27, 2010

by Athanatos

Master_Odin posted:

A big problem here though being that a lot of CS professors have really only worked in academia for their whole careers, or maybe a smidgen of working in research labs at a company which can be similar in that you can get away with being bad at normal SW engineering things like source control, what is a linter and coding standards, etc.

Our practical courses had practical homework, including writing code that had to pass automated testing. They provided a lab for CS students to do this homework in if they didn't have their own hardware. Is that not common?

VikingofRock
Aug 24, 2008




hyphz posted:

I managed to get a module covering debugging, lint, source control etc onto a CS programme. Like most programming things the students are almost completely polarised on it. And very few use version control beyond the minimum the module requires. Even when I just had a student fail their final project by uploading one of their early drafts instead of the final report. Enjoy extending by a year :(

I know that I don't know the whole situation here, but this comes across as "you clicked the wrong button and now I will take a year of your life and (presumably) thousands of dollars" which is pretty cruel. In my experience most professors would let the student re-submit the correct draft, and that seems like the only decent thing to do here IMO.

hyphz
Aug 5, 2003

Number 1 Nerd Tear Farmer 2022.

Keep it up, champ.

Also you're a skeleton warrior now. Kree.
Unlockable Ben

VikingofRock posted:

I know that I don't know the whole situation here, but this comes across as "you clicked the wrong button and now I will take a year of your life and (presumably) thousands of dollars" which is pretty cruel. In my experience most professors would let the student re-submit the correct draft, and that seems like the only decent thing to do here IMO.

I thought that. The project assessor thought that. The programme manager thought that. But the chair of the assessment committee said “no, there are no grounds for special treatment, why did you even bring this up?” There was some upset but not successfully. :(

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...

Absurd Alhazred posted:

Our practical courses had practical homework, including writing code that had to pass automated testing. They provided a lab for CS students to do this homework in if they didn't have their own hardware. Is that not common?

It is not. Computer labs will exist but for the entire student body. The CS department may or may not have specialist labs. The way to submit homework will be to zip up the source and mail it to them or submit the zip via web form. If you're lucky, they will provide unit tests for you.

Absurd Alhazred
Mar 27, 2010

by Athanatos

Volmarias posted:

It is not. Computer labs will exist but for the entire student body. The CS department may or may not have specialist labs. The way to submit homework will be to zip up the source and mail it to them or submit the zip via web form. If you're lucky, they will provide unit tests for you.

I mean, it was essentially a lab with some Windows and Linux machines you could log into and do your homework/waste time online in.

FlapYoJacks
Feb 12, 2009
I never got a CS degree, but every fresh CS graduate I have ever interviewed has been woefully unprepared for real world code bases.

What do you mean you won’t be writing quick sort algorithms and worrying about O notation for my entire career?!?

FlapYoJacks fucked around with this message at 17:34 on Jul 21, 2019

xtal
Jan 9, 2011

by Fluffdaddy
You should be thinking about those things your entire career if you're a good developer. Just because we have 32GB of RAM and more CPU than Apollo 11 doesn't mean you need to use all of it. That's how we ended up with garbage like Electron, and interactive programs that are slower than 30 years ago.

At this point the critique of computer scientists as knowing "the value of everything but the cost of nothing" is basically backwards.

xtal fucked around with this message at 17:40 on Jul 21, 2019

FlapYoJacks
Feb 12, 2009
It’s good to know of O notation yes, but quick sort algorithms? loving lol. There’s a million of them you can copy and paste.

Also for like, 99% of the methods you write, O notation won’t mean anything.

xtal
Jan 9, 2011

by Fluffdaddy

ratbert90 posted:

It’s good to know of O notation yes, but quick sort algorithms? loving lol. There’s a million of them you can copy and paste.

Also for like, 99% of the methods you write, O notation won’t mean anything.

I think I was complaining more about people who don't even think about it because the n is small enough not to matter in their perception. But even if the difference is small, that will still add up to something huge over time. It's important to understand and choose the appropriate structures and algos, even if the understanding you come to is "it doesn't matter." What most developers do these days is dismiss that understanding entirely because well it runs fine on my macbook.

Cool blog about this: https://accidentallyquadratic.tumblr.com/

Anyway, you should be considering the time and space complexity of every line of code you write, hth. You should never write accidentally-quadratic algorithms, never double over an iterable, and so on.

xtal fucked around with this message at 17:59 on Jul 21, 2019

FlapYoJacks
Feb 12, 2009
Lol my company was bought for $300,000,000 and our codebase is a giant poo poo heap made from the lowest junior engineers in India with no oversight.

And yet, $300,000,000. Good code doesn’t sell, it just makes it more maintainable.

Absurd Alhazred
Mar 27, 2010

by Athanatos

xtal posted:

Anyway, you should be considering the time and space complexity of every line of code you write, hth.
Sometimes that gets really counterintuitive to what you're taught in more abstract algorithm classes, however. O notation is asymptotic, which means strictly speaking, it only makes guarantees about the relation between different solutions as your problem gets larger and larger, but nothing about any particular finite problem space, or the specifics of a particular architecture. It doesn't capture that, say, the conditional and access pattern of binary search works against optimized processor behavior, so for values under a certain number of items, you're better off just using linear search.

Happy Thread
Jul 10, 2005

by Fluffdaddy
Plaster Town Cop
Again, some of you seem confused about the breadth of what is covered in a university.

Although it makes for a nice post-hoc justification for forgetting all your classes, your theory course did not in fact mostly cover quick sort and big O. That's what your second intro course is for.

If it wasn't like that, then your school probably ran into trouble with its accreditation because of failures to teach required undergrad topics, like my first school did.

What does it look like if a school does it right? Take a look at this schedule for a basic CS theory class. It's one of our teachers.

code:
Introduction: 1 lecture
        Logistics. What is an algorithm? Multiplication, Asymptotic analysis.
Divide and Conquer: 2 lectures
        Merge-sort, master theorem, Karatsuba multiplication, fast exponentiation.
Graph algorithms: 2 lectures
        Graphs and connectivity. Breadth-first search. Depth-first search. Finding cycles in graphs.
Greedy algorithms: 3 lectures
        Interval scheduling. Minimum spanning trees.
Dynamic programming: 3 lectures
        General framework. Sequence alignment, knapsack, LCS.
Randomization to gain speed: 3 lectures
        Randomized divide & conquer: quick-sort, quick-select. Dictionary data structure.
Intractability: 3 lectures
        P, NP, Reductions.
Big O took up all of one lecture. Sorting another one or two.

Notice that that only adds up to 17 lectures. That's a pretty short semester, right? Well, it's not even a semester at all -- a semester is 16 to 18 weeks. My school teaches all that in just one compressed 10 week period, a "quarter", where two lectures happened to be missed due to holidays and one more due to the midterm. They fit an entire extra quarter into the year due to this compression. The teachers still get all those topics in. That's how you know what goes in a Theory course.

Even when they're in a hurry, universities teach a whole lot of concepts that are widely useful depending on what you're programming.

Apparently most working programmers don't give them credit for it, either because they didn't go to such a program and are just guessing, or because it was so long ago they can't remember where they picked up those ideas. Or their program was one that did them a disservice.

It's noble to want to bring the university closer to the real world, but it sucks to see it argued poorly, so at least stop framing it as being a difference of just a tiny number of extra topics explored. It was not.

xtal
Jan 9, 2011

by Fluffdaddy

ratbert90 posted:

Lol my company was bought for $300,000,000 and our codebase is a giant poo poo heap made from the lowest junior engineers in India with no oversight.

And yet, $300,000,000. Good code doesn’t sell, it just makes it more maintainable.

If your focus is on what's good for a buyer instead of what's good for a user, then you're part of the problem. I don't deny that we have an incentive to write bad code, much like coal miners have an incentive to destroy the environment. It's definitely easier and faster and less expensive to write garbage code. But it's up to you to fight against that. Not just because it leads to a better user experience, but because writing bad code is self-sabotaging the entire industry.

This is probably why people say that programmers should have an ethics class.

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison

Dumb Lowtax posted:

Again, some of you seem confused about the breadth of what is covered in a university.

Although it makes for a nice post-hoc justification for forgetting all your classes, your theory course did not in fact mostly cover quick sort and big O. That's what your second intro course is for.

If it wasn't like that, then your school probably ran into trouble with its accreditation because of failures to teach required undergrad topics, like my first school did.

What does it look like if a school does it right? Take a look at this schedule for a basic CS theory class. It's one of our teachers.

code:
Introduction: 1 lecture
        Logistics. What is an algorithm? Multiplication, Asymptotic analysis.
Divide and Conquer: 2 lectures
        Merge-sort, master theorem, Karatsuba multiplication, fast exponentiation.
Graph algorithms: 2 lectures
        Graphs and connectivity. Breadth-first search. Depth-first search. Finding cycles in graphs.
Greedy algorithms: 3 lectures
        Interval scheduling. Minimum spanning trees.
Dynamic programming: 3 lectures
        General framework. Sequence alignment, knapsack, LCS.
Randomization to gain speed: 3 lectures
        Randomized divide & conquer: quick-sort, quick-select. Dictionary data structure.
Intractability: 3 lectures
        P, NP, Reductions.
Big O took up all of one lecture. Sorting another one or two.

Notice that that only adds up to 17 lectures. That's a pretty short semester, right? Well, it's not even a semester at all -- a semester is 16 to 18 weeks. My school teaches all that in just one compressed 10 week period, a "quarter", where two lectures happened to be missed due to holidays and one more due to the midterm. They fit an entire extra quarter into the year due to this compression. The teachers still get all those topics in. That's how you know what goes in a Theory course.

Even when they're in a hurry, universities teach a whole lot of concepts that are widely useful depending on what you're programming.

Apparently most working programmers don't give them credit for it, either because they didn't go to such a program and are just guessing, or because it was so long ago they can't remember where they picked up those ideas. Or their program was one that did them a disservice.

It's noble to want to bring the university closer to the real world, but it sucks to see it argued poorly, so at least stop framing it as being a difference of just a tiny number of extra topics explored. It was not.

stanford sucks lol

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison
weird that stanford teaches the exact thing that google hires for, weird coincidence!

Arsenic Lupin
Apr 12, 2012

This particularly rapid💨 unintelligible 😖patter💁 isn't generally heard🧏‍♂️, and if it is🤔, it doesn't matter💁.


ratbert90 posted:

It’s good to know of O notation yes, but quick sort algorithms? loving lol. There’s a million of them you can copy and paste.

Also for like, 99% of the methods you write, O notation won’t mean anything.

Anybody who's writing a quicksort outside the classroom in 2019 should be whapped upside the head. (A) use a library and (B) are you sure quicksort is the fastest solution to your particular problem?

Happy Thread
Jul 10, 2005

by Fluffdaddy
Plaster Town Cop

uncurable mlady posted:

stanford sucks lol

An embarrassing effort, get more schooling and try again

Happy Thread
Jul 10, 2005

by Fluffdaddy
Plaster Town Cop

xtal posted:

This is probably why people say that programmers should have an ethics class.

That puts it on the individual programmers instead of the execs who created the perverse incentives and unrealistic pressures

Like, the situation they just described is not some random underpaid dude in India's fault

xtal
Jan 9, 2011

by Fluffdaddy

Dumb Lowtax posted:

That puts it on the individual programmers instead of the execs who created the perverse incentives

Like, the situation they just described is not some random underpaid dude in India's fault

The execs didn't create those incentives, that's just capitalism. Until we get rid of that, it's up to the individuals. We all do have an individual responsibility in making sure that the things we produce for other people are optimal for them regardless of ourselves. Our wasteful computing practices right now are a huge problem for people on slow connections or using more-accessible interfaces.

I work on multiple complicated projects right now, and they can all be delivered to users in under 56kb, including assets, no JavaScript. That's because I thought of them from the beginning. It's not even particularly hard.

This is an accessibility concern, where accessibility is defined as either ability or locality.

xtal fucked around with this message at 18:35 on Jul 21, 2019

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison

Dumb Lowtax posted:

An embarrassing effort, get more schooling and try again

mfw you spend a quarter million dollars for a degree to go optimize ad clickthru rates at google

FlapYoJacks
Feb 12, 2009

xtal posted:

If your focus is on what's good for a buyer instead of what's good for a user, then you're part of the problem. I don't deny that we have an incentive to write bad code, much like coal miners have an incentive to destroy the environment. It's definitely easier and faster and less expensive to write garbage code. But it's up to you to fight against that. Not just because it leads to a better user experience, but because writing bad code is self-sabotaging the entire industry.

This is probably why people say that programmers should have an ethics class.

I agree with everything here, and I didn’t say that good code was bad. Just that good code doesn’t mean it will sell.

Jeb Bush 2012
Apr 4, 2007

A mathematician, like a painter or poet, is a maker of patterns. If his patterns are more permanent than theirs, it is because they are made with ideas.
the reason you learn about quicksort or whatever in an algos class is not so that you can go out and write a bunch of quicksort implementations, jeez

Arsenic Lupin
Apr 12, 2012

This particularly rapid💨 unintelligible 😖patter💁 isn't generally heard🧏‍♂️, and if it is🤔, it doesn't matter💁.


Jeb Bush 2012 posted:

the reason you learn about quicksort or whatever in an algos class is not so that you can go out and write a bunch of quicksort implementations, jeez
Man, I remember the fun of looking up an algorithm in Knuth and trying to translate the machine code to whatever language I was working in. :bahgawd:

I also remember the era when my husband took his subroutine library from job to job because who wants to write a string package and a thread package all over again.

Adbot
ADBOT LOVES YOU

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


University classes last for one semester at most. That means that there are some pretty hard limits on how large a project you can have attached to a single class, and that places some limits on what you can effectively teach. Yes, you can talk about version control, and testing, and object-oriented design, but those are all things that don't really show their value until you're working on a big piece of software. Those are things that you really can only learn on the job.

Theory probably isn't all that relevant to most jobs, but it is relevant for anything you want to do at scale, and the best jobs are moving in that direction. In addition, it might be the case that your job would be made easier by a piece of theory that you don't know. No one's going to be teaching basic science to their employees, so university really is the ideal place to cover that.

In short, you can't get a complete education from a single source. You need to learn some things in school, and you need to learn other things elsewhere.

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