First-year Project: Map of Denmark. Visualization, Navigation, Searching, and Route Planning (Spring 2025)
Official course description, subject to change:
Course info
Programme
Staff
Course semester
Exam
Abstract
The First Year Project is the first large project on this education. The students will plan and conduct a project in small groups, where they will get to apply the techniques they have learned throughout the first two semesters of their education. In this project, the groups must identify, define, and delimit the project, including analysis and selection of tools, technologies, data structures and algorithms to solve the given software problem. Furthermore, the group must compare the relevant design options (e.g., kd-tree vs quad-trees, Dijkstra with or without A*, possibly include more advanced routing algorithms) and implement these into a combined solution. The product must be documented, tested and evaluated in a larger report.Description
The purpose of the course is to give further practical experience in programming, including the topics covered in the first two semesters of the education. In the first semester, the students have already completed smaller projects. In this course, the project spans most of the semester, and the scope of the project is closer to what they would face in their careers once their education is complete. The course highlights and combines several topics covered in the first two semesters.
Beyond the important practical experience within the topics of the first two semesters, the students are exposed to topic, which will form an important foundation for the following semesters, where these topics will be expanded further upon.
Among others the following topics will be discussed:
Software testing:
Introductory software testing and methodologies
Unit Testing with JUnit
Data processing and representation
Floating point numbers
Multidimensional representations of data
XML formats
Formal prerequisites
This course is a part of the second semester of the bachelors education in software development.
Prequsites:
Grundlæggende Programmering
Algoritmer og Datastrukturer (in parallel)
Intended learning outcomes
After the course, the student should be able to:
- IDENTIFY relevant solution options, such as tools, technologies, algorithms and data structures (e.g., different data structures for indexing map data, compute shortest paths, search for addresses, etc.)
- COMPARE the relevant solution options, and select the best suited one, based on theoretical and practical performance (e.g., kd-trees vs quad-trees vs. R-trees, BST vs Trie vs sorted array, different variants of Dijkstra's algorithm)
- DESCRIBE how the chosen solutions work, and explain why they were chosen.
- COMBINE the chosen solutions into a complete product (implementation), which satisfies the problem description, where the theoretical elements are adapted and implemented in a practical context.
- APPLY the principles of systematic test to the product (curate a test suite for regression testing, ensuring proper coverage using the formal coverage criteria).
- EXPLAIN in written and oral form, which can be understood by non-experts, the chosen solution and how it works, the rationale behind the choices, and how they are adapted into the combined produkt.
Ordinary exam
Exam type:D: Submission of written work with following oral, External (7-point scale)
Exam variation:
D2G: Submission for groups with following oral exam supplemented by the submission. Shared responsibility for the report.