🏷️
CS186
  • Overview
  • Assignments
    • Project 0: Setup
      • Getting Started
      • Your Tasks
      • Submitting the Assignment
    • Project 1: SQL
      • Getting Started
      • Your Tasks
      • Testing
      • Submitting the Assignment
    • Project 2: B+ Trees
      • Getting Started
      • Your Tasks
      • Testing
      • Submitting the Assignment
    • Project 3: Joins and Query Optimization
      • Getting Started
      • Part 0: Skeleton Code
      • Part 1: Join Algorithms
        • Task 1 Debugging
        • Task 2 Common Errors
      • Part 2: Query Optimization
      • Testing
      • Submitting the Assignment
    • Project 4: Concurrency
      • Getting Started
      • Part 0: Skeleton Code
      • Part 1: Queuing
      • Part 2: Multigranularity
      • Testing
      • Submitting the Assignment
    • Project 5: Recovery
      • Getting Started
      • Your Tasks
      • Testing
      • Submitting the Assignment
    • Project 6: NoSQL
      • Getting Started
      • Your Tasks
      • Submitting the Assignment
  • Common
    • Adding a partner on GitHub
    • Miscellaneous
      • Nested Loop Join Animations
Powered by GitBook
On this page
  • Logistics
  • Prerequisites
  • git and GitHub
  • Fetching the released code
  • Debugging Issues with GitHub Classroom
  • Setting up your local development environment
  • Running tests in IntelliJ
  1. Assignments
  2. Project 0: Setup

Getting Started

PreviousProject 0: SetupNextYour Tasks

Last updated 2 years ago

Logistics

This assignment is due Monday, 1/25/2021 at 11:59PM PST (GMT-8). It is worth 0% of your overall grade, but failure to complete it may result in being administratively dropped from the class.

Prerequisites

No lectures are required to work through this assignment.

git and GitHub

is a version control system, that helps developers like you track different versions of your code, synchronize them across different machines, and collaborate with others. If you don't already have git on your machine you can follow the instructions to install it.

is a site which supports this system, hosting it as a service. In order to get a copies of the skeleton code to work on during the semester you'll need to create an account.

We will be using git and GitHub to pass out assignments in this course. If you don't know much about git, that isn't a problem: you will need to use it only in very simple ways that we will show you in order to keep up with class assignments.

If you'd like to use git for managing your own code versioning, there are many guides to using git online -- is a good one.

Fetching the released code

For each project, we will provide a GitHub Classroom link. Follow the link to create a GitHub repository with the starter code for the project you are working on. Use git clone to get a local copy of the newly created repository. For example, if your GitHub username is oski after being assigned your repo through GitHub Classroom you would run:

git clone https://github.com/berkeley-cs186-student/sp21-proj0-oski

The GitHub Classroom link for this project is provided in the project release post on .

Debugging Issues with GitHub Classroom

Feel free to skip this section if you don't have any issues with GitHub Classroom. If you are having issues (i.e. the page froze or some error message appeared), first check if you have access to your repo at https://github.com/berkeley-cs186-student/sp21-proj0-username, replacing username with your GitHub username. If you have access to your repo and the starter code is there, then you can proceed as usual. If you have access to your repo but the starter code is not there, run the following commands in a terminal (again replacing username with your GitHub username):

git clone https://github.com/berkeley-cs186/sp21-rookiedb sp21-proj0
cd sp21-proj0/
git remote remove origin
git remote add origin https://github.com/berkeley-cs186-student/sp21-proj0-username.git
git push -u origin master

Then, you can proceed as usual.

404 Not Found

If you don't have access to your repo at all after following these steps, feel free to contact the course staff on Piazza.

Setting up your local development environment

You are free to use any text editor or IDE to complete the assignments, but we will build and test your code in a Docker container with Maven.

We recommend setting up a local development environment by installing Java 8 locally (the version our Docker container runs) and using an IDE such as IntelliJ.

If you have a newer version of Java installed that should be fine, we'll do our best to support grading for those versions up to Java 11. We won't be able to support any new syntax or features introduced in Java 12 or later, which won't be necessary for the projects.

To import the project into IntelliJ, make sure that you import as a Maven project (select the pom.xml file when importing).

If launching IntelliJ takes you to an existing workspace instead of showing you the popup above you can open the project by navigating to File -> New -> Project From Existing Sources and then select the pom.xml file.

Running tests in IntelliJ

Once you have a copy of the released code, head to the next section "Your Tasks" and begin working on the assignment.

If you're getting a 404 not found page when trying to access your repo, make sure you've set up your repo using the GitHub Classroom link in the Project 0 release post on .

(or alternatively, you're free to use )

If you are using IntelliJ and wish to run the tests for a given assignment follow the instructions in the following document:

git
here
GitHub
this
Piazza
Piazza
Java 8 downloads
OpenJDK
IntelliJ setup
After hitting Import Project navigate to the pom.xml file and open it.