CSCI 3325
Distributed Systems

Bowdoin College
Spring 2022
Instructor: Sean Barker

Project 0 - Welcome and Setup

Assigned:Tuesday, January 25.
Due Date:Sunday, January 30, 11:59 pm.

This set of easy but important tasks will help set you up for success in this course.

1 - Welcome Survey

First, go to Blackboard and complete the "Welcome Survey" linked on the left side of the class Blackboard page. Completing this survey should only take you a few minutes.

2 - Slack Setup

Questions, discussions, and announcements in this class will all make use of Slack, which is a channel-based messaging platform. Slack will provide a convenient, efficient way to communicate with me, your project team, and the rest of your classmates.

Slack will be used in preference to all other written forms of communication outside of class, including (and especially) email. Once you have Slack set up, do not send me email; send me a direct message (DM) on Slack instead! Similarly, I will post important announcements and information to Slack instead of sending email. Therefore, it is critical that you are configured to receive Slack notifications so you do not miss important information about the course.

Joining the Slack

Follow these steps to get set up to use the Slack:

  1. First, watch this 1-minute video to get a quick overview of how Slack works.
  2. If you haven't done so already, accept the invitation to the CSCI 3325 Slack that you should have received via email. If you do not have this invitation, let me know and I can resend it. Joining the Slack is a one-time setup step.
  3. Download the Slack desktop app. While you can also access Slack via the web interface, the desktop app is more seamless and may encourage you to engage more regularly (like a dedicated email client). You can also install the Slack mobile app if desired.
  4. Configure your Slack notifications. As mentioned above, I will use Slack instead of email to make important announcements, so it is critical that you are notified of such announcements. Set your notifications to either "All new messages" or "Direct messages, mentions & keywords". At the bottom of the Notifications preferences, under "When I'm not active on desktop", you may want to check the "Send me email notifications" box, particularly if you might otherwise not be signed into Slack on a regular basis. You can always change these settings later on if you find the email notifications bothersome.
  5. From within Slack, send me a DM saying hello (or anything else you feel like!). Sending this message constitutes 'submitting' your project.

Slack Channels

The Slack contains four public channels, which are visible to everyone in the class: general (for course-wide announcements), inclass (for discussion of in-class material and examples), projects (for project-specific discussion), and random (for anything off-topic). You can also create (private) DM threads with multiple participants.

Now that you are set up in Slack, you are ready to proceed with the rest of the course and get help along the way as needed!

3 - Environment Setup

This section will walk you through getting your working environment set up to complete the later projects.

Command-Line Environment

This class will make heavy use of the Linux command-line. You should already have some comfort with the command-line, but if you need or want a refresher, you should go through the Command-Line Unix Crash Course.

Version Control

We will also be making use of the git version control system (and GitHub) to facilitate collaboration. You may already have some experience with version control, but not necessarily with git specifically. If you are new to git or just want to brush up, check out the Git Essential Training Companion Guide. Note that the third part is especially relevant to group collaboration using Git (which might be new to you).

Class Server

You have been provided an account on the class Linux server that will allow you to work on and submit your projects. You are strongly encouraged to do your coding on the class server. The name of the class server is turing.bowdoin.edu (or if you are on-campus, just turing for short). The server provides a full-fledged Linux environment with all the standard development tools (editors, compilers, version control, etc) preinstalled. If there is any software that you would like to use that is not already installed on the server, please let me know. Access to your server account is by SSH key only (no password access). You should have received your keyfiles from me via email (if not, let me know immediately). For instructions on using your key, refer to the relevant section of the Unix tutorial.

General Logistics

Starter code for the projects will be distributed via GitHub. For each project, your group will have a personal git repository accessible only by you and myself in which you will complete your work. At the start of each project, an invitation link will be posted to Blackboard that will initialize your personal project repository on GitHub and add any starter files. Once your project repository is initialized, you can clone it to turing and then begin to work. Although you will make your final submission via the autograder, you should also make sure that your final work is committed and pushed to GitHub.

It is recommended to configure your GitHub account to use your SSH key for authentication, which will allow you to interact with GitHub without needing to type your username or password. Refer to the Git tutorial for instructions.