I have to take this class in Data Structures and Algorithms, any helpful websites that could prepare me for this, I'm not the best at coding that's why I ask. Thanks Sup Forums
I have to take this class in Data Structures and Algorithms, any helpful websites that could prepare me for this...
Other urls found in this thread:
cs.cmu.edu
twitter.com
Get better at coding
Fucking this
The long way is the best shortcut.
I guess so
You should probably make sure you know the ins and outs of the syntax of whatever language you're using.
If you want to get ahead of the curve you should probably get to know big O notation if you don't already know it. Mostly common runtimes on stuff with arrays, linked lists, trees, and some sorts.
Once you actually start the class, Wikipedia is always a good source for common algorithms.
Data Structures and Algorithms is my next course. What does it consist of? The course description is incredibly vague.
Data Structures as in...what exactly? Apache? SQL?
Or is just another Java/C++ class?
>get better at coding
>data structures and algorithms
Disgusting.
Is this baby Data Structures and Algorithms where you learn trees, heaps, graph theory, dynamic programming, and balanced trees or is this algorithm analysis where you learn amortized analysis, good subspace, tractability, approximation, randomization, online problems, and brief introduction to code theory?
In either case, this is a math class, not a programming class. You should do more thinking than solving. Any problems that you need to solve don't require any more knowledge of the standard APIs of your language of choice than you've already learned.
To get good at the math aspect, you require familiarity with Calculus (Integration and derivation rules), log rules, basic algebra, and especially be familiar with proof by contradiction, induction, and construction, et al.
In exams you will likely be required to prove concepts and do math, like solving for Big O.
Course description:
Implementation and application of fundamental data
structures and computing algorithms used in computer
science, including searching and sorting; elementary
abstract data types including linked lists, stacks, queues,
trees and graphs. Particular emphasis is given to the
use of object-oriented design and data abstraction in
the creation and application of these data structures.
Some elementary algorithm analysis is also covered
...
Do you go to the same school as me? Where do you go to school at?
I know a lot of the basic things, but I guess this class goes more in depth. Don't know what to really expect
Well this just got interesting. You go to school in Nashville?
No, Florida. They literally use the exact same course description kek.
It sounds mostly like what I've done it my last 2 programming classes, so I'm just trying to figure out what specifically will be different and what language(s) we'll be using.
If the OP's CS course is ABET accredited, then the course should be almost exactly the same across the nation.
They require a certain number of credits/units be dedicated to a certain number of topics.
Again, this class is going to be calculations and proofs.
Your homework assignments will involve implementation of data structures (hash sets come to mind) and algorithms
I think we will use Java in this class, I am quite familiar with Java so hopefully it won't be that difficult.
Give me an example
I wish my school used Java, they teach us C++ instead. I prefer the Java language but prefer using Visual Studio.
What IDE/Dev environment are you using for Java?
Sounds interesting
I would recommend checking out Sedgewick's "Algorithms" book. It's what my course used, and the examples are in Java.
What program are you in OP?
For the longest time I was using Dr. Java, but I switch to IntelliJ. What do you use?
Ecliipse and I hate it. It was a nightmare to install.
I am IT with a concentration in Database Admin
Haha I remember trying to install that shit, it was awful. That is why I stuck with Dr. Java
Run through princeton's algorithms course on coursera, it's good preparation. The programming aspect will come secondary to actually understanding what you're supposed to be implementing. There are hundreds of examples of implementations for probably all the structures you'll cover in different languages, so you can use those as a reference for how to actually program them.
>give you an example
If f(x) and g(x) are differentiable at x and g(x) 6= 0, then the quotient rule of differentiation states that (f(x)/g(x))0 = f0(x)g(x)−f(x)g0(x) g2(x) . Use this rule to compute the derivative of (3x + 5)/(7x2 + x + 11. Simplify the numerator of your answer.
>another example
Suppose T is a tree with integer keys and has the property that, for each node n, n’s key value is less than that of its left child (if it exists), and greater than that of its right child (if it exists). Provide an example that shows that T is not necessarily a binary search tree.
If it wasn't clear, that first problem is about Big O, which is invariably the first few week or two.
I liked the Stanford algorithms class on Coursera. Princeton might be good too, Stanford seemed better to me at the time though. I just watched all the lectures over summer and I think it helped. They're not really that hard to watch.
dude I'm terrible at math. that sounds daunting
To be fair it's formatted wrong. I copy pasted from a PDF output by a LaTeX compiler and it was fucked.
Try now.
First prob. is like formulas you learn in the first semester of highschool calculus. Plug in a few functions, remember a few formulas, do some tedious algebra, and get the answer right if you didn't fuck up any of those steps. Absolutely nothing to do with CS.
You don't even install anything for eclipse. I downloaded it and was done
I'm in a Data Algorithms class right now, and it's boring. All the math is handwave-y shit, and not that interesting. My just be my professor, though.
I'm not a good programmer either, and I haven't had any problems so far.
Just look up any resource to learn the usual sorting algorithms: bubble, selection, quick, insert, binary, maybe radix. Don't get to hung up on how they're implemented and more about how they work conceptually. If you can write it in pseudocode, then you probably have a good understanding.
Proof by induction might be difficult if you haven't been exposed to infinite series or recursive expressions, but I'm sure you'll be able to pick it up in class fine. It's really no different from any other class, pay attention and study.
Calculus is inseparable from CS at higher levels.
But let's stick to the level OP is at.
What if he was solving Big O, and he ran into a problem like this?
At what basis would he understand something as simple as Gaussian Summation? Without Calculus he'd be one of those monkeys taking AP Physics AB that plug and chug formulas by memorization.
Speak for yourself. I know I'm not the only one with that problem because I found threads online with people having all sorts of bugs during install.
I honestly don't remember how to do any of that shit. I know how to write programs and software but I can't do math to save my life.
>I honestly don't remember how to do any of that shit.
Exactly if you don't remember the formulas (power rule) then it's literally impossible to solve, but if you do know them it's not that bad.
>tfw currently studying for shitty AP's
Although isn't the image you posted literally "25. Plug-and-chug a formula"?
It's inevitable that the calculation aspect of math is literally plugging and chugging a formula. At the levels of Calculus that engineers and CS majors need, that's essentially what it all boils down to.
The professor will make it easy enough for you to solve by telling you what you need to use (sometimes), other times he'll tell you to figure it out yourself.
I remember doing recursion, and infinite series. I haven't taken a programming class in two semester. So I guess I need to brush up on my concepts
And yeah I do not think I'm at that level just yet haha
>All the math is handwave-y shit
I guarantee you that it's just your professor.
Try to find one that teachers "Honors" courses.
If you get the right professor, he'll treat the entire track of Discrete Math, DS&A, and Algorithm Analysis as his own thing, and he'll teach concepts beyond the level of the course.
Things like "Showing mathematically the reason Quicksort is chosen over Mergesort", NP-Hard/Complete, CNF, Max-SAT, the Handshaking Theorem, and a bunch of other shit on top of what you're required to learn as designated by ABET.
Also, to save you from having to find a good professor on that first topic (Proving mathematically that Quicksort is better than Mergesort), here you go
cs.cmu.edu
tl;dr Randomized-Pivot Quicksort is (2n ln n) and Mergesort is something like 7n ln n.
I have some. The basic programming homeworks were lkke
>implement radix sort using the counting sort method
>implement a red black tree that uses bottom up recoloring
Homeworks were stuff like
>prove using induction that some loop invariant holds
>prove that for a bst, creating a new tree from the pre-order traversal of the original tree will result in the same tree
Tests questions were things like
>implement prims algorithm
>write iterative merge sort
>write an rotation that uses no more than 8 bytes of extra memory, swaps of values are not allowed.
I must be going to a shit school because I don't know how to do any of that
Yeah, if you went through that class without even going over any of that, then your school's probably garbage.
I mean, who can't teach radix sort?
That's unfortunate. The above should be mostly an introduction. We take it after about 6 classes. 2 intros, a class about cpu architecture and assembly, a unix/C class, a discrete math class, and an oop class.
Next year I'll be taking the upper division algorithms class, as well as the automata class.
It's not like I go to an amazing school. It's just a large state school that's heavily research based.
learn how to program in the language taught for that class before you even show up to take the class, when They warned me about knowing c++ before taking Data structures, boy was that not fun. learn how to use c++ don't do everything in main, learn how to reference and instantiate objects and learn how the pointers work and you should be fine, as for me 5 hours a day for two months I will be in that class fml. gotta graduate.
I haven't gone through that class yet but I still feel like with my other classes I should know what this post is talking about
If you haven't gone through the class, you should understand induction on things like integers and trees.
You should understand BSTs and their traversals too.
That's like intro class stuff for most CS programs.
Yeah, I go to a D1 school, they haven't gone over any of that.
How many classes have you taken? Which school is it? That's pretty odd, especially for a large school.
It's in Florida.
Related to my degree? Two programming classes (C then C++) and a binary circuit class. Data structures is next.
>I prefer the Java language but prefer using Visual Studio.
Sounds like you a case for C#.