[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y ] [Search | Free Show | Home]

Since CS programs aren't meant to prepare you for software

This is a blue board which means that it's for everybody (Safe For Work content only). If you see any adult content, please report it.

Thread replies: 65
Thread images: 2

File: haskell_logo1.png (30KB, 647x599px) Image search: [Google]
haskell_logo1.png
30KB, 647x599px
Since CS programs aren't meant to prepare you for software engineering positions, then why don't they just go apeshit and teach Haskell instead of Java/C++/Python as the first language?
>>
kill yourself shitlord
>>
>>57410192
They want money
They have a limit on how many students can take a class
If 90% of the class have to retake it since it's hard (haskell), they can't get new students in that class
>>
My CS program did start with Haskell
>>
>>57410217
We used C and Emacs for our introduction to programming course.
Pointers will definitely scare more people away than Haskell.
>>
>>57410309
hahahaha oh no
>>
>>57410321
It was actually pretty great. It scared all the "when do we make gaymes? xddd" people away.
>>
Mine uni does this.
>>
>>57410192
Dijkstra was right.
http://chrisdone.com/posts/dijkstra-haskell-java
>>
>>57410546
/thread
>>
>>57410192
>Haskell and lambda calculus class

Useless shit that will make me fail this year.
Why do they insist on teaching something that no one apart from some loonies will ever use in real world?
>>
>>57410346
Why? C is great for games
>>
>>57410677
Please read:
>>57410546
>>
>>57410704
Stop
>>
>>57410781
Looking at source of some game engines they tend to have their own implementation of allocators, containers and such.
And if they are going to implement everything themselves then the only thing c++ has over c anymore is oop. Which they could as well implement themselves.
>>
>>57410192
Mine used LISP as the first language.
>>
Mine did
>>
My "functional and object oriented programming concepts" class (the programming class every CS student has to take) used a LISP dialect and then moved on to Java.
>>
>>57410192
They do, over here

Sorry your university is shit
>>
>>57410192
in my college (3 year program)
We learnt:
html, css, javascript, node.js
php
c++
c#, asp.net
python
sql: mysql and microsoft sql server
java, java servlets, android
And design patterns

So what kind of shit tier school did you go to?
>>
>>57410941
One of our introductory courses started with Haskell and moved on to Prolog and CHR
The other taught assembly and C

Tip: If your university teaches pooinloo, switch universities
>>
>>57410217
>Tfw your country has free college with no entry exam
>90% of students fail algebra / calculus
I don't think I've seen anyone ever struggle with CS classes. Even the class that was in logic gates and assembler was very easy compared to the math ones.
>>
>>57410991
i am this douche
>>57410975

No math whatsoever
My college said that teaching math is borderline useless, if you need it, learn it yourself.
>>
>>57410192
Java, Python, C#, and C are what my Computer Science program taught on Linux, Windows, OS X, and Mobile platform of choice when taking the mobile app dev unit.

Web and database classes covered JavaScript, PHP and MySQL... HTML and CSS if you want to add those to the list, but presentation languages don't really count as programming langs do that? I mean I wouldn't typically include XML would I and HTML is just about an XML derivative parsed through a browser.
>>
>>57411012
I'm afraid to tell you that your college sounds pretty shit if that's the case.
Furthermore, learning new languages is trivial to anyone who is sufficiently educated, your list could be replaced by "structured+oop languages and sql"
>>
>>57411078
I am in the third year now, and most of us have realized that.
>>
>>57410546
>Haskell, though not perfect, is of a quality that is several orders of magnitude higher than Java, which is a mess (and needed an extensive advertizing campaign and aggressive salesmanship for its commercial acceptance).

Topkek, haslel is not even commercially accepted anywhere.
>>
>>57411233
Missing the point, aren't we?
Also: https://github.com/commercialhaskell/commercialhaskell
>>
>>57411262
>use strawman argument to dismiss Java's widespread pooinloo use
>B-but muh arguments are not the point
>>
>>57410192
Standard ML is the first programming language at my university.
>>
>>57410704
The "when are we gonna make games? xddd" types aren't very patient.
And either way they would never get a chance to make a game as we don't make games for semester projects.
We use half of our time on semester projects, where we make whatever we want, and then we have 3 supplementary courses for that project.

But we have to analyze a problem and then show we can solve it with software. It's hard to show what a game could solve unless it's for educational purposes.
>>
>>57410192

A couple of reasons:

1. Haskell uses a higher abstraction level from the machine code than C,C++ or even Java. By getting in to the details of C-family languages you get a good historical perspective on programming and a solid foundation. So one C-family language is mandatory.

2. Python is arguably much simpler in terms of getting your FizzBuzz-level programms up and running. You can therefore focus on concepts and give beginners a cozy feeling instead of a lot of frustration. Ususally there's a lot of people quitting in the first year because you have to learn abstraction, code design and syntax at the same time. By makng a lower entry barrier you can focus on some parts earlier and add something more "sophisticated" like C++ later.

3. Functional langaues aren't that common. And even if youwould teach them, why not OCaml, Erlang or Elixir first? They are much simpler than Haskell. (I'm not saying "better", just "simpler"..)

4. Programming beginners have usually zero mathematical knowledge. So where's the point starting with Haskell when you are not mathematically skilled yet?
>>
>>57412205
Python is a good beginner language. From my experience Java and C# are too complex to newbies as they have to understand not only the types but also the modifiers.
>>
>>57412238

Absolutely!

I learned Java as first progarmming language and I really hated it. Then we learned C, some C++ basics, SQL and HTML.

Later, much later I discovered Python and Ruby and found out that programming can be so much fun. I which they would haven given me a scripting langauge in the beginning, when I was still young and full of dreams.. ;_;
>>
>>57411233
>t. pajeet
>>
>>57412302
I'm the same guy who posted >>57410309
I thought it was great to have that as introduction to programming but I had already done Python and C programming before so I wasn't scared away.
However it wasn't until we had a computer architecture course in second semester that I felt like I *understood* C.
>>
>>57411284
Did you read any of what Djikstra said? Industry acceptance isnt the fucking point of an intro to CS class, you arent joining the industry after your first semester... and besides, the amount of features languages are borrowing from haskell proves it is not useless at all.
>>
because they *are* made to prepare people for real-world applications.
I know, in principle, CS is not about software engineering but about theory. In practice, universities are all about churning out potential wageslaves. And indeed, 90% of the students that go in do it to get a certificate just to get a position
>>
>>57412326

Learning C is not that hard, but to write good C code is hard. There are so many hidden goodies.
>>
>>57411012
>>>57410991
>i am this douche
>>>57410975
>No math whatsoever
>My college said that teaching math is borderline useless, if you need it, learn it yourself.
Things that didn't happen. Fucking kids get off my board, 4chan is 18+
>>
>>57411929
Haskell is the C++ of functional programming (in that its a fucking monstrosity). SML is a better first functional language.
>>
>>57410309
>Pointers will definitely scare more people away than Haskell.
Nah.
>>
>>57414761
I see this meme repeated, but please actually explain why you think so.
>>
>>57410991
Same here in Germany. First semester has Haskell, Java and Prolog and people fail algebra.
>>
>>57410309
>What are monads
>>
>>57414877
People only fail because our schools are shit at teaching math.
They get thrown in a completely different world where so much is expected from them.
With programming uni-courses start really fucking slow because they don't expect you to have ever programmed.
But with math they expect a shitton of you which you may have never actually properly learned in your school.
>>
>>57414905
You don't need to teach about monads except how to do IO.
Monads aren't needed in Haskell, while pointers are definitely needed in C.
>>
why do they even teach you a programming language in the first place?

i didn't do cs at uni but from my understanding it's just a specialised field of pure mathematics. programming can be learnt in spare time
>>
>>57415037
Wat? Programming is the antithesis of pure mathematics, it's extremely applied, to the point that it's not really math anymore. Technologies crop up and are accepted based on marketing or how much programmers like them, rather than mathematical truth.
>>
Anyway you're right CS is pure mathematics. Just, the truth is that undergraduate CS isn't actually CS. They're programming with some CS mixed in insofar as it makes the students better programmers.
>>
>>57415086
'programming' isnt even mathematics

i'm not talking about that
>>
>>57415086
He said that CS is a specialized field of pure mathematics. So they shouldn't learn programming.
>>
Because functional programming is fucking useless outside of simple stuff like map/filter/reduce. The circlejerk with the haskell type system, monads, and muh purity is completely pointless in the real world where you can write imperative code much faster.
>>
>>57414820
He's probably talking about extensions. There are tons of different extensions for Haskell and some people overuse them, some libraries require a lot of them, some of them are useless or weird, some of them are essential.
I agree that SML is a much simpler language than Haskell, however you don't need to learn all of Haskell to learn the important things that they'd teach you in an introductory course, so I think you're well off either way.

The thing about C++ that makes me despise it being taught to beginners, is that C++ is essentially an absurdly complicated language that just hides all of its inner workings and puts camouflage over its syntax to pretend that it's just like C.
For instance the following innocuous beginner's C++ program
using namespace std;
// 1
int main (int argc, char** argv) {
// 2
string pass = "foobar";
string guess;
// 3
cout << "enter the password:";
cout.flush();
// 4
cin >> guess;
// 5
if (guess == pass)
cout << "access granted!";
else
cout << "try again.";
// 6
return 0;
}


1) "int argc, char** argv" leftover garbage from C, explaining this requires explaining pointers and C's shitty array semantics
2) "foobar" is actually a C string passed to std::string's implicit constructor, where it (probably) get's allocated on the heap
3) The strange 'cout' object has an overloaded "shift left" operation which apparently means print stuff out.
4) We're actually passing 'guess' in as a *reference*, which has something to do with the fact that C++ is only PRETENDING to be backwards compatible with C
5) This part of the program makes the most sense so far, but watch out, don't try this in Java! ;)
6) We're returning 0 here but we're also implicitly cleaning up our two string objects which (probably) frees them from the heap.
>>
>>57415186
This. It's no coincidence that most real world haskell programs are simple input-work-output things without much interaction, like compilers, converters, checkers and servers.
>>
>>57410192
Functional programming languages fucking own, but they're not that much harder than other languages. I'm in a class where we use Racket and it's relatively easy to pick up. I would say that treating all of your data as immutable actually eliminates some hard, early hurdles that say C or Java have.
>>
>>57411233
That's the beauty of it
>>
>>57415186
>>57415280
>"the only useful programs are programs that make big buttons appear on the screen"
>"I literally no nothing about FP languages and function style programming, and the advantages they provide"
>"I just write shitty front end gooey's for my wage slave job"
>>
>>57415317
It just happens to be that everything that isn't useless (like theorem provers) or ubiquitous (like web servers) requires user interaction, anon.
>>
File: logo_wordmark-vertical-800x645.png (61KB, 800x645px) Image search: [Google]
logo_wordmark-vertical-800x645.png
61KB, 800x645px
>>57410192
I need to finish the Functional section of HakerRank by the the month in HASKELL any advice on how fucked up am i?
>>
>>57415352
Every consumer desktop application you mean.
There is so much more in a variety of fields that you simply don't know about.
Furthermore I dislike that you are talking about things that you don't know much about.
Modern "user-interaction.frameworks" like react or elm for example are functional in nature, and build upon things that were invented for use with functional languages originally.
This is a trend that has been on the rise steadily, and will continue to grow, since the functional design choices seem to work.
Nothing prohibits you from writing an interactive environment in haskell.
And not only that, but some design choices make things like concurrency (which is needed for interactive systems) really fucking stellar.
The only barrier we have to cross with functional languages is soft/hard-real-time.
If we can reach that, functional languages will be superior in every regard.
>>
>>57410192
My current department starts with OCaml.
>>
>>57414997
I'm a Haskeller but you're talking out of your ass lol. Monads are needed for anything useful, same as pointers in C.
>>
>>57415709
I'm not the guy you're talking to but good points anon. I'm more on the "Haskell isn't practical in the real world" side but I've always been interested in learning it
>>
>>57414905
Monads aren't hard to understand, they just have a "scary"/academic-sounding name. Pointers have a simple name, a simple underlying concept, but are harder to work with safely and carefully because of how it requires you to work with the memory model in your head. Monads have a bad name, a simple underlying concept, are much easier to work with safely and carefully. They just allow you to describe, bind, and order procedures.
Thread posts: 65
Thread images: 2


[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y] [Search | Top | Home]

I'm aware that Imgur.com will stop allowing adult images since 15th of May. I'm taking actions to backup as much data as possible.
Read more on this topic here - https://archived.moe/talk/thread/1694/


If you need a post removed click on it's [Report] button and follow the instruction.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com.
If you like this website please support us by donating with Bitcoins at 16mKtbZiwW52BLkibtCr8jUg2KVUMTxVQ5
All trademarks and copyrights on this page are owned by their respective parties.
Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
This is a 4chan archive - all of the content originated from that site.
This means that RandomArchive shows their content, archived.
If you need information for a Poster - contact them.