| Code | BS0013 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Name | Data Structures | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Status | Compulsory/Courses of Limited Choice | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Level and type | Undergraduate Studies, Academic | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Field of study | Computer Science | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Faculty | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Academic staff | Jānis Lazovskis, Kalvis Apsītis | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Credit points | 7.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Parts | 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Annotation |
The study course provides a rigorous analysis of the design, implementation, and properties of advanced data structures. Topics include time-space analysis and trade-offs in arrays, vectors, lists, stacks, queues, and heaps; tree and graph algorithms and traversals, hashing, sorting, and data structures on secondary storage. The study course surveys library implementations of basic data structures in a high-level language. Advanced data structure implementations are studied in detail. The study course illustrates the importance of choosing appropriate data structures when solving a problem by programming projects in a high-level programming language.. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Contents |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Goals and objectives of the course in terms of competences and skills |
The aim of the study course is to provide knowledge about the structures of basic data and their implementation. The tasks of the study course are: - to acquaint with graphs and trees, their numerical invariants and their applications; - to teach to recognize and create fundamental data structures and fundamental algorithms; - to develop the ability to apply different declarations and object types; - to improve abstraction capabilities in creating algorithms and data types. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Learning outcomes and assessment |
Understands basic topics in mathematics, probability and statistics, computer science and electrical engineering, and how they relate to the field of computer programming. - Midterm exams, final exam. Able to design a software system, component or process to meet desired needs using appropriate software engineering principles - Written and programming assignments. Orients in the application of the basic principles of mathematics for the practical implementation of high-level data structures. - Written and programming assignments. Able to create advanced data structures, algorithms, coding methods used in industry. - Written and programming assignments. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Evaluation criteria of study results |
Midterm exams - 20%
Final exam - 30% Written and programming assignments - 50% |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Course prerequisites | Introduction to Computer Science and College Calculus. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Course planning |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||