Skip to content

Latest commit

 

History

History

pages

Data Structures Project, P III

Course assistant

📆 Time table

Detailed course timing is available here.

Week Mon Tue Wed Thu Fri Sat Sun
3 14.1.- Mandatory lecture 16-18 B119 guidance:
15-18 BK107
DL 1 23:59
4 21.1.- guidance:
15-18 BK107
DL 2 23:59
5 28.1.- guidance:
15-18 BK107
DL 3 23:59
6 4.2.- guidance:
15-18 BK107
DL 4 23:59
7 11.2.- guidance:
15-18 BK107
DL 5 23:59
8 18.2.- guidance:
15-18 BK107
DL 6 23:59
9 25.2.- Demo #1
14-16 B119
guidance:
15-18 BK107
10 4.3.- Exam week Demo #2
12-14 CK111
Final submission

📣 News

  • Time an place for demonstration sessions has been set. A link to a doodle form for registering to a demo session has been snt out to students. Contact a course assistant if you can't make either of the options.
  • Doodle link for demo session planning has been sent to registered students. The email address is the one configured in weboodi.
  • First round of code review have been released. Check out labtool for links to repositories to review.
  • Workshop for 8.2. mostly cancelled. Someone may be around for general algorith workshop stuff. If you have lab specific concerns I should be reachable through irc or e-mail.
  • Labtool should now work!
  • The final submission deadline is on Friday 8.3. at 23:59. There are no time extensions available. Good luck on the exam week!
  • If you find typos or other errors on the course pages, please submit a Pull Request with the fix. A bug bounty of 1 course point will be awarded for significant fixes (capped at 1 per student).

📓 Labtool

IRC and telegram

The course IRC channel is #tiralabra @IRCnet. The Telegram channel can be found here.

Generally the Telegram and IRC chats are linked (bridged) together, so the course assistant will be available through both channels.

Guidance

  • Primarily the course assistant will be available on Fridays 15-18 in class BK107.
  • You may also contact the course assistant through Telegram or IRC.
  • E-mail also works.

Algorithm workshop

  • The primary guidance for the course is organized in conjunction with the algorithm workshop on Fridays (BK107 15-18).
  • You can attend the algorithm workshow at other times as well to get help with data structures or algorithms. The assistant may not be able to help you with course specific things other than on Fridays.

Demonstration

  • Time and place: Demo #1: Wednesday 27.2. 14-16 B119, Demo #2 Thursday 7.3. 12-14 CK111.
  • Mandatory! Contact the course assistant if you can not make the Demo session. The Demo session is mandatory to get a passing grade!
  • All projects will be loaded onto a presentation machine, which you may use for the demonstration.
  • Alternatively you can present with your own laptop. In this case you may want to arrive early to test that the laptop works properly with the projector.
  • Approximately (at most) 5 minutes per project.
  • Slides are not required for the presentation and generally not recommended unless you have a specific reason to use them.

Example projects

  • Saskeli's project Note: The course has changes somewhat after this project was made.
  • Jussi was also kind enough to allow his project to be provided as an example. But stated that the project was pretty minimum effort.
  • Both of these still have a good project structure.

🏆 Conduct of the course

Based on the number of study points (4) offered, the expected amount of work to complete the course should be approximately 107 hours. Plan to spend 15-20 hours on the course every week.

On this course the student creates a program that solves some sort of a problem. For creating the problem the student will apply suitable data structures and algorithms. The problem to solve is selected by the student with the help of the course assistant. A passing (or even good) grade does not require developing an algorithm from scratch. A student may develop their own algorithm(s) if desired. The main point of the course is that the created program works correctly and efficiently. The size of the problem instances and required efficiency will depend on the topic, and will be decided with help from the course assistant. Some example topics can be found here.

The course will be partially (mostly) done online. All weekly submissions will be done online. The only mandatory meetings for the course are the first lecture and the demo session. More information on the submissions can be found here.

The program will be written in a language approved by the course assistant, which is almost always Java.

The primary goal of the course is to learn to implement data structures and algoritms. For this reason all required data structures and algorithms will have to be implemented by the student. Generally only primitive types, arrays and strings may be used, everything else has to be implemented using these. Other tools such as IO and GUI libraries may be used. Data structures from standard libraries (such as ArrayList, HashMap and so on from Java) or algorithms (Collections.sort...) may not be used in the final submission, and it is suggested that the imports for these are completely removed. If you are unsure if a particular class/library is allowed, ask the course assistant.

Generally a good approach to incrementally complete a project has been to first implement the core functionality of the program by using ready-made data structures and algorithms (queues, heaps, sorting algorithms). That is, it may be a prudent to first quickly implement the core functinality and later replace library implementations with self-made ones, i.e. replace implementations defined by interfaces with data structures and algorithms made from scratch. This is the assumed working idea for the project timeline. If you want to approach the project in a different way, you should decide on progress milestones for the project with the course assistant during the first week of the course.

📈 Grounds for grading

  • Program: 30 p

    • Functionality and features 10 p
    • Testing 10 p
    • Code documentation (JavaDoc and self documenting) 5 p
    • Clarity of the code 5 p
  • Documentation 10 p

    • Topic definition 2p
    • Implementation 3p
    • Testing 3p (unit- and performance-!)
    • User guide 2p
  • During the course 20p

    • Code reviews 2 * 2p = 4p
    • Weekly submissions 1p + 5 x 3p = 16 p

(All in all 60 p)

For a passing grade the project needs to contain self-made implementations for data structures and algorithms. Every project is separately graded. Below are typical gradings based on points.

  • 5: 50 p
  • 4: 45 p
  • 3: 40 p
  • 2: 35 p
  • 1: 30 p