Pages

Sunday, November 3, 2013

Date Structure: foundation of Computer Science



Data structure is the fundamental and core course in the Department of Computer Science. Any student who wants to study programming, database, artificial intelligence, and machine learning must learn data structure as the prerequisites. Since I am interested in data analysis, knowledge on database and programming skills are important for me. I took a study about courses offered by the Department of Computer Science at SJSU (San Jose State University) and created the following diagram. From this graph, we can find that data structure is undoubtedly the core course, which every CS student should begin from.


We have known the importance of data structure. The next question is that what data structure is or what content data structure includes. Narrowly speaking, data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently [1]. Opening any data structure books, we can find different kinds of data types and structures which use to deal with different types of data and its application. Broadly speaking, data structure is a subject that studies the operation and the relation of objects which computer performs on. The research area of data structure covers software, hardware, and mathematics.

Finally, I want to share a very interesting data structure application example [2]. In a five-way intersection as following figure (a), C and E are both one-way streets. There are totally 13 available ways. Some of them can go through at the same time such as A to B and E to C. But some of them can’t go through simultaneously such as E to B and A to D. How can we design the traffic lights to control vehicles to let them safely pass the crossing without collision? Figure (b) provides an abstract view of the original problem, which looks complicated but completely modeled the problem with a classic data structure named as “undirected graph”. Each node in the graph represents a possible path while the connecting edge between two nodes indicates the two paths can’t be presented at the same time. Then a “vertex coloring” algorithm on the graph can be used to solve the problem on such an abstract data model. In Figure (b), the same number on the node indicates they are assigned the same color. For me, I enjoy extracting data structures and models from realistic problems. Hope you also like this example.


Reference
[2] Yan Weiming, “Data Structure In C”, Tsinghua University Press, 2009, 3rd Version

1 comment:

  1. Hi Jingmei, I'm impressed at your example. I love these kinds of mathematical-based algorithm. Surely this is a big problem that happens in many societies, especially China, India, Southeast Asia... Understanding algorithms and data structures is very important. This is a great example showing how such knowledge is essential. I only have a small suggestion: put that picture after the first line of the question, in that case readers can follow more easily. Overall, great job!

    ReplyDelete