CSCI 3325
Distributed Systems

Bowdoin College
Fall 2023
Instructor: Sean Barker

Project 0 - Systems Check

Release Date:Thursday, August 31.
Acceptance Deadline:Wednesday, September 6, 11:59 pm (same as due date for Project 0 only).
Due Date:Wednesday, September 6, 11:59 pm.
Collaboration Policy:Level 1
Group Policy:Individual

This warmup project will get your computing environment properly configured for the rest of the course and give you an opportunity to review working in a Unix/Linux environment. Nothing in this project should be difficult, but completing these steps now will avoid any systems-related issues once the first real project is underway.

0 - It's in the Syllabus

First, read the class syllabus so that you are aware of important course policies. If you have questions or need clarifications on anything in the syllabus, please let me know! Going forward, I will assume that everyone has read and is familiar with all policies and procedures detailed in the syllabus.

Somewhere within the syllabus is a code (unique to you) that you'll need to submit later in this project. Make a note of this code!

1 - 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, the LAs, your classmates, and your team (for group assignments).

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 from me. Follow these steps to get set up:

  1. First, if you haven't used Slack before, watch this 1-minute video to get a quick overview of how Slack works.
  2. Join the CSCI 3225 Slack using the invitation link that was sent to your Bowdoin email. If you haven't received an invitation email, let me know. Once you have joined, you will be able to access the Slack using the regular CSCI 3225 Slack link (which is also posted to Canvas).
  3. Download the Slack desktop app. While you can also access Slack via the web interface, the desktop app is more seamless and will make it easier to stay up-to-date. You can also install the Slack app on your devices for easy mobile access.
  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).
  5. From within Slack, send me a DM containing your code from the course syllabus so I know that you're set up.

The Slack contains five public channels (visible to everyone): assignments (for discussion of projects), general (for announcements and general discussion), inclass (for discussion of in-class material), random (for anything off-topic), and scheduling (for the regular office hour schedule and any temporary schedule changes). You can also create (private) DM threads with multiple participants. To post anonymously in a channel, just type your message like so: /anonymous This is an anonymous message (but note that you cannot reply anonymously inside a message thread). Messages can also be edited or deleted after posting.

Now that you are set up in Slack, you should rarely, if ever, need to send me email! Just DM me instead.

One Slack caveat to be aware of: due to how Slack operates free workspaces, messages are automatically archived (and not easily retrieved) 90 days after being sent. As a result, the class Slack should not be used for any long-term storage (and note that 90 days is a bit less than the length of the semester, so messages sent during the first few weeks of the semester will no longer be accessible prior to the end of the semester).

2 - Computing Environment

This section will overview the server environment you will use to complete the projects in this course. Most of these topics should be review from CSCI 2330.

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 refer to 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. If you are new to git or just want to brush up, refer to the Git Essential Training Companion Guide. Note that the third part of the guide is especially relevant to group collaboration using Git. As all future projects in this class will be completed in groups, going through the third part of the training is a good idea if you haven't done so previously.

Class Linux 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 hopper.bowdoin.edu (or if you are on-campus, just hopper 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.

GitHub 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 Slack 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 hopper and then begin to work.

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

3 - Test Run

To make sure that your environment is properly configured and that you understand how to operate it, perform the tasks given below.

Accept the Project 0 GitHub repository and clone it to hopper. Then, from hopper, add a new text file called code.txt containing your Slack code from Part 0 to the repository. Commit the new file and push to GitHub. Once your repository reflects your new file and code, you have "submitted" Project 0.

If you aren't sure about how to do any part of the above, refer to the previous parts of this writeup to review. Reviewing these topics now will mean that you don't have to later!

Evaluation

This project will be marked pass/fail only based on the presence of your repository on hopper and GitHub. Your repository should contain the code.txt file with your Slack code.