CS 651 Spring 2020 Midterm Preparation

Prepare your repo for the midterm

Dr. Greg M. Bernstein

Due Wednesday, October 7th, 2020 by 11:00AM

General Instructions

Create and Use a new Branch midterm

  • Prior to the exam you will create a new branch midterm in your repository. The branch name you create must exactly match the one I’ve given you for you to receive any credit for this exam. On this branch only: clear out all files and directories except your README.md (I just need this for your name and NetId in case of confusion. You won’t be putting any solutions in here as I will be running and reviewing your code).

  • Prior to creating this new branch make sure your working directory is “clean”, i.e., consistent with the last commit you did when you turned in homework 6. Follow the procedures in GitHub for Classroom Use to create the new branch, i.e., git checkout -b midterm. Review the section on submission for using push with a new branch.

  • On the midterm branch create two top level directories with the names: question1 and question2 (exactly). You will put the problems and solutions in these two directories. No additional nested directory structure is permitted!!! You will lose points if I have to traverse additional directories to find and run your code/pages/CSS. You are allowed to create a top level practice directory for the optional practice problem.

Use README.md for your name and NetId

You will modify the README.md file to contain just your name and netId as follows.

# Midterm CS651 Fall 2020
**Your name**
**NetID: yourNetID**

Information and Procedures

Midterm Coverage

All slide material and concepts from week 1 through week 6 and React function components from week 7, per course materials website.

Format of Exam

  • Online exam. Time limited to 120 minutes (2 hours). Open book (my slides), and references (MDN, library documentation, etc…).

  • Only programming methodologies/styles as taught in class are acceptable solutions. Not random code from the internet.

  • The exam will consist of two multipart programming problems. You will develop running code using the same developer tools you’ve used for your homework.

  • The questions will be similar to those in the homework but will apply the techniques to different projects/situations.

A React Question

The second question on the exam concerns React. In the question2 directory you can use the following package.json file to install the appropriate NPM packages into node_modules.

{
  "name": "question2",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "react": "^16.13.1",
    "react-dom": "^16.13.1"
  }
}

You will need to use the Parcel.js bundler to do the development for this question. I would strongly recommend preparing for this development ahead of time. I will be running Parcel.js on your committed files. No credit will be given if the bundler crashes due to syntax or other errors on your part.

Taking the Exam

  • At the scheduled exam time (or if you emailed me and got a confirmation for an alternative time) the exam will be available from Blackboard in the “course materials” section under the name “Midterm”.
    1. Immediately download all the questions to your local computer. Each question will be a separate Zip archive. Do not wait to complete each question. You will NOT be submitting your answers to Blackboard.
    2. Each question will contain a Zip archive file with instructions in a Markdown file and additional files as appropriate. Unzip each archive and transfer all the files to the corresponding question directory in your local repository (No extra directories!!!). Commit these files to your local repo and push to GitHub.
    3. Start working on your exam. Commit and push as often as you like. Even if you have network problems continue to commit

You may be asked to change existing files or come up with new files. All changed and new files need to be committed and pushed.

  • You must do your own work and not collaborate with others on the exam.

Practice Question

Download this Practice.zip file, unzip it. Copy the files to the practice top level directory you created on this branch. Commit and push these files. Change these files and commit and push again. If everything worked your repo is ready!