Take the next steps for this new repository and its freshly added files
Copy and connect the repository locally so that you can push updates you
make and pull changes others make. Enter git clone and
the repository URL at your command line:
git clone
https://shreya_shrivastava@bitbucket.org/cs441_fall2019/homework1.git
Learn more or clone in Sourcetree to avoid the command line. Sourcetree is
a free Git and Mercurial client.
Homework 1
master
/
Name |
Size |
Last commit |
Message |
|
README.md |
20.6 KB |
7 days ago |
README.md
edited online with Bitbucket |
|
README.md
Homework 1
Description: create cloud simulators for evaluating
executions of applications in cloud datacenters with different characteristics
and deployment models.
Grade: 7% + bonus up to 3%
You can obtain this Git repo
using the command git clone git clone https://bitbucket.org/cs441_fall2019/homework1.git. You can clone Cloud2Sim or ingest it directly
into IntelliJ from https://git.code.sf.net/p/cloud2sim/code.
Preliminaries
As part of homework assignment you will gain experience with creating
and managing your Git repository, obtaining an open-source cloud simulation
infrastructure Java project from a public Git repo, creating JUnit tests, and
creating your SBT build and run scripts for your simulation application. Doing
this homework is essential for successful completion of the rest of this
course, since all other homeworks and the course project will share the same
features of this homework: branching, merging, committing, pushing your code
into your Git repo, creating test cases and build scripts, and using various
tools for diagnosing problems with virtual machines and your applications.
First things first, you must create your account at BitBucket, a Git repo management system. It is imperative that you use your UIC
email account that has the extension @uic.edu. Once you create an account with
your UIC address, BibBucket will assign you an academic status that allows you
to create private repos. Bitbucket users with free accounts cannot create
private repos, which are essential for submitting your homeworks and the course
project. Your instructor created a team for this class named cs441_Fall2019. Please contact your TA, Mr. Mohammed Siddiq using your UIC.EDU email account and he will add you to the team
repo as developers, since Mr.Siddiq already has the admin privileges. Please
use your emails from the class registration roster to add you to the team and
you will receive an invitation from BitBucket to join the team. Since it is a
large class, please use your UIC email address for communications or Piazza and
avoid emails from other accounts like funnybunny1992@gmail.com. If you don't
receive a response within 12 hours, please contact us via Piazza, it may be a
case that your direct emails went to the spam folder.
Next, if you haven't done so, you will install IntelliJ with your academic license, the JDK, the Scala runtime and the
IntelliJ Scala plugin, the Simple Build Toolkit (SBT) or the Gradle
build tool and make sure that you can create, compile, and run
Java and Scala programs. Please make sure that you can run various Java tools
from your chosen JDK.
In this and all consecutive homeworks and in the course project you will
use logging and configuration management frameworks. You will comment your code
extensively and supply logging statements at different logging levels (e.g.,
TRACE, INFO, ERROR) to record information at some salient points in the
executions of your programs. All input and configuration variables must be
supplied through configuration files -- hardcoding these values in the source
code is prohibited and will be punished by taking a large percentage of points
from your total grade! You are expected to use Logback and SLFL4J for logging and Typesafe Conguration Library for managing
configuration files. These and other libraries should be imported into your
project using your script build.sbt or gradle script. These libraries and frameworks
are widely used in the industry, so learning them is the time well spent to
improve your resumes.
Even though Cloud2Sim is written in Java, you can create your
simulations using Scala, for which you will receive an additional bonus of up
to 3% for fully pure functional (not imperative) implementation. Since being
proficient in Java is a prerequisite for this course, you will be expected to
learn Scala as you go. As you see from the StackOverflow survey, knowledge of
Scala is highly paid and in great demand, and it is expected that you pick it
relatively fast, especially since it is tightly integrated with Java. I
recommend using the book on Programming in Scala: Updated for Scala 2.12
published on May 10, 2016 by Martin Odersky and Lex Spoon. You can obtain this
book using the academic subscription on Safari Books Online. There are many
other books and resources available on the Internet to learn Scala. Those who
know more about functional programming can use the book on Functional
Programming in Scala published on Sep 14, 2014 by Paul Chiusano and Runar
Bjarnason.
To receive your bonus for writing your cloud simulation program code in
Scala, you should avoid using vars and while/for loops that iterate
over collections using induction variables. Instead, you should learn to use collection methods map, flatMap, foreach, filter and
many others with lambda functions, which make your code linear and easy to
understand. Also, avoid mutable variables at all cost. Points will be deducted
for having many vars and inductive variable loops without
explanation why mutation is needed in your code - you can always do without it.
Get Free Quote!
411 Experts Online