Data Structures and Algorithms

How important is this class in all honesty to a CS major?

I took it with a godawful professor that did nothing the entire semester. The class was such a joke I found the answers to every possible quiz and test questions online in mere seconds. The class will be over on Monday and I haven't learned a single thing.

Debating whether or not I should retake this class over the summer or just keep plowing through?

Actually pretty neat.
But you will have to look up or use a API for a lot of the things if you need them like B-trees or dijkstra algorithm or Big O notation(only really interesting in recursive programms).
But its still pretty nice to know how it works beforehand.

To be honest just grab a book, maybe even for advanced stuff, if the class at your university is shit.

That sucks dude. I'm taking it next year and I've heard it's the weed-out class. I'd say you should talk to your adviser if they're not total shit and get their opinion.

Did you get one of those shit professors who don't have you actually implement all those algorithms and datastructures? Because I had one of those when I took the class, it was dogshit.
Implementing them yourself may be something you almost never do (because standard libraries exist), but it's still a good introduction on how to arrange and manipulate stuff in memory.
Do what said and grab a book or ten on algorithms that sound cool. My favorite book for "bored now" is Parallel and Distributed Computation: Numerical Methods.

I think I learn best through lecture when we do programs together and the professor explains what we are doing like hey guys this right here is how you wold program something dealing with inheritance or whatever. I'll make sure to read over the first part of summer since the class I can retake is in July.

I've heard that too. Good Luck. I'll probably talk to my adviser tomorrow since she's really nice.

>Did you get one of those shit professors who don't have you actually implement all those algorithms and datastructures?
Had a professor who didn't do a single fucking thing. She put powerpoints online and said we'd have quizzes and tests over them and that was it. Meanwhile she browsed the web for the entire class EVERY single time we had class.

I know CS is a lot of self learning but that was fucking ridiculous.

That seriously sounds like some "talk to the CS department head" level of dogshit. Figure out if that's actually what the structure of the class was supposed to be.
In the meantime, though, there are piles of resources for learning about. One book I like for the "standard set" of shit you should know is "The Algorithm Design Manual", which is a pretty solid book. The author's pretty good about motivating the need for each distinct algorithm or data structure, which helps keep up the motivation for learning them.

>How important is this class in all honesty to a CS major?
That is pretty much the most important course mate

You're going to have a lot of fun during your interviews when they start off with the "gimme" questions of "
1 how fast is binary search compared to linear search"
2 and "what is the the runtime of a quick sort of a program consisting outside of a nested for loop
3 and please implement a basic flood algorithm

You know why you will fail those? Because you're a fucking retard who looks up answers instead of getting an intuitive idea of how they work

Fuck you, enjoy being in help desk

Fuuuug that's what I'm scared of. It'll come back to bite me in the ass next year or later on

If you are serious about a future in programming, or anything even close, this class is essential. I work with people who just write code that werks, and then an enquiry comes in regarding speed and I look at all this inefficient shit they're pulling

Bruh, it's pretty much the only class a software developer needs. The skills you learn in that class what interviewers will test you on. Just go on HackerRank and complete 50 problems. You should be fine afterwards.

The thing with A&D is that you simply cant show/explain code for everything in one single class because
a) most people at this point barely know how to code(at least this was the case at my university)
b)Most stuff end up being pretty voluminous when being implemented, e.g. showing and explaining the implementation of each balanced tree there is alone would take weeks
c)There is simply too much so you can just scratch on the surface

The whole point of A&D is just showing you how some algorithms work on a very basic and abstract level, so having something at hand, hell even the internet and api documentations can do the job, which you use to look up the implementation for everything that seems interesting to you or to search for more material, is vital.
That is if you actually want to learn something and not just go the fastest path to get your degree and become a code monkey for basic programming work, something saddly most of the people who do CS seem to prefer.

For a 4-year program, when should this class pop up?

Second or third semester

I personally took it the first year, because there was nothing else interesting i could take and i already knew how to programm.

In general its usually recommended to take it after you get some programming experience, which is usually somewhere between 2nd and 4th semester(if you suck at coding).

>I found the answers to every possible quiz and test questions online in mere seconds.

Probably because it's a popular course.

How mathematically rigourous was your class?

This. In terms of importance I'd say the most important courses for CS are:
Algorithms
Graph Theory

3rd semester usually. We got a non-rigourous version in 2nd semester, then one with math prereqs (discrete math prereq) in 3rd semester that was like half-proofs with little coding. Was one of the most useful courses I've done.

Shouldn't it depend more on your mathematical background and whether you've been exposed to rigorous mathematical proofs, rather than just coding? Knowing graph theory and induction at the bare minimum is pretty important if your class isn't a joke.

Hands down the most important thing you learn in CS. It doesn't seem like it at the time but it is. Datastructures are like legos, and Algorithms like are well known recipes using the legos you follow to build stuff and make things happen.

Pretty damn important. It's the only class I kept the notes from and frequently rely on for data manipulations.

>be me
>cs grad math minor
>can't even implement singular linked list without help

Fucking just end me, how am I this retarded?

dude im 16 and ive made my own programming language step up ur game
/arrogance

Did any of you take this class at SJSU?

just fkin learn it lol. It will take you 2 hours to learn how to implement it. You can learn all of the basic data structure implementations in a week. Just memorize them.

It's only useful for interviews. Every fucking job interview asks these obscure shits after you've taken the class about it on 2nd semester and you'll forget most of it by the time you graduate

This, I wasn't even a CS major but could get software dev offers by regurgitating shit I learned from taking a data structures class.

I feel bad, son. My data structures class has been really helpful and taught me a lot. I can implement all the data structures in the usual meaningful ways. Queues in dijkstras algo, stacks for compilers and polish notation, trees for huffman encoding, 2/3, 2/3/4, b trees, red black trees, hash tables (building something like pythons dictionary implementation). Favorite class so far, you def got robbed user.

I mean, at that point I might as well look it up. Memorization!=learning.

All I did was memorize, now I have weak problem solving skills.

Don't waste more money or time doing it again with the uni. Just study it yourself. Anything you want to learn you can learn from a book or the Internet.

> did nothing the entire semester
> looks online for answers instead of doing it yourself
Try something new for once user.

recommend some book senpai