Data Structures and Algorithm Analysis

In summary: On the other hand, it does have a table of contents and an index, so I was able to locate the solutions to the problems. I'm going to purchase the text, and I'll report back on my thoughts once I've had a chance to read and study it.In summary, the textbook is extremely disappointing, and the practice problems do not have answers. Schaum's Outline of Data Structures does have a table of contents and an index, so it is possible to find the solutions to the problems.
  • #1
hotcommodity
436
0
Has anyone here taken this class before? I've been in this class for two weeks, and I still can't get a feel for how difficult or time consuming it may be. My instructor keeps mentioning discrete mathematics (which I haven't taken), although it wasn't a prerequisite for the course. Additionally, I've only had one semester of programming. Does anybody have any insight as to what I can expect from this course? How important is it to have a background in discrete mathematics?
 
Physics news on Phys.org
  • #2
I'm currently in a class similar to that, named Data structures and Algorithms and YOU MUST have Discrete math. I don't see how it isn't a pre-requisite.

You are going to have to prove a lot of things using strong induction and that is what you learn in discrete math.

You don't really have to know much programming, its mainly about analysis of things, but you should understand basic concepts like recursion and how to write psuedeo code.

I heard this is one of the most difficult computer science courses at my university anyways. Averages around 40-50% on exams which is higher than my discrete math course, the class average for my discrete math class was 25-30%, it was horrible. It was mainly the professors fault, people who didn't have that professor did much better the previous semester.
 
Last edited:
  • #3
Yikes. Well I'll double check the prerequisites. It would be somewhat of a relief to know that I'm not following the material for a good reason. Thanks for the reply.
 
  • #4
Yah it sounds like your def. not ready for that class.
Its a 400 level class at my university, you take this as an entry point to all your other core courses like Operating Systems, programming languages, Graphics, AI, etc. Even though I'm taking AI concurrently with Data & Algorithms.

You should have at least went though intro and intermediate programming, and discrete math before that class.

Hell I took all those classes and I still am currently lost in that class, its more like a math class than anything else blah!
 
  • #5
Yeah I hear ya. About 90% lectures have been about mathematics, and the rest is simply psuedeo code (as you mentioned). It's a 200 level course at my university, but I feel like the only one in the class not getting the material, which is always an uncomfortable feeling. I didn't take any intermediate programming however, just one course in Java, and that's it. It'd probably be better to hold off on the class until I get some more experience under my belt. Right now that seems better than sweating the material for the entire semester! I appreciate the insight :)
 
  • #6
I'm taking it now and I haven't taken discrete mathematics. It's time consuming, but not too hard.
 
  • #7
don't worry too much about discrete maths - i had a great book for it that steps you through proofs and what was amazing was - for every single problem in the book - there was an accompanying solution - IN THE BOOK!

lemme look through amazon and i'll give you the full name. Its a tiny book with a running mans outline - the titles lsomething like proofs explained or along those lines. Lemme look for it and i'll edit the post.

Also check out a schaums outlines book for it as well.

Don't be afraid of discrete maths - I'm not that stellar at math and I loved the course.
 
  • #8
If your scheduled to take that class you should take it.

If you are signed up for a 400 level data structures class like mine is, then I would recommend against it.

But like fizziks says, he's taking it without having taken discrete math. Some universities have it at 200 level or 300 level so it doesn't require as much knowledge.

Talk to your professor before you do anything drastic so he knows where your at and you can find out as well.
 
  • #9
@ Ian Brooks

I'd appreciate that title, I'm not sure if I'm going to have to reschedule this class or not though.

@ mr_coffee

I e-mailed my professor just a little bit ago. We'll see what comes of it. I appreciate the input from everyone :)
 
Last edited:
  • #10
So I decided to stay in my Data Structures class, but it's still pretty complicated. I've done the required reading from my textbook, and let me say, my textbook is extremely disappointing. Each chapter discusses concept after concept like a run-on sentence, and to make it worse, all of the practice examples are grouped together at the end of the chapter. And even worse, there are no answers to ANY of the examples in the book, making it impossible to practice any concept! All of the textbooks that I own have SOME selected answers to examples. It's rather frustrating. So I set out in search for a supplemental text, and I came across Schaum's Outline of Data Structures with Java, Second Edition. I looked for this text as an ebook, as I don't really have immediate access to local book stores, and our school library does not carry it. I thought I found it as an ebook twice, and the download took me to porn each time :grumpy: So, I was wondering if anyone knows how to find this text, or a similar text in the form of an ebook. Any help would be greatly appreciated.
 
  • #11
Sorry for getting back to you so late,

I found out that the book is by our university press - its by one of our professors - so let me look for a better / similar book at our library when I head back from work.

I read a couple of the above posts and saw all this 200/400 lvl courses - didn't make much sense

Discrete math is a first year - first semester course in Australia, Data structures is done in 2nd year - Compulsory for Computer Engineering and COmputer Science, optional for EE's.

I wouldn't worry so much - try doing some reading in other books on the material that you find challegning and you should be fine. If you have problems try posting it up here or ask your professor, that's what you're paying him for.
 
  • #12
@hotcommodity: Try CLR, it's one of the best books on data structures and algorithms. You can say it's a classic in every computer science program. The name CLR comes from the authors Cormen, Leiserson, Rivest and Stein (Stein didn't co-write the first edition so that's why people say CLR instead of CLRS). The complete title is "Introduction to Algorithms". It's really good, I can assure you.
Hope it helps.
 
  • #13
Thanks, I appreciate the feedback :)
 
  • #14
I'm a 4th year cs major at one of the calstates. I recently took a 300 level class called data structures and algorithms. This class I would have to say was one of my top 5 toughest classes, automata theory ranking about the same. All I can tell you man is just try to do what you can do. Everyone constantly failed all the tests this professor gave. I failed my 1st midterm, passed the 2nd midterm, and failed my final and still ended up getting a B- in the class. So imagine. lol. Just understand the strong concepts of this class for future purposes, such as Big-O notation, recurrence relations, and loop invariants. OMG loop invariants were a *****. Discrete math for me was a piece of pie, but this class needed time and effort. There were nerds in my class who did worse than me on the test, and I'm a pretty good looking guy. You catch my drift? At the end always remember, if I had the choice of giving up or failing, I would fail. At least I know I did something and my confidence doesn't get shattered.
 

1. What are data structures?

Data structures are ways of organizing and storing data in a computer so that it can be accessed and modified efficiently. They are essential in computer programming and are used to manage large amounts of data.

2. What is algorithm analysis?

Algorithm analysis is the process of evaluating the performance and efficiency of an algorithm. It involves analyzing the worst-case, average-case, and best-case scenarios for an algorithm to determine its time and space complexity.

3. Why is it important to understand data structures and algorithm analysis?

Understanding data structures and algorithm analysis is crucial for efficient and effective problem-solving in computer science. It allows programmers to choose the most appropriate data structure and algorithm for a given problem, leading to faster and more efficient solutions.

4. What are some common data structures?

Some common data structures include arrays, linked lists, stacks, queues, trees, and graphs. Each data structure has its own advantages and is suitable for different types of problems.

5. How can one improve their understanding of data structures and algorithm analysis?

One can improve their understanding of data structures and algorithm analysis by practicing and implementing different data structures and algorithms in programming languages. Additionally, reading and studying textbooks, attending lectures or workshops, and participating in coding challenges can also enhance one's knowledge in this area.

Similar threads

  • STEM Academic Advising
Replies
3
Views
910
  • STEM Academic Advising
Replies
2
Views
839
  • STEM Academic Advising
Replies
10
Views
2K
Replies
7
Views
2K
Replies
22
Views
901
  • STEM Academic Advising
Replies
26
Views
2K
  • STEM Academic Advising
Replies
2
Views
2K
  • STEM Academic Advising
Replies
7
Views
1K
  • STEM Academic Advising
Replies
2
Views
2K
  • STEM Academic Advising
Replies
4
Views
1K
Back
Top