So, I agree with this article in spirit. Lots of programmers could've benefitted from a more programming centric approach rather than a CS approach. However, this bit gave me pause. " I cannot tell the difference by watching them develop software." I can't disagree with this more. While this may be true of students who were middle of the road students in CS programs. I can't definitely tell the difference between peo…
Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"
111–120 of 205 posts
Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"
#112Earlier quoted context omitted.
I agree it's more of a mathematical discipline than a science. But it isn't just "studying man-made creations". It's about studying computation in general. Not just man-made machines that compute.
Complexity theory is based on the idea of a turning machine, a man made thing. Mind you, information theory, which is often considered computer science, certainly applies to nature itself. Of course, it would be easy to claim that information theory isn't actually computer science. Personally, I consider most of computer science more math than science. In fact, I sometimes tell people I do math! (This is a great way…
Saying that complexity theory studies "man-made things" is like saying that chemistry studies man-made molecules. It's technically true, but it confuses the methodology with the object of study: studying particular chemicals vs the underlying laws governing them or particular models vs the underlying laws of computation.
Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"
#113Earlier quoted context omitted.
It is hard to answer this because a lot of the trite answers are indeed false. A computer science student may be more able to tell you whether an algorithm is O(n^3) or O(2^n), but the normal (and experienced) programmer will be able to tell you either is "slow" and fix it just as quickly. But there is a style of thinking that can come out of a study of computer science that can be very difficult to obtain on your ow…
Try the following thought experiment: Person A spends four years getting a BS in CS at a top-tier school, learning about programming at least for a few hours a day on average, with the benefit of a well-considered curriculum and instruction by wizards. Person B spends four years working full-time on something interesting at Google, which probably gives her more total hands-on-keyboard time, and also access to some mi…
Real world might be different, but I don't think a CS degree should be teaching programming at least for a few hours a day. IMO that would be a total waste. There are bazillion of things to learn - database concepts, discrete maths, networks, ai&ml, digital electronics, some basic circuit theory, operating systems...There is programming involved in almost all of the courses, but the purpose isn't to learn about programming. When I am learning about MVCC, I am least concerned about learning programming, but the MVCC concept itself.
Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"
#114"It helps to know some music theory if you write and perform music, but a lot of very successful songwriters and performers get by very happily with just enough music theory." This is an absolutely bogus comparison. Music does not need to be maintained, music does not need to be troubleshooted or debugged (and thus, reasoned about), music does not solve a problem(1). Music is an artistic expression, while computer so…
"It helps to know some music theory if you write and perform music, but a lot of very successful songwriters and performers get by very happily with just enough music theory." This is an absolutely bogus comparison I disagree. There are very successful songwriters and performers who have no training, but almost all of the good songwriters and performers did have (usually classical) musical training. The same is absol…
Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"
#115Earlier quoted context omitted.
A CS person can easily learn programming This is not true, if you've ever seen academic code...
Academics are notorious for their code, but I suspect the parent was talking about people in industry with a CS background.
Code developed by actual academics is often terse, elegant and small; produced either due to a sudden flash of enthusiasm or because of a deeply held and significant urge to demonstrate a point. This kind of code is often at the core of what is known as "academic code".
The bulk of "academic code" is developed by a sequence of postgrads, pursuing individual goals and code is handed round with a mix of suspicion and over enthusiasm, and dropped and adopted according to the whims and short term needs of semi engaged investigators who are make do and mending with budgets and partners. So, by any sane standard it's bad.
On the other hand, it isn't meant to be adopted and used in the long term, and if you are looking at it at all it's because it does things that will be very expensive to replicate, and no one can afford to do a clean rebuild on. So - don't dismiss it if you can't afford to bin it.
Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"
#116Earlier quoted context omitted.
Academics are notorious for their code, but I suspect the parent was talking about people in industry with a CS background.
It would be like saying an Art History major could "easily" learn to paint. The skills just aren't transferable.
Not all comparison are good. I agree that playing music requires skills that you probably don't have if you only studied art history, but this is absolutely not true when it comes to CS and SE. CS and SE both have to do with abstraction, languages, logic, models ...
Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"
#117I agree with his main point, that we should have an entirely separate "software engineering" major which would stress the process of software development and prepare students for being professional software developers. Then, computer science programs would mainly be for students who wanted to do research in computer science - much like the difference between various engineering disciplines and physics. But he comes d…
Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"
#118at my cs pgm, the assistant professors were supposed to make a presentation on day 1 so the grad students could make an informed decision which prof to work with, which subjects to sign up for.
the software engg prof was a glib, entreprenurial hotshot who said "my students have been placed at netscape, sun, microsoft, oracle". he talked about industry partnerships, internships, 1000s of lines of production code, maintenance, unit tests, refactoring...
the db prof said "i have personally placed all my students in oracle". he talked about rdbms, schemas, superkeys, boyce codd normal forms, how "everything was ultimately data, so you'll never be jobless if you became a dba".
the algorithms prof was a shy lanky dude who went straight to the blackboard and wrote "computers are to computing what telescopes are to astronomy". at that point none of us knew who dijkstra was, so we just looked at each other like "huh?". he then turned to us and said "99% of cs is about searching and sorting. sort algorithms. search algorithms." then he drew a table which listed performance of quicksort, shellsort, heapsort, insertion sort, and two algorithms of his own invention. he talked about Big O notation, theorems, discrete math, taocp. our heads were spinning, and when he left there was a huge collective sigh of relief.
at the end, the student breakup was like 49-49-2. So only 2% of the class signed up for algos. Like most indians, I come from a poor household & my main concern was coin. So I signed up for Software engg. After 1 month, I dropped the course and went crawling back on my knees to the Algo prof, and begged him to take me on. That single decision changed my whole life. In that 1 month, I had found out something about myself - that I was a royal prick. I was personally not cut out to do scut work.I had zero interest and respect for maintenance, unit tests, requirements & specs, UML modelling, refactoring, waterfall method, agile, kanban...I found that whole discipline filled with unproven subjective airheaded garbage, essentially a fad. To this day when a recruiter mentions the word "unit tests" on the phone, I just hang up. Just pure instinctual reflex.
It takes all kinds...
Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"
#119Earlier quoted context omitted.
I'm curious. In what ways do they attack problems differently?
People talk about the types of programmers you company needs, things like: Starter finisher bug fixer architect In many ways I think these are the sorts of things that are influenced by your background. People with a CS background tend to be better at the architecting side of things in my experience. The self taught are better starters because they are super comfortable learning new languages and enjoy the thrill of…
That's been my experience as well, but I think it's mostly because of the three types, EE's are the only ones used to making schedules and sticking to them.
Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"
#120Earlier quoted context omitted.
Starting with your ad hominem, I think you took exactly the wrong things away from this article. Regardless of his writing style, his points are dead-on: 1. Computer science doesn't teach programming (with the corollary that computer scientists specifically don't want to teach programming). 2. Most people going into computer science want to learn programming. 3. Many people get fed up with the rigors of computer scie…
I agree with the sentiment that software engineering isn't computer science, but I disagree with the sentiment that software engineering is a discipline worthy of note on the same scale that we afford to, say, electrical engineering, civil engineering, or mechanical engineering. To date, software engineering is still largely a collection of (fairly subjective and contextually-sensitive) best practices. Software Engin…