I'm a computer science student in third year and I feel like I'm a bit lacking when it come to algorithm...

I'm a computer science student in third year and I feel like I'm a bit lacking when it come to algorithm. I code a lot but I don't have a really good mathematical background and I think I could put myself at a disadvantage.

I thougt it would be a good idea to buy a book. But I'm afraid that this "Introduction to Algorithms" is nothing more than a meme book that everybody advise but nobody read. I also feel like it may be too advanced for me to be comfortable while reading it.

Anyone have a better suggestion ?
I would also like hear about any programming book that deserve to be readed.

Other urls found in this thread:

ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/readings/MIT6_042JF10_notes.pdf
algs4.cs.princeton.edu/home/
posteriorscience.net/?p=206
dcc.fc.up.pt/~apt/aulas/DAA/1314/ApontamentosDAA.pdf
dcc.fc.up.pt/~acm/t1.pdf
en.wikipedia.org/wiki/Karatsuba_algorithm
cs.cmu.edu/~avrim/451f11/lectures/lect0906.pdf
cs.cmu.edu/~avrim/451f11/lectures/lect0908.pdf
twitter.com/SFWRedditGifs

You don't deserve it.
Do you even know what Big O Notation is?

...

I suppose it's the thing used to describe the complexity of an algorithm?

This is the end then? I can be classified as a pajeet?

>I can be classified as a pajeet
You already are, user. RIP better start looking for a new field quickly.

I haven't picked up an algorithms book since graduating a long ass time ago. Domain knowledge trumps CS knowledge in 99% of jobs. That said, you need CS knowledge to get past most recent grad jobs at big, desirable companies.

I've only heard good things about that book. I've also read mention of "the red book" with regards to algorithms from a Googler. Like, he was shocked that people would come in to interview without "skmming over the red book" first. Like, WTF? Never even heard of that book before. That was the day I realized that Google hires for culture rather than aptitude or suitability to the role.

there are at least 2 famous red algorithms books.

probably the Java/Princeton one.

that one is comprehensive but hard. get a different one with code examples and less pages.

>less pages
LOL

seems like that's what he wants, no?

No no, you're exactly right.

I worked with that book when I was student. It's a good one. Buy also the Dragon.

Hey OP, if you don't know discrete math I don't think it's a good idea to jump into algorithms.
If asymptotics, induction, and generating functions don't ring a bell you should look into something like this first.

ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/readings/MIT6_042JF10_notes.pdf

>asymptotics, induction, and generating functions

Those didn't mean anything when I studied algorithms in high school.

They meant little to me when I got a CS degree in college.

Honestly, I don't see what connection you're trying to make.

fun fact, MIT&friends switched to Python, nobody gives a shit about memeLisp anymore.

Coolest field in CS is formal semantics.

the connection he is trying to make is that you are a pjeet right now

CLRS is great as a reference book, but can be pretty dense if you're learning these concepts anew.

I'd recommend Algorithms by Sedgewick as a starter text: algs4.cs.princeton.edu/home/

It's still relevant as fuck dude.

Honestly if you can't get through this book in a few weeks then you are a brainlet and should just drop out.

CS is already filled to the brim with retards that should be in engineering who value "muh experience" over theory. Faggots who go "lol look at how smart I am, I can follow C++ tutorials on the internet. Give me a job, please!" should be exterminated. GET OUT OF MY ACADEMIC DISCIPLINE BRAINLETS REEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE

The dudes that wrote it said that's it's irrelevant since modern day software isn't written by the same principles...

You lie

>isn't written by the same principles
"Muh object orientation" is a shitty principle. Their principles are the ideal.

You dumb fuck look it up.

>Sussman saidthat in the 80s and 90s, engineers built complex systems by combiningsimpleand well-understood parts. The goal of SICP was to provide theabstraction language for reasoning aboutsuch systems.

>Today, this is no longer the case. [...]He said that programming today is“More like science. You grab this piece of library and you poke at it. You write programs that poke it and see what it does.

>And you say, ‘Can I tweak it to do the thing I want?'”. The“analysis-by-synthesis” view of SICP — where you builda larger system out of smaller, simple parts — became irrelevant.

posteriorscience.net/?p=206

Go on and get a language popular in the 80s, without OOP and write some accounting software. Now pick up C#/Java and write some accounting software. Let's see how it'll go.

Still lies

At this point, it's probably bait. You really are a loser.

What's the point of reading an algorithms book? You never had programming logic in college? Because that's the only way a book like that would be useful for you. Unless you didn't pay attention in class, I guess.
You just have to learn programming logic once, user.

Totally =)

ideal=/=actual software therefore it's masturbatory horse shit.

thats like not being able to grasp physics past newtons laws because all of a sudden things arent "ideal".

fag.

Wait, you are in 3rd year and you haven't read any books on algorithms yet?

Damn, I've been self-teaching for like 10 months now and I thought I was behind algorithms wise.

Totally kys.

This is absolutely homosexual, in the degenerate variety. Today's (((((engineers))))) are scum. Probably let into this country by Jews.

>hurr durr let's poke around and try to fit this thing where it doesnt belong instead of actually understanding the systems we're creating

LITERALLY assassinate yourself.

Right?

Some people are just doomed to fail, user.

Though, on the other hand, maybe not. Employers seem plenty willing to hire retards who don't know anything about their field.

there isn't any point unless you're going into academia or a really low level field (writing compilers).

If you're writing in high level languages, everything is optimized, and you have to seriously fuck up to write bad code. Understanding divide & conquer, greedy, and dynamic programming algs won't help you there.

Programming logic?

If someone asks you about convex hulls or heaps you dont apply random programming logic, instead you look up efficient basic algorithms that you can actually prove they're actually efficient along with their complexities for various inputs.

>he thinks engineering is easier than CS

kek. Whatever's written in these shitty books is already implemented in some library online. You would be better off improving your networking instead of reinventing the wheel for no good reason.

>Employers seem plenty willing to hire retards who don't know anything about their field.
SIGN ME THE FUCK UP

Maybe not easier than CS, but engineering is pretty brainlet-tier. Do you know how many engineers shit their pants over fucking Calc 2? Enough to tell you that engineering is exclusively for brainlets.

>lol, let's not bother trying to improve the lower-level stuff. It's already good enough, and there's definitely no need for people to maintain it :^)

look up princeton's algorithms 4th edition by sedgewick, it comes with lecture slides and example java programs you can use to visualize the algorithm.

Okay, you read the book, I go after the jobs.

Computational Mathematics
Boolean Algebra
Lambda Calculus
Linear Algebra

Keep telling yourself that while I make six figs out of college

Algorithms in a nutshell is pretty good too. They assume you already know about many concepts and really focus on the algorithms, but you can easily look it up on the side if something eludes you during the reading.

>I'm basing this off my opinions and anecdotal observations

>computer science student in third year
>bit lacking when it come to algorithm
>don't have a really good mathematical background

what sort of shit-tier Java code monkey university are you attending?

MIT

If you've actually worked with EEs you would know this is totally not the case. Even chemists and biologists can have jobs that require calc through diff eqs

It's not an opinion, fag. This is a FACT.

Here is the required mathematics courses for the engineering department at my school:
>Calculus I
>Calculus II
>Calculus III
>Differential Equations
>Linear Algebra
>Statistics

And all of these are dumbed-down "engineering" versions of the courses, because the engineering students would probably all lose their shit if they had to go through any actual challenge.

probably just gets by in his courses and does webdev side projects

Guy guys guys
Calc/2 Is just math, it does not specify to computers. Calc is just logic, reasoning, and problem solving. Stuff we do every day.

>listing only the weeder lower division courses

For maths all you neet to know is how to prove by induction, and if a sumation converges or diverges. Some basic integration maybe helpfull as well but not exactly needed. As for resources for algorithms this is what i had to know for the 1st half of the semester of my algorithms course of the 1st year of a masters:
dcc.fc.up.pt/~apt/aulas/DAA/1314/ApontamentosDAA.pdf
dcc.fc.up.pt/~acm/t1.pdf
en.wikipedia.org/wiki/Karatsuba_algorithm
cs.cmu.edu/~avrim/451f11/lectures/lect0906.pdf
cs.cmu.edu/~avrim/451f11/lectures/lect0908.pdf
Not sure if everything is in english.

Now post the CS math courses if you're so good

I can't. CS fags don't take mathematics courses, which is why it's so easy to get into. CS is probably the only field worse than engineering. I went into engineering, myself. It's a fucking garbage field, but at least I'll make money and not feel like a complete retard.

>CS fags don't take mathematics courses

LOL good one.
Wait till you actually start college and you realize how wrong you are.

>If you're writing in high level languages, everything is optimized, and you have to seriously fuck up to write bad code. Understanding divide & conquer, greedy, and dynamic programming algs won't help you there.
Unless you're doing something other than web-dev. Now you'll almost never have to implement something like a sorting algorithm or a depth first search, but it's very important to know how to apply these algorithms to new domains. And if you're talking about even more general things such as dynamic programming and divide and conquer, than you're really wrong. There's no dynamic programming library out there. And greedy is so basic there's no excuse not to know it. It's like saying that you don't need to know how for loops work.

Here are the mathematics requirements for a CS degree at Stanford.

>daily reminder that none of these are even close to being rigorous aka real mathematics courses
>daily reminder that "Mathematical Foundations of Computing" is just some dumbed-down logic and proof-writing course so that dumbass freshman who think they are super smart can comprehend
>daily reminder that most students will probably pick the easiest classes they can pick for their elective because mathematics is too hard for them
>daily reminder that Stanford is a top school. Most schools probably don't even require calculus because computer-tards are too stupid to pass calc

I take all of those in my CS program, along with Discrete mathematics. Calc 1-3 are covered in two semesters. My school isn't even a great school for CS.

I go to a bottom of the barrel school and cs still needs two calc classes

>asymptotics and graph theory have nothing to do with algorithms

Let me guess, you got a "CS" degree from whofuckingcares University that is ranked below 500 in the country.

I went to Carnegie Mellon, believe me they teach Asymptotics to CS majors. You can't even analyze an algorithm's run-time without asymptotics, retard.

>You can't even analyze an algorithm's run-time without asymptotics, retard
Just count the number of nested for loops, bro :^)

What math would you guys say is good for a CS degree. I'm going to go with:
>Calc 1-3
>Linear Algebra
>Probability & statistics course
>2 semesters worth of discrete mathematics

Speaking on topic about learning algorithms, why did tim roughgarden put all his coursera material behind a paywall?

I'm at a community college and I second that

This is worthy of a new "CS student" pic. I'll go make one

if you're too stupid to comprehend calculus, just drown yourself

>being this much in denial
Nigger, how high were you dropped? Thank God for filtering

That's funny because CS only exists for sperg who wash out of EE and CE because they can't handle the higher level math and physics/materials

Took a class with an Computer """""Engineer"""""""
He told me C was useless and he didn't plan on learning it since he could do everything in C++.

>engineering

>higher level math and physics

HOLY FUCKING KEK I ALMOST CHOKED ON THE DICK I WAS SUCKING

ENGINEERS

HIGHER LEVEL MATH

AND PHYSICS

IMPLYING YOUR CUTE LITTLE CALCULUS AND INTRO PHYSICS/THERMO COURSES ARE "HIGH LEVEL"

FUCKING KEK

>CS is probably the only field worse than engineering.
Okay fuckface, if CS and engineering are the worst fields, I bet you think humanities and liberal arts are the best fields?

Did you guys cover average case complexity in your Algorithms course? We only did worst case