This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
haas:fall2020:common:projects:lob0 [2020/08/21 12:52] – wedge | haas:fall2020:common:projects:lob0 [2020/09/01 12:23] (current) – [Raspberry Pi command-line via SSH/MOSH] wedge | ||
---|---|---|---|
Line 1: | Line 1: | ||
======PROJECT====== | ======PROJECT====== | ||
- | PROJECT: Letters of Blocks | + | PROJECT: Letters of Blocks |
=====Objective===== | =====Objective===== | ||
- | To create | + | To adapt and experiment with a program that generates an image containing a set of letters, made from coordinated blocks. |
+ | Also to start some time-sensitive activities to ensure ground is broken on the project before the day it is due (see submission rubric below) | ||
=====Abstraction===== | =====Abstraction===== | ||
- | As an exercise in toning your abstraction abilities (literally seeing one thing, but understanding and using it as something else), there will be a number of ' | + | {{page> |
- | + | ||
- | Some examples: | + | |
- | + | ||
- | * // | + | |
- | * //desig// - different classes have different class designations. To make one universal document pertinent to ALL classes, specific examples will instead use ' | + | |
- | * c4eng - ENGR1050 "C for Engineers" | + | |
- | * cprog - CSCS1320 "C/C++ Programming" | + | |
- | * unix - CSCS1730 " | + | |
- | * data - CSCS2320 "Data Structures" | + | |
- | * discrete - CSCS2330 " | + | |
- | + | ||
- | This sort of abstraction is very similar to that we will find in our utilization of **variables** in programming, | + | |
- | + | ||
- | Do not be a literalist computer! Start to exercise your abstraction | + | |
=====Locational Awareness===== | =====Locational Awareness===== | ||
- | This document is written with TWO locations in mind: | + | {{page> |
- | + | ||
- | * lab46 (the system you may retrieve resources and SUBMIT projects) | + | |
- | * your pi (the system you will transfer resources to/from, and WORK ON/COMPLETE projects) | + | |
- | + | ||
- | There are commands you can ONLY run on one system or the other. Pay attention to any prompt cues in the given examples (or section headings, context of language leading up to any examples). | + | |
- | + | ||
- | For example: | + | |
- | + | ||
- | * YOU cannot install software on lab46. You don't have access. | + | |
- | * projects | + | |
=====Reading===== | =====Reading===== | ||
Line 53: | Line 30: | ||
* each symbol is a unique render (if you had 2 letter M's, both M's should look different) | * each symbol is a unique render (if you had 2 letter M's, both M's should look different) | ||
* the symbols are arranged to comfortably fill and fit within a canvas of 1280x1024 pixels | * the symbols are arranged to comfortably fill and fit within a canvas of 1280x1024 pixels | ||
- | | + | |
* the image will utilize no fewer than 8 different colours | * the image will utilize no fewer than 8 different colours | ||
* letters are to be entirely constructed out of blocks (filled but square rectangles), | * letters are to be entirely constructed out of blocks (filled but square rectangles), | ||
Line 95: | Line 72: | ||
At which point you can change into the newly created and populated **lob0** directory. | At which point you can change into the newly created and populated **lob0** directory. | ||
+ | Be sure to **add**, **commit**, and **push** this to your lab46 clone of your repository. | ||
+ | |||
+ | Then, on your pi, **pull** and **update** to get the files available there. | ||
=====Compiling===== | =====Compiling===== | ||
Since the grabit brought in a Makefile, you can compile your code simply by typing: **make** | Since the grabit brought in a Makefile, you can compile your code simply by typing: **make** | ||
Line 115: | Line 95: | ||
As with any process you are looking to describe or automate (in this case, both), if YOU do not personally understand or appreciate the steps involved, you are going to have a hard time communicating a proficient list of instructions to the computer to carry out. | As with any process you are looking to describe or automate (in this case, both), if YOU do not personally understand or appreciate the steps involved, you are going to have a hard time communicating a proficient list of instructions to the computer to carry out. | ||
- | So, the FIRST order of business would be to, BY HAND, ON A SHEET OF GRAPH PAPER: | + | So, the FIRST order of business would be to, BY HAND, ON A SHEET OF GRAPH PAPER (consider this your PROTOTYPE): |
* START EARLY: perhaps even while you are working on week 2's " | * START EARLY: perhaps even while you are working on week 2's " | ||
Line 144: | Line 124: | ||
You don't have a monitor, so you are logging into your pi remotely (doable, and good intra-system practice) | You don't have a monitor, so you are logging into your pi remotely (doable, and good intra-system practice) | ||
- | Once your **Makefile** and **lob0.c** file are added to your repository, **commit** and **push**. | + | We start by running a successfully-compiled |
- | + | ||
- | On lab46, **pull** and **update**. | + | |
- | + | ||
- | Compile: | + | |
<cli> | <cli> | ||
- | lab46: | + | yourpi: |
</ | </ | ||
- | and run your program: | + | ... which will produce an image (**lob0.png**); |
<cli> | <cli> | ||
- | lab46: | + | yourpi: |
</ | </ | ||
- | ... which will produce an image (**lob0.png**); You want to put this in your web space (with the proper permissions set), so you can view it in a web browser: | + | Note that you will be prompted for your lab46 password. |
+ | |||
+ | Then over on lab46, run this: | ||
<cli> | <cli> | ||
- | lab46:~/ | + | lab46:~$ chmod 0644 ~/ |
- | lab46: | + | |
</ | </ | ||