Course Description
Study of the basic data structures and their implementations: Arrays, matrices, stacks, queues, hash tables, trees, lists, and graphs. Programming techniques using recursion. Various searching and sorting methods such as insertion sort, merge sort, and quick sort. Basic analysis of algorithms.
Course Objectives
To get accustomed to and be able to use common algorithms used in programming. External memory algorithms and data structures for sorting and searching, advanced algorithms for graphs.
Learning Outcomes
- Become accustomed to the description of algorithms in both functional and procedural styles;
- Learn good principles of algorithm design: Data abstraction ability
- Learn how to analyze algorithms and estimate their worst-case and average case behavior (in easy cases)
- Become familiar with fundamental data structures
- Engineering graduates with skills and professional background in describing, formulating, modeling and analyzing the engineering problem, with a consideration for appropriate analytical solutions in all necessary situations
- Engineering graduates with the necessary technical, academic and practical knowledge and application confidence in the design and assessment of machines or mechanical systems or industrial processes with considerations of productivity, feasibility and environmental and social aspects.
- Ability of designing and conducting experiments, conduction data acquisition and analysis and making conclusions
- The abilities and performance to participate multi-disciplinary groups together with the effective oral and official communication skills and personal confidence
- Ability for effective oral and official communication skills in foreign language
- Consciousness for the results and effects of engineering solutions on the society and universe, awareness for the developmental considerations with contemporary problems of humanity
Recommended Textbooks
Data Structures and Algorithms in Java, 6th Edition, 2014