Coder Social home page Coder Social logo

dbs2-exercise's Introduction

DBS II Exercise Framework

This is the exercise repository for the database systems II course for IT systems engineering bachelors degree @ Hasso Plattner Institute Potsdam.

The exercises will cover different database datastructures and algorithms, which you will have to implement in either Java or Kotlin (please give us feedback if you want to work in another JVM language, like Groovy or Scala). We chose JVM (Java Virtual Machine) languages as a base for all implementations in this course for ease of development and quick setup, and to give you the chance to test out a new popular programming language in your studies, if you haven't developed in Java or Kotlin yet. The build process is using Gradle and is already configured to use the currently latest long-term release JVM 17.

For each of the exercises, we already provide a package with empty classes as either .java (for Java) or .kt (for Kotlin) files. You can choose to implement either of them and our JUnit tests will pick the correct one to test, but please keep all your code which you write for your solution exactly in these packages. Finally, for easier submission, we included a build task, which packs your implementation files (and only these in the belonging packages) as .zip files, which you can upload in Moodle.

Setup

This repository contains a Gradle project, which can be used standalone with a command line and a text editor, or preferably with an IDE like IntelliJ Idea (free student license), VSCode or Eclipse (IDEs with Gradle integration make running build tasks easier and have some nice development shortcuts). We suggest that you use IntelliJ Idea if this is your first time working with Java projects and already integrated the Idea Gradle plugin in the buildscript.

Using Git

We suggest that you fork the GitHub repository, so you can track your own changes. If you do not intend to use Git, you can also clone or simply download the repository. To update your fork after the release of new exercise, you can synchronize the repository on the GitHub website. Alternatively, you can configure an upstream repository and fetch the upstream changes via the terminal. See this help article for both methods.

First step

Please configure your exercise group in the gradle.properties configuration file - the build script will require groupIdentifier to not be blank to execute any build task.

Running with IDE

Simply open this folder in the IDE and it should automatically get picked up as a Gradle project, which should then index all containing files and start the Gradle build daemon. The most important build tasks we want to use are:

  • gradle test to start the provided test suite test your solutions.
  • gradle packExercise<X> to pack your implementation for exercise in a .zip file (will be written in the project root folder) for submission.

Running without IDE

You can also use the Gradle build process without IDE by running each required build task using the provided ./gradlew script. Run all described build tasks from the other tutorial as appended CLI arguments, e.g. ./gradlew test. See the Gradle Wrapper documentation for more details.

Exercise tests

We use JUnit5 with Kotest Assertions for unit testing the most important methods of each exercise. Feel free to write tests for edge-cases which you found while implementing your exercise solutions (not mandatory). We will test you submissions with a bigger test set and different input data to check for correctness.

dbs2-exercise's People

Contributors

youri-k avatar shirleynekodev avatar cdfhalle avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.