BS0013 Data Structures

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
Content Full- and part-time intramural studies Part time extramural studies
Contact hours Independent work Contact hours Independent work
Programming language C++. 15 15 0 0
Asymptotic notations, solving recurrences, sorting. 15 15 0 0
Recursion and iteration. 15 15 0 0
Lists, stacks, queues, deques. 15 15 0 0
Priority queues. 10 10 0 0
Trees. 10 10 0 0
Hash tables/hashing. 10 10 0 0
Graphs. 10 10 0 0
Total: 100 100 0 0
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
Part CP Hours Tests
Lectures Practical Lab. Test Exam Work
1 7.0 40.0 60.0 0.0 *

[Extended course information PDF]