“Every program depends on algorithms and data structures, but few programs depend on the invention of brand new ones.”! “I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.”!
This course introduces students to data structures and algorithms, and how data structures can be created and used. The application of data structures will be presented on the basis of various algorithms. This course teaches learners the way information is organized in the computer and which have an impact on the performance of the computer. The purpose of this course is to provide the students with solid foundations in the basic concepts of programming: data structures and algorithms. The main objective of the course is to teach the students how to select and design data structures and algorithms that are appropriate for problems that they might encounter. This course is also about showing the correctness of algorithms and studying their computational complexities. This course offers the students a mixture of theoretical knowledge and practical experience. The study of data structures and algorithms is carried out within an object-oriented framework. When implementations are considered, the Java programming language is used.