Skip to content

Starter repository for 2nd prog asst for CPE 1040: migrating from blocks to js.

Notifications You must be signed in to change notification settings

ivogeorg/starter-migrating-from-blocks-to-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 

Repository files navigation

CPE 1040 - Introduction to Computer Engeneering

Assignment: Migrating micro:bit Programming from Blocks to JavaScript

1. Summary

This assignment asks you to go through a Intro to CS course with Blocks for the micro:bit, and write parallel programs using the JavaScript equivalent of the code in the course modules. This assignment is submitted through Github.

2. Requirements

2.1 Section programs

  1. The CS course is broken down into thematic sections. There are 5 sections + 1 midterm project + 5 sections + final project. Each section has 4 parts. You want the Activity part, which contains the section's CS material and Blocks.

  2. You need to write a working JavaScript (JS) program for the micro:bit for each of these sections/projects, for a total of 12.

  3. For the non-project sections, you are required to use the JS equivalent of the material from the section. Note: For these programs, you are allowed to look at the JS translation of Blocks programs.

  4. For the midterm project, you are required to use the JS equivalent of the material from all 5 preceding sections. Note: For this project, you are NOT allowed to look at the JS translation of Blocks programs. (An aside: if you don't know how to read a statement like "you are not allowed to", the intended and preferred interpretation is "you can do whatever you want and won't be penalized by me, but, if you want to learn most effectively, I suggest that you do not resort to...".)

  5. For the final project, you are required to use the JS equivalent of the material from all 10 preceding non-project sections. Note: For this project, you are NOT allowed to look at the JS translation of Blocks programs.

2.2 Github commits & tags

  1. Working in the Makecode browser environment, you cannot save the JS file of your program in a directory of your choosing. It is stored in an in-browser memory object and is not accessible. (A side note: there might be a Makecode app for Windows which might actually allow that, but there is nothing like that for Mac, to the best of knowledge.) So, you will need to copy the JS from Makecode to another editor (preferably, a code editor with syntax highlighting and code manipulation) and then save and commit it.

  2. You need to commit the changes and additions to your assignment for each section or project. This means that there should be at least 12 commits pushed to your remote assignment repository on Github when you are done. I advise you to have more than that, to get used to it.

  3. You need to tag the final commit for each section. Tags are under releases in the repository bar on the Github page of the assignment repository. The tag should be one of the following v0.1, v0.2, ..., v0.12, for each section, respectively. (Terminology clarification: the git command is git tag, but tags are counted as releases on Github.)

  4. You need to update the assignment repository README.md (this document, in the section Tags) with a short description of your section program or project, before you tag. You can do that directly on Github after you push your commits from your local repository.

2.3 Project design

  1. For each of the two projects, you need to include a design "document" in the README.md (this document, in the section Designs).

  2. The design "document" should follow the problem-solving tips in the mini-project page.

  3. The design "document" should have at least the following sections: Goal, Design process, and JS Language Constructs & Objects. Articulating clearly your engineering work is a key professional skill.

Resources

micro:bit

  1. micro:bit lessons.

  2. micro:bit ideas.

  3. A list of some more advanced projects.

  4. The projects at the awesome micro:bit list.

Github

  1. Github Tutorial for Beginners (webpage).

  2. Github Basics for Mac and Windows (video).

  3. git & Github Crash Course for Beginners (video).

  4. Introduction to Github for Beginners (video).

  5. About git (webpage).

  6. git documentation (webpage, book, videos, reference manual).

  7. Github markdown cheat sheet.

JavaScript

  1. Technically, the language which is used side-by-side with Blocks in the Makecode environment is a subset of TypeScript, which itself is a superset of JavaScript (technically, ECMAScript), with some JS features not implemented in Makecode.

  2. The limited JavaScript mini-tutorial in Makecode. Make sure you read it but that can't be your only reference.

  3. Official TypeScript documentation:

    1. TypeScript in 5 min tutorial. Highly recommended! You will need to download and install an integrated development envinronment (IDE). The two that I recommend are Visual Studio Code from Microsoft and WebStorm from JetBrains.
    2. The full documentation and reference is under Handbook. Bear in mind that you are drinking from the hose. Don't be surprised if not everything is presented in a strictly incremental manner.
  4. In-browser TypeScript playground. Note that micro:bit specific code will not run, but you can still play. Start making the distinction between a generic multi-purpose programming language (TypeScript) and functionality (packages, libraries, objects, etc.) that is specific to a particular device (micro:bit), though written in the same programming language.

  5. A pretty good and very palatable JS tutorial with in-browser coding, by Codecademy.

  6. Extensive and detailed JS tutorial, with some advanced material thrown in. _I like this one!

  7. The most authoritative JS resource on the Web, including tutorials and reference, by Mozilla.


Tags

Note: Add your program descriptions below.

v0.1

[your description here, linking to the JavaScript file]

v0.2

[etc.]

Designs

v0.7

One sentence description of the program just committed. It does so and so....

Note: Add your project designs below.

Midterm project

Note: Add your project designs below.

Goal

[your short description]

Design process

[your sketches, the things you tried, the questions you asked yourself, the answers, the sticking points, the iterations, the restarts, the final version]

JS Constructs & objects

[which JavaScript features you used in the implementation of your project idea]

Final project

[etc.]

About

Starter repository for 2nd prog asst for CPE 1040: migrating from blocks to js.

Resources

Stars

Watchers

Forks

Packages

No packages published