owned this note
owned this note
Published
Linked with GitHub
---
tags: Homeworks
---
# HW 0: Setup
:::info
**Released:** January 28th, 11:59pm EST
**Due:** ASAP
:::
## Introduction
This homework introduces you to the platforms and tools that we will be using throughout this course.
We are likely using some of these tools differently than you have in the past, so please read carefully.
## Gradescope
We will use Gradescope to handle all assignment submissions. All labs, homeworks, writtens, and projects will be submitted via Gradescope.
1. Login to [Gradescope](https://www.gradescope.com/) using your Brown email.
2. Once logged in, click the **Enroll in Course** button on the bottom right of your dashboard and input the code **KKPBJW**.
3. Confirm that **CSCI 1951L** now appears on your dashboard.
:::warning
**Note:** Since this course uses Gradescope's anonymous grading feature, you do not need to use/create a separate anonymous ID. More importantly, do **NOT** include any identifiable information in your submissions.
:::
<!-- ## Discord
Discord is for student-to-student communication. This is your **first stop** when looking for help.
In the server, you are encouraged to join the **Voice Channels** to discuss assignments with other students or post your question in the relevant assignment **Text Channel**.
:::success
If you're teetering on a grade boundary when it comes to the end of the semester, we'll take your participation on Discord into account.
:::
**We want you to collaborate!** Not only will you get the fastest answers in the Discord, but it's likely that other students will have run into the same issues that you have. And they'll have a solution :)
While TAs will monitor the Discord to gauge assignment difficulty and update FAQs, TAs are **NOT** expected to respond to questions on Discord.
Join the Discord [here](https://discord.gg/85atrZx3TP). If you already have a Discord account, you are free to use it. Otherwise, you will have to create an account by clicking **register**.
:::warning
**Note:** We require that students have their first and last name as their server nickname. You can do this by typing `/nick <Firstname Lastname>` in any text channel. For example, `/nick Nick Vadasz`.
:::
### Discord Dos:
- Ask questions about **Projects and Labs**
- Bounce your **Written** ideas off of other students
- **Respond to your fellow students' messages**
- React (thumbs-up, heart, etc...) to questions that you also have
- This will help TAs update the FAQ
- Ask conceptual questions
- Ask Go/Solidity syntax questions
- Request help parsing Go/Solidity error messages
- Use the voice channels to set up small group debugging sessions (capped at 4 students per voice channel)
- You MAY (and probably should) **share your screens and code here**
### Discord Don'ts:
- Ask/give answers to **homework problems**. These should be done individually. If you have a question, ask on Ed.
- **Expect answers from TAs**
- Post your code asking for help
- Instead, ask your question in English/pseudocode. Or, ask if someone is willing to help you debug in a voice channel.
- Answer fellow students with large blocks of code
- Opt for English/pseudocode first. If you feel that you must share code (or helper functions), keep it to two lines or less. Use your discretion here.
- Be rude to TAs or other students
-->
## Ed(Stem)
We will use Ed for all staff-to-student communication. You should expect to see all logistical updates here. In addition, each project will have a frequently updated FAQ. We encourage students to treat Ed as a class discussion board. As a result, you should to try to **answer other students' questions** when possible.
:::success
If you're teetering on a grade boundary when it comes to the end of the semester, we'll take your participation on Ed into account.
:::
Once you log into [Ed](https://edstem.org/), you should see our course automatically pop up. If it does not appear (1) make sure that you are enrolled in this course on C@B and Canvas and (2) try accessing Ed via the link on the side of the Canvas dashboard for the class. If neither of those options work, contact cs1951lheadtas@lists.brown.edu.
### Ed Dos:
- Ask **Homework** questions
- Ask conceptual questions
- Ask Go/Solidity syntax questions
- Post IDE issues
- Request help parsing Go/Solidity error messages
- **Answer your fellow students' posts**
### Ed Don'ts:
- Post your code asking for debugging help (unless asked to by a TA)
- Be rude to TAs or other students
:::warning
**Note:** All Ed posts must be **public questions**, though you are free to keep your name anonymous. If you do post **privately**, we may decide to make it public (if appropriate).
:::
## Go
We will use Go for the first lab, as well as the first **3 projects**.
We will provide Solidity installation instructions in the Solidity lab. Don't worry about it for now!
If you already have Go installed, run `go version` in the terminal. Make sure that your version is at least 1.17. If it is not, follow these [instructions](https://go.dev/doc/manage-install) for managing multiple Go versions.
If you don't have Go installed, follow the installation instructions [here](https://go.dev/doc/install) (make sure to select the correct OS). You must install Go 1.17 or above (though we suggest just downloading the latest LTS, that being Go 1.21).
:::warning
**Note for M1/M2 Mac:** Make sure that you are installing the version of Go entitled `go1.21.6.darwin-arm64.pkg`. If the install does not prompt you to do so, the correct version can be found on [this downloads page](https://go.dev/dl/).
![](https://csci1951l-spring2024.vercel.app/go_download.png)
:::
## GoLand
We're **recommending** that you use [GoLand](https://www.jetbrains.com/go/) for our Go labs and projects. GoLand is a Go IDE with robust language support and debugging tools from JetBrains. If you've used IntelliJ or PyCharm before, you'll get the idea.
To install GoLand, first go to their [downloads page](https://www.jetbrains.com/go/download/) and select the correct OS before clicking **download**.
:::warning
**Note for M1/M2 Mac:** Make sure to click the dropdown menu on the macOS Download button and select the **Apple Silicon** version.
![](https://i.imgur.com/tYYEXRs.png)
:::
When you open GoLand for the first time after installation, you will be met with a **Licenses** page. It is important that you select **Activate GoLand**, **JB Account**, and then **Login with JetBrains Acount...**. When you reach a new popup, select the signin with Google option and select your Brown email. This will make sure that you get a **free license to GoLand**. After, you should be returned to GoLand. At this point, the installation is complete.
## Hours
Hours should be the **last thing you look to when trying to solve a problem**. Before coming to hours you should:
1. Ask your fellow classmates.
2. Check Ed for previous posts and assignment FAQs.
3. Make an Ed post yourself.
Once you've tried all of these resources, come to hours! Your friends and fellow students are often the quickest way to get an answer, and we expect all of you to take advantage of our collaboration-first approach to this class.
## Course Website & Handin
Finally, review the [course website's materials](https://csci1951l-spring2024.vercel.app/). The website will serve as the main repository for information from or about the class, including but not limited to lecture materials and handouts. Most importantly, review the course's collaboration policy, syllabus, and FAQ. After doing that, **navigate to Gradescope and submit the assignment labeled "HW 0: Setup"**
:::warning
**Note:** This Gradescope submission is just to help us catch any issues before they become a problem in later assignments, like people having trouble submitting to or accessing the course. It is not counted in your grade, and late days can't be used on it. If you are reading this after the due date has passed, don't worry about it!
:::
After doing all of the above, you are officially done with Homework 0!