Friday, July 15, 2011

CS 213 - Data Structures and Algorithms


With two courses and a project under your belt, you probably realize the importance of "Efficiency" in programming, but so far you weren't expected to come up with efficient solutions to problems.

In the early stages of this course, you will learn how to quantify and compare algorithms (or procedures, or functions) in terms of "running time" and "space". The major portion of this course, however, deals with the design and efficient implementation of structures (linked-list, stack, queue, trees, heap, priority queue, hash table etc.) to store, access, modify, insert, delete and process data, and algorithms that make use of these data structures to provide efficient solutions to common problems. Sorting, in particular, will be done in excruciating detail, and you will learn about the implementation and variations of many sorting algorithms. Towards the end, you will learn the implementation of graphs and and a few graph algorithms. The contents of this course will be used in most other courses, which is why this is an important course.

As such, there isn't anything "really complicated" in this course, and if you attend classes and read the textbook regularly, you should be able to follow along pretty easily. Labs and exercises in this course will mostly involve implementation of data structures and related algorithms, with desired properties, and sometimes applications of these to specific problems. CS 213 is definitely the easier of the two core courses in the semester, in terms of both concepts and exercises, and it should not be difficult to do well if you put in a decent amount of effort.

(Post Credits - Aakash Rao NS)

No comments:

Post a Comment