Official course description, subject to change:

Preliminary info last published 15/11-23
Course info
Language:
English
ECTS points:
15
Course code:
BSFDVNS1KU
Participants max:
150
Offered to guest students:
no
Offered to exchange students:
no
Offered as a single subject:
no
Programme
Level:
Bachelor
Programme:
BSc in Software Development
Staff
Course semester
Semester
Forår 2025
Start
27 January 2025
End
30 May 2025
Exam
Exam type
ordinær
Internal/External
ekstern censur
Grade Scale
7-trinsskala
Exam Language
GB
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.