Skip to content

Assignment #00

Due Date

Section Due Date
Saturday 09/15/2018 at 01:00PM


This assignment will not be graded.

Getting Help


Ask all your questions on Piazza. Assign assignment0 tag to your posts.


The objective of this assignment is to setup your development environment, acquire tools we will use for this course and to familiarize yourself with Piazza.

Piazza Setup

  1. Setup Real-Time email notifications for Piazza. Details can be found here.

Account Sign Ups

  1. Sign up for Github Student Developer pack. In Spring 2018 student id does not work for signup. You can use your id.
  2. Sign up for AWS Educate but do not create AWS Educate Starter Accounts. You will need the regular AWS accounts for this course. See note below for difference between AWS Educate Starter Account and AWS Account.
  3. Acquire student license from JetBrains. You will be able to use an IDE such as IntelliJ IDEA Ultimate with your choice of programming language such as Go, Java, PHP, Ruby, Python, JavaScript, etc.
  4. Create your Namecheap account.
  5. Create your Github and TravisCI accounts.

Should I apply for an AWS Educate Starter Account instead of an AWS Account?

Selecting an AWS account allows for the greatest amount of flexibility, access to AWS services, eligibility for AWS Free Tier in year one, post-graduation portability, and a larger AWS credit amount through the AWS Educate program. The AWS Educate Starter Account is a great alternative only if you do not have access to a credit card.

Setup Development Environment

  1. If the primary Operating System on your laptop is not Fedora or CentOS, you must install Oracle Virtual Box on your laptop. Create a virtual machine with Fedora 28 operating system with enough RAM (4-8 GB), CPU (1-2) and disk (25 - 50GB). We will use Fedora 28 for our development desktop environment and CentOS for our servers. You may dual boot your machine with Fedora 28 if you want to avoid working in a virtual machine. You must use virtual machine for development if your host operating system is Windows or Mac.
  2. To improve performance of your virtual machine, install VirtualBox Guest Additions in your VM and reboot it before installing anything else.
  3. Install Java 8 or 9 in your dev virtual machine. Make sure java is available in your PATH. You may install Oracle JDK or OpenJDK.
  4. Install and setup git. You may also install a git GUI client.
  5. Install a text editor you are most familiar with. Recommended text editors are Visual Studio Code, Atom Text Editor and Sublime Text.

How do I enable hardware virtualization technology (VT-x) for use in Virtualbox?



Taking Snapshots of Virtual Machines

For those of you using Virtual Box, I recommend taking a snapshot of your VM at following times at minimum:

  • Install the operating system and Virtual Box guest additions.
  • Install pre-requisite tools and software.

See on what snapshots are and how it works. It will save you lot of headache if there is a problem with your Linux install. You will be able to revert to a snapshot instead of doing a fresh install.

Backup your Virtual Box VMs to external drive

As you setup your development virtual machine, I would recommend that you fully backup your Virtual Box VM directory to an external hard disk. This will come handy if your hardware crashes or your laptop hard disk fails. See

Share Your Computer’s Files With a Virtual Machine

By default, virtual machines do not have access to files on the host computer or on other virtual machines. If you want to provide that access, you must set up shared folders in your virtual machine app. To help the guest operating system inside the virtual machine understand what’s going on, virtual machine apps present these shared folders as network file shares. The guest operating system accesses a folder on your PC just like it would a shared folder on a network.

See for instructions.


You will not submit anything for this assignment.

Grading Guidelines


Following guidelines are for information only and are subject to change at my discretion.