17689e2593b01b041647c6f8916430b43170c000
haas/fall2026/common/projects/ntr1.md
| ... | ... | @@ -34,27 +34,28 @@ evaluation of the project at the tail end of this document. |
| 34 | 34 | |
| 35 | 35 | ### READ THE MAGE BOOK |
| 36 | 36 | |
| 37 | -Please take some time to read the "UNIX FOR THE BEGINNING MAGE" PDF that |
|
| 38 | -is available for download off the course homepage. |
|
| 37 | +Please take some time to read the "UNIX FOR THE |
|
| 38 | +BEGINNING MAGE" PDF that is available for download |
|
| 39 | +[here](https://lab46.g7n.org/downloads/UftBM.pdf) |
|
| 39 | 40 | |
| 40 | 41 | Feel free to ask any questions regarding its content and concepts on the |
| 41 | 42 | DISCORD. |
| 42 | 43 | |
| 43 | 44 | ### CREATE PRIVATE REPOSITORY ON GITHUB |
| 44 | 45 | |
| 45 | -On GITHUB, under the account your provided to the instructor, create a |
|
| 46 | -new **private** repository by the name of the current SEMESTER. |
|
| 46 | +On GITHUB, under the account you provided to the instructor, create a new |
|
| 47 | +**private** repository by the name of the current SEMESTER. |
|
| 47 | 48 | |
| 48 | 49 | Please see [this page](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository) for information on creating a new repository on github. |
| 49 | 50 | |
| 50 | 51 | NOTE: the suggested name for your repository should be the name of the |
| 51 | -current SEMESTER. For example, if the semester is `spring2026`, that |
|
| 52 | -would be an ideal name for your new repository. |
|
| 52 | +current SEMESTER. For example, if the semester is `fall2026`, that would |
|
| 53 | +be an ideal name for your new repository. |
|
| 53 | 54 | |
| 54 | 55 | If you are taking multiple classes by the same instructor, you will be |
| 55 | 56 | using this same repository for those other classes. |
| 56 | 57 | |
| 57 | -It is suggested you create subdirectories at the base level of this |
|
| 58 | +You will want to create subdirectories at the base level of this |
|
| 58 | 59 | repository, one for each class you are taking. You may name them after |
| 59 | 60 | the course DESIGs to facilitate navigation. |
| 60 | 61 |
haas/fall2026/comporg/projects/btt0.md
| ... | ... | @@ -1,63 +0,0 @@ |
| 1 | -# CSCS2650 Computer Organization |
|
| 2 | - |
|
| 3 | -# PROJECT: btt0 |
|
| 4 | - |
|
| 5 | -## OBJECTIVE |
|
| 6 | - |
|
| 7 | -Our explorations this semester will target the `Vircon32` fantasy |
|
| 8 | -console, an Open Source 32-bit emulator with development toolchain. |
|
| 9 | - |
|
| 10 | -The purpose of this project is to ensure everyone in the class gets the |
|
| 11 | -latest version of `Vircon32` built, installed, and running on their local |
|
| 12 | -development system. |
|
| 13 | - |
|
| 14 | -## REFERENCE |
|
| 15 | - |
|
| 16 | -Be sure to check out the [Vircon32 Assembly Reference](https://github.com/g7n-org/v32ref), especially its [Internet Resources](https://github.com/g7n-org/v32ref?tab=readme-ov-file#internet-resources) section to facilitate finding the needed `Vircon32` archives. |
|
| 17 | - |
|
| 18 | -## TASK |
|
| 19 | - |
|
| 20 | -Download the latest SOURCE CODE release of the `Vircon32` |
|
| 21 | -**ComputerSoftware** repository (latest version as of writing is |
|
| 22 | -**v25.10.29**). Either grab that (or any newer release), or clone the |
|
| 23 | -**ComputerSoftware.git** repository (which should be as new or newer than |
|
| 24 | -the latest release). |
|
| 25 | - |
|
| 26 | -NOTE: If you are running a release OLDER than **v25.10.29** you will want |
|
| 27 | -to update, as there were some important bugs resolved and updates with |
|
| 28 | -this release. |
|
| 29 | - |
|
| 30 | -Please do **NOT** place the `Vircon32` SOURCE CODE in any of existing |
|
| 31 | -repository (not your SEMESTER repo, not the class repo). Place it |
|
| 32 | -someplace entirely independent of version control. |
|
| 33 | - |
|
| 34 | -Reading the provided `README`, go through the build process (installing |
|
| 35 | -any needed supporting packages) to build `Vircon32` FROM SOURCE and then |
|
| 36 | -INSTALL it on your local system. |
|
| 37 | - |
|
| 38 | -Once you have a working, installed `Vircon32` (**DesktopEmulator** AND |
|
| 39 | -**DevTools**), grab the "Hello, World!" C example available on lab46 as a |
|
| 40 | -grabit, and test things out (build it, run the cartridge, verify it all |
|
| 41 | -works). |
|
| 42 | - |
|
| 43 | -Then, modify that "Hello, World!" C program in some meaningful way, |
|
| 44 | -verify it still builds, runs, and works as expected. |
|
| 45 | - |
|
| 46 | -You will be submitting that `C` SOURCE file, the supporting `XML` file, |
|
| 47 | -along with the built `v32` cartridge file. |
|
| 48 | - |
|
| 49 | -### SUBMISSION CRITERIA |
|
| 50 | - |
|
| 51 | -``` |
|
| 52 | -52:btt0:final tally of results (52/52) |
|
| 53 | -*:btt0:grabit of project files before Sunday prior to due date [13/13] |
|
| 54 | -*:btt0:adequate modification of source code beyond default state [13/13] |
|
| 55 | -*:btt0:code compiles cleanly, cartridge builds with no errors [13/13] |
|
| 56 | -*:btt0:the C SOURCE, XML, and v32 cartridge files submitted [13/13] |
|
| 57 | -``` |
|
| 58 | - |
|
| 59 | -Additionally: |
|
| 60 | - * Solutions not abiding by spirit of project will be subject to a 25% overall deduction |
|
| 61 | - * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction |
|
| 62 | - * Solutions not utilizing indentation to promote scope and clarity will be subject to a 25% overall deduction |
|
| 63 | - * Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction |
haas/fall2026/comporg/projects/dap0.md
| ... | ... | @@ -1,100 +0,0 @@ |
| 1 | -# CSCS2650 Computer Organization |
|
| 2 | - |
|
| 3 | -# PROJECT: DEBUG A PROGRAM (dap0) |
|
| 4 | - |
|
| 5 | -## OBJECTIVE |
|
| 6 | - |
|
| 7 | -Create a simple debugging output routine to help investigate issues in |
|
| 8 | -program logic. |
|
| 9 | - |
|
| 10 | -## TASK |
|
| 11 | - |
|
| 12 | -Implement a Vircon32 assembly subroutines that displays the 32-bit |
|
| 13 | -hexadecimal value of an indicated item to the display at a provided set |
|
| 14 | -of coordinates (supplied via the stack). |
|
| 15 | - |
|
| 16 | -Specifically, you want to call the subroutine **`_debug`**, and place it |
|
| 17 | -in a file called **`debug.s`** so that you can **`%include`** it as |
|
| 18 | -needed in your debugging efforts. |
|
| 19 | - |
|
| 20 | -It is written entirely in Vircon32 assembly language, using no |
|
| 21 | -compiler-generated routines from the Vircon32 API (no **print**, no |
|
| 22 | -**itoa**)- you want to create whatever supporting routines are needed. |
|
| 23 | - |
|
| 24 | -Pass 3 parameters via the stack: |
|
| 25 | - |
|
| 26 | - * value to display (first added) |
|
| 27 | - * X coordinate (second added) |
|
| 28 | - * Y coordinate (third added) |
|
| 29 | - |
|
| 30 | -Be sure to preserve all register and important system states (ie whatever |
|
| 31 | -was going on before the call to debug must be preserved: save and |
|
| 32 | -restore) |
|
| 33 | - |
|
| 34 | -Make use of the stack instructions **PUSH** and **POP**, although all |
|
| 35 | -stack access does not have to exclusively be via **PUSH** and **POP**. |
|
| 36 | - |
|
| 37 | -Utilize bitwise logic in the process to convert each nibble of data into |
|
| 38 | -the value/region you will display |
|
| 39 | - |
|
| 40 | -Try it out on some existing code, posting a screenshot (with context) to |
|
| 41 | -the class discord. |
|
| 42 | - |
|
| 43 | -Provide usage instructions (what needs to be added to existing code to |
|
| 44 | -use your debug subroutine) |
|
| 45 | - |
|
| 46 | -## SUBMISSION |
|
| 47 | - |
|
| 48 | -To be successful in this project, the following criteria (or their |
|
| 49 | -equivalent) must be met: |
|
| 50 | - |
|
| 51 | - * Project must be submit on time, by the deadline. |
|
| 52 | - * Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline. |
|
| 53 | - * Processing must be correct based on input given and output requested |
|
| 54 | - * Output, if applicable, must be correct based on values input |
|
| 55 | - * Code must be nicely and consistently indented and aligned |
|
| 56 | - * Code must be consistently written, to strive for readability from having a consistent style throughout |
|
| 57 | - * Code must be commented |
|
| 58 | - * Sufficient comments explaining the point of provided logic **MUST** be present |
|
| 59 | - * Track/version the source code in your private semester repository |
|
| 60 | - * Submit a copy of your source code to me using the **submit** tool by the deadline. |
|
| 61 | - |
|
| 62 | -## SUBMIT TOOL USAGE |
|
| 63 | - |
|
| 64 | -Let's say you have completed work on the project, and are ready to |
|
| 65 | -submit, you would do the following (once on LAB46, with all your data |
|
| 66 | -present): |
|
| 67 | - |
|
| 68 | -``` |
|
| 69 | -lab46:~/src/SEMESTER/comporg/dap0$ make submit |
|
| 70 | -``` |
|
| 71 | - |
|
| 72 | -You should get some sort of confirmation indicating successful submission |
|
| 73 | -if all went according to plan. If not, check for typos and or locational |
|
| 74 | -mismatches. |
|
| 75 | - |
|
| 76 | -### RUBRIC |
|
| 77 | - |
|
| 78 | -I'll be evaluating the project based on the following criteria: |
|
| 79 | - |
|
| 80 | -``` |
|
| 81 | -182:dap0:final tally of results (182/182) |
|
| 82 | -*:dap0:submitted file called debug.s or debug.asm [13/13] |
|
| 83 | -*:dap0:subroutine is called _debug or __debug [13/13] |
|
| 84 | -*:dap0:code assembles with no warnings or errors [13/13] |
|
| 85 | -*:dap0:parameters obtained via the stack [26/26] |
|
| 86 | -*:dap0:register states preserved across call [13/13] |
|
| 87 | -*:dap0:debug subroutine uses the stack [26/26] |
|
| 88 | -*:dap0:process utilizes bitwise logic [26/26] |
|
| 89 | -*:dap0:screenshot of subroutine in action to discord [13/13] |
|
| 90 | -*:dap0:code contains usage instructions in comments [13/13] |
|
| 91 | -*:dap0:output contains display of contents at coordinates [13/13] |
|
| 92 | -*:dap0:functionality is correct and to specifications [13/13] |
|
| 93 | -``` |
|
| 94 | - |
|
| 95 | -### ADDITIONALLY |
|
| 96 | - |
|
| 97 | - * Solutions not abiding by spirit of project will be subject to a 50% overall deduction |
|
| 98 | - * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction |
|
| 99 | - * Solutions not utilizing indentation to promote scope and clarity or otherwise maintaining consistency in code style and presentation will be subject to a 25% overall deduction |
|
| 100 | - * Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction |
haas/fall2026/comporg/projects/dap1.md
| ... | ... | @@ -1,106 +0,0 @@ |
| 1 | -# CSCS2650 Computer Organization |
|
| 2 | - |
|
| 3 | -# PROJECT: DEBUG A PROGRAM (dap1) |
|
| 4 | - |
|
| 5 | -## OBJECTIVE |
|
| 6 | - |
|
| 7 | -Extend our debugging infrastructure with the creation of a |
|
| 8 | -**`_debugmemory`** subroutine. |
|
| 9 | - |
|
| 10 | -## TASK |
|
| 11 | - |
|
| 12 | -Implement a Vircon32 assembly subroutine that uses your dap0 **`_debug`** |
|
| 13 | -subroutine. Your task is to display a range of memory addresses, along |
|
| 14 | -with their hexadecimal contents. |
|
| 15 | - |
|
| 16 | -The starting and ending memory addresses are given as parameters via the |
|
| 17 | -stack. |
|
| 18 | - |
|
| 19 | -Specifically, you want to call the subroutine **`_debugmemory`**, and |
|
| 20 | -place it in your existing **debug.s** file so that both can be |
|
| 21 | -**%include**'ed as needed in debugging efforts. |
|
| 22 | - |
|
| 23 | -It will call **`_debug`** in the process of operation (let **`_debug`** |
|
| 24 | -handle the display of information) |
|
| 25 | - |
|
| 26 | -Of course: written entirely in Vircon32 assembly language, using no |
|
| 27 | -compiler-generated routines from the Vircon32 API (no **print**, no |
|
| 28 | -**itoa**, only the routines YOU write) |
|
| 29 | - |
|
| 30 | -You will pass 2 parameters via the stack: |
|
| 31 | - |
|
| 32 | - * starting address (first pushed) |
|
| 33 | - * ending address (second pushed) |
|
| 34 | - |
|
| 35 | -You want to make sure all register states preserved (ie whatever was |
|
| 36 | -going on before the call to debug must be preserved: save and restore) |
|
| 37 | - |
|
| 38 | -Make use of the stack instructions **PUSH** and **POP**, although all |
|
| 39 | -stack access does not have to exclusively be via **PUSH** and **POP** |
|
| 40 | - |
|
| 41 | -Try it out on some existing code, posting a screenshot (with context) to |
|
| 42 | -the class discord |
|
| 43 | - |
|
| 44 | -In your code (via comments), provide usage instructions (what needs to be |
|
| 45 | -added to existing code to use your debug subroutine) |
|
| 46 | - |
|
| 47 | -Modify **`_debug`** to "return" an updated X and Y coordinate (by |
|
| 48 | -updating the value stored in the stack), so that **_debugmemory** can |
|
| 49 | -**POP** and use it in its own processes. |
|
| 50 | - |
|
| 51 | -Make sure to display any leading zeros in your output. |
|
| 52 | - |
|
| 53 | -## SUBMISSION |
|
| 54 | - |
|
| 55 | -To be successful in this project, the following criteria (or their |
|
| 56 | -equivalent) must be met: |
|
| 57 | - |
|
| 58 | - * Project must be submit on time, by the deadline. |
|
| 59 | - * Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline. |
|
| 60 | - * Processing must be correct based on input given and output requested |
|
| 61 | - * Output, if applicable, must be correct based on values input |
|
| 62 | - * Code must be nicely and consistently indented and aligned |
|
| 63 | - * Code must be consistently written, to strive for readability from having a consistent style throughout |
|
| 64 | - * Code must be commented |
|
| 65 | - * Sufficient comments explaining the point of provided logic **MUST** be present |
|
| 66 | - * Track/version the source code in your private semester repository |
|
| 67 | - * Submit a copy of your source code to me using the **submit** tool by the deadline. |
|
| 68 | - |
|
| 69 | -## SUBMIT TOOL USAGE |
|
| 70 | - |
|
| 71 | -Let's say you have completed work on the project, and are ready to |
|
| 72 | -submit, you would do the following (once on LAB46, with all your data |
|
| 73 | -present): |
|
| 74 | - |
|
| 75 | -``` |
|
| 76 | -lab46:~/src/SEMESTER/comporg/dap1$ make submit |
|
| 77 | -``` |
|
| 78 | - |
|
| 79 | -You should get some sort of confirmation indicating successful submission |
|
| 80 | -if all went according to plan. If not, check for typos and or locational |
|
| 81 | -mismatches. |
|
| 82 | - |
|
| 83 | -### RUBRIC |
|
| 84 | - |
|
| 85 | -I'll be evaluating the project based on the following criteria: |
|
| 86 | - |
|
| 87 | -``` |
|
| 88 | -234:dap1:final tally of results (234/234) |
|
| 89 | -*:dap1:submitted file called debug.s or debug.asm [13/13] |
|
| 90 | -*:dap1:subroutine is called _debugmemory or __debugmemory [13/13] |
|
| 91 | -*:dap1:code assembles with no warnings or errors [26/26] |
|
| 92 | -*:dap1:parameters obtained, modified in the stack [26/26] |
|
| 93 | -*:dap1:register states preserved across call [26/26] |
|
| 94 | -*:dap1:debugging subroutines use stack instructions [26/26] |
|
| 95 | -*:dap1:screenshot of subroutine in action to DISCORD [26/26] |
|
| 96 | -*:dap1:code contains usage instructions in comments [26/26] |
|
| 97 | -*:dap1:output contains display of addresses, contents [26/26] |
|
| 98 | -*:dap1:functionality is correct and to specifications [26/26] |
|
| 99 | -``` |
|
| 100 | - |
|
| 101 | -### ADDITIONALLY |
|
| 102 | - |
|
| 103 | - * Solutions not abiding by spirit of project will be subject to a 50% overall deduction |
|
| 104 | - * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction |
|
| 105 | - * Solutions not utilizing indentation to promote scope and clarity or otherwise maintaining consistency in code style and presentation will be subject to a 25% overall deduction |
|
| 106 | - * Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction |
haas/fall2026/comporg/projects/dap2.md
| ... | ... | @@ -1,97 +0,0 @@ |
| 1 | -# CSCS2650 Computer Organization |
|
| 2 | - |
|
| 3 | -# PROJECT: DEBUG A PROGRAM (dap2) |
|
| 4 | - |
|
| 5 | -## OBJECTIVE |
|
| 6 | - |
|
| 7 | -Extend our debugging infrastructure with the creation of a |
|
| 8 | -**`debugregs`** subroutine. |
|
| 9 | - |
|
| 10 | -## TASK |
|
| 11 | - |
|
| 12 | -Implement a Vircon32 assembly subroutine that uses your dap0 routine. |
|
| 13 | -subroutine. Your task is to display the set of CPU registers (R0-R13), |
|
| 14 | -along with their hexadecimal contents. |
|
| 15 | - |
|
| 16 | -No parameters need to be given to this debugging subroutine, since it |
|
| 17 | -will always be displaying this same range of registers. |
|
| 18 | - |
|
| 19 | -Specifically, be sure to: |
|
| 20 | - |
|
| 21 | -... call the subroutine **`debugregs`** or **`_debugregisters`**, and |
|
| 22 | -place it in your existing **debug.s** file so that both (and also |
|
| 23 | -**_debugmemory** from dap1) can be **%include**'ed as needed in debugging |
|
| 24 | -efforts. |
|
| 25 | - |
|
| 26 | -Make sure it that it calls and makes use of your original **_debug** |
|
| 27 | -in the process of operation (let **_debug** handle the display of |
|
| 28 | -information). |
|
| 29 | - |
|
| 30 | -That it is written entirely in Vircon32 assembly language, using no |
|
| 31 | -compiler-generated routines from the Vircon32 API (no **print**, no |
|
| 32 | -**itoa**) |
|
| 33 | - |
|
| 34 | -As stated above: no parameters need to be passed in to use this routine. |
|
| 35 | - |
|
| 36 | -Pertaining to the registers, make sure your routine preserves existing |
|
| 37 | -register states, so that whatever was going on before the call to debug |
|
| 38 | -is saved, so you can restore it upon completion). |
|
| 39 | - |
|
| 40 | -Display registers R0-R7 in the left column, starting at or near the top |
|
| 41 | -left of the screen, with R8-R13 in the right column, separated by an |
|
| 42 | -appropriate distance. |
|
| 43 | - |
|
| 44 | -## SUBMISSION |
|
| 45 | - |
|
| 46 | -To be successful in this project, the following criteria (or their |
|
| 47 | -equivalent) must be met: |
|
| 48 | - |
|
| 49 | - * Project must be submit on time, by the deadline. |
|
| 50 | - * Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline. |
|
| 51 | - * Processing must be correct based on input given and output requested |
|
| 52 | - * Output, if applicable, must be correct based on values input |
|
| 53 | - * Code must be nicely and consistently indented and aligned |
|
| 54 | - * Code must be consistently written, to strive for readability from having a consistent style throughout |
|
| 55 | - * Code must be commented |
|
| 56 | - * Sufficient comments explaining the point of provided logic **MUST** be present |
|
| 57 | - * Track/version the source code in your private semester repository |
|
| 58 | - * Submit a copy of your source code to me using the **submit** tool by the deadline. |
|
| 59 | - |
|
| 60 | -## SUBMIT TOOL USAGE |
|
| 61 | - |
|
| 62 | -Let's say you have completed work on the project, and are ready to |
|
| 63 | -submit, you would do the following (once on LAB46, with all your data |
|
| 64 | -present): |
|
| 65 | - |
|
| 66 | -``` |
|
| 67 | -lab46:~/src/SEMESTER/comporg/dap1$ make submit |
|
| 68 | -``` |
|
| 69 | - |
|
| 70 | -You should get some sort of confirmation indicating successful submission |
|
| 71 | -if all went according to plan. If not, check for typos and or locational |
|
| 72 | -mismatches. |
|
| 73 | - |
|
| 74 | -### RUBRIC |
|
| 75 | - |
|
| 76 | -I'll be evaluating the project based on the following criteria: |
|
| 77 | - |
|
| 78 | -``` |
|
| 79 | -286:dap2:final tally of results (286/286) |
|
| 80 | -*:dap2:submitted file called debug.s or debug.asm [26/26] |
|
| 81 | -*:dap2:subroutine is called _debugregs or __debugregisters [26/26] |
|
| 82 | -*:dap2:code assembles with no warnings or errors [26/26] |
|
| 83 | -*:dap2:register states preserved across call [26/26] |
|
| 84 | -*:dap2:calls upon original _debug to do data output [26/26] |
|
| 85 | -*:dap2:output contains display of registers, contents [52/52] |
|
| 86 | -*:dap2:screenshot of subroutine in action to DISCORD [26/26] |
|
| 87 | -*:dap2:code contains usage instructions in comments [26/26] |
|
| 88 | -*:dap2:output contains display of addresses, contents [26/26] |
|
| 89 | -*:dap2:functionality is correct and to specifications [26/26] |
|
| 90 | -``` |
|
| 91 | - |
|
| 92 | -### ADDITIONALLY |
|
| 93 | - |
|
| 94 | - * Solutions not abiding by spirit of project will be subject to a 50% overall deduction |
|
| 95 | - * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction |
|
| 96 | - * Solutions not utilizing indentation to promote scope and clarity or otherwise maintaining consistency in code style and presentation will be subject to a 25% overall deduction |
|
| 97 | - * Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction |
haas/fall2026/comporg/projects/gamE.md
| ... | ... | @@ -1,42 +0,0 @@ |
| 1 | -# CSCS2650 Computer Organization |
|
| 2 | - |
|
| 3 | -# PROJECT: GAME SNAPSHOT (gamE) |
|
| 4 | - |
|
| 5 | -## OBJECTIVE |
|
| 6 | - |
|
| 7 | -Snapshot of progress on the EoCE game |
|
| 8 | - |
|
| 9 | -## TASK |
|
| 10 | - |
|
| 11 | -As per the EoCE, we are implementing a game in Vircon32 assembly |
|
| 12 | -language; while the game is not expected to be done by this point, active |
|
| 13 | -participation in its development is to be underway. |
|
| 14 | - |
|
| 15 | -Commits and contributions will be looked at to make sure everyone is |
|
| 16 | -pulling their own weight. |
|
| 17 | - |
|
| 18 | -Having some sort of viewable / playable thing wouldn't hurt (although |
|
| 19 | -that depends on overall development progress). |
|
| 20 | - |
|
| 21 | -## SUBMIT |
|
| 22 | - |
|
| 23 | -While no format submission is necessary, be sure that your repository |
|
| 24 | -activity is such that it can be clearly discerned that you are active and |
|
| 25 | -documenting of your contributions and progress. |
|
| 26 | - |
|
| 27 | -## RUBRIC |
|
| 28 | - |
|
| 29 | -I'll be evaluating the project based on the following criteria: |
|
| 30 | - |
|
| 31 | -``` |
|
| 32 | -312:gamE:final tally of results (312/312) |
|
| 33 | -*:gamE:multiple commits pertaining to the game in class repo [156/156] |
|
| 34 | -*:gamE:contributions documented commit messages [156/156] |
|
| 35 | -``` |
|
| 36 | - |
|
| 37 | -### ADDITIONALLY |
|
| 38 | - |
|
| 39 | - * Solutions not abiding by spirit of project will be subject to a 50% overall deduction |
|
| 40 | - * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction |
|
| 41 | - * Solutions not utilizing indentation to promote scope and clarity or otherwise maintaining consistency in code style and presentation will be subject to a 25% overall deduction |
|
| 42 | - * Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction |
haas/fall2026/comporg/projects/mab0.md
| ... | ... | @@ -1,77 +0,0 @@ |
| 1 | -# CSCS2650 Computer Organization |
|
| 2 | - |
|
| 3 | -# PROJECT: MOVE A BLOCK (mab0) |
|
| 4 | - |
|
| 5 | -## OBJECTIVE |
|
| 6 | - |
|
| 7 | -This week we turn our attention to starting to write (from scratch) code |
|
| 8 | -in Vircon32 assembly language. |
|
| 9 | - |
|
| 10 | -We will start with the most basic of ingredients: render a block on the |
|
| 11 | -screen, and allow it to move via the gamepad. |
|
| 12 | - |
|
| 13 | -## GRABIT |
|
| 14 | - |
|
| 15 | -There is a GRABIT available, containing some skeleton code, an XML file, |
|
| 16 | -and a Makefile, that will facilitate building the cartridge. |
|
| 17 | - |
|
| 18 | -## TASK |
|
| 19 | - |
|
| 20 | -Implemented from scratch, in assembly: |
|
| 21 | - |
|
| 22 | - * select the loaded texture |
|
| 23 | - * select 4 objects (regions) to display |
|
| 24 | - * display the object on the screen, allowing for its control via the gamepads |
|
| 25 | - * each gamepad direction should display a different object |
|
| 26 | - * implement bounds checks on the screen edges, preventing the object from moving off the screen (or performing a wraparound, as desired) |
|
| 27 | - |
|
| 28 | -## SUBMISSION |
|
| 29 | - |
|
| 30 | -To be successful in this project, the following criteria (or their |
|
| 31 | -equivalent) must be met: |
|
| 32 | - |
|
| 33 | - * Project must be submit on time, by the deadline. |
|
| 34 | - * Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline. |
|
| 35 | - * Processing must be correct based on input given and output requested |
|
| 36 | - * Output, if applicable, must be correct based on values input |
|
| 37 | - * Code must be nicely and consistently indented and aligned |
|
| 38 | - * Code must be consistently written, to strive for readability from having a consistent style throughout |
|
| 39 | - * Code must be commented |
|
| 40 | - * Sufficient comments explaining the point of provided logic **MUST** be present |
|
| 41 | - * Track/version the source code in your private semester repository |
|
| 42 | - * Submit a copy of your source code to me using the **submit** tool by the deadline. |
|
| 43 | - |
|
| 44 | -## SUBMIT TOOL USAGE |
|
| 45 | - |
|
| 46 | -Let's say you have completed work on the project, and are ready to |
|
| 47 | -submit, you would do the following (once on LAB46, with all your data |
|
| 48 | -present): |
|
| 49 | - |
|
| 50 | -``` |
|
| 51 | -lab46:~/src/SEMESTER/DESIG/mab0$ make submit |
|
| 52 | -``` |
|
| 53 | - |
|
| 54 | -You should get some sort of confirmation indicating successful submission |
|
| 55 | -if all went according to plan. If not, check for typos and or locational |
|
| 56 | -mismatches. |
|
| 57 | - |
|
| 58 | -### RUBRIC |
|
| 59 | - |
|
| 60 | -I'll be evaluating the project based on the following criteria: |
|
| 61 | - |
|
| 62 | -``` |
|
| 63 | -78:mab0:final tally of results (78/78) |
|
| 64 | -*:mab0:code written from scratch in Vircon32 assembly [13/13] |
|
| 65 | -*:mab0:code assembles cleanly, with no warnings [13/13] |
|
| 66 | -*:mab0:submit code, XML file, and v32 cartridge [13/13] |
|
| 67 | -*:mab0:program displays one of four regions based on direction [13/13] |
|
| 68 | -*:mab0:program reads the gamepad to adjust position of region [13/13] |
|
| 69 | -*:mab0:region when encountering screen edge will stop or wrap [13/13] |
|
| 70 | -``` |
|
| 71 | - |
|
| 72 | -### ADDITIONALLY |
|
| 73 | - |
|
| 74 | - * Solutions not abiding by spirit of project will be subject to a 50% overall deduction |
|
| 75 | - * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction |
|
| 76 | - * Solutions not utilizing indentation to promote scope and clarity or otherwise maintaining consistency in code style and presentation will be subject to a 25% overall deduction |
|
| 77 | - * Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction |
haas/fall2026/comporg/projects/mab1.md
| ... | ... | @@ -1,81 +0,0 @@ |
| 1 | -# CSCS2650 Computer Organization |
|
| 2 | - |
|
| 3 | -# PROJECT: MOVE A BLOCK (mab1) |
|
| 4 | - |
|
| 5 | -## OBJECTIVE |
|
| 6 | - |
|
| 7 | -This week we extend upon our simple block movement program, turning it |
|
| 8 | -into a fully functional one-player `PONG` game, hand-written in Vircon32 |
|
| 9 | -Assembly Language. |
|
| 10 | - |
|
| 11 | -## GRABIT |
|
| 12 | - |
|
| 13 | -There is a GRABIT available, containing some skeleton code, an XML file, |
|
| 14 | -and a Makefile, that will facilitate building the cartridge. |
|
| 15 | - |
|
| 16 | -## TASK |
|
| 17 | - |
|
| 18 | -Implemented from scratch, in assembly: |
|
| 19 | - |
|
| 20 | - * have texture(s), regions for a paddle and a ball |
|
| 21 | - * have the ball rebound, continuing in one direction until it hits a bound |
|
| 22 | - * bounds can be the top, bottom, or side of the screen (which it will reflect off of) |
|
| 23 | - * bounds can also be the paddle (which it will also reflect off of) |
|
| 24 | - * paddle bounds are the edges of the screen (prevent it from getting lost off the screen) |
|
| 25 | - * if the paddle fails to deflect the ball and the ball moves beyond the screen, reset the ball and start again |
|
| 26 | - * display the paddle and ball on the screen, allowing paddle control via the gamepad |
|
| 27 | - * two gamepad directions will be necessary for moving the paddle |
|
| 28 | - * implement a simple scoring system and display |
|
| 29 | - |
|
| 30 | -## SUBMISSION |
|
| 31 | - |
|
| 32 | -To be successful in this project, the following criteria (or their |
|
| 33 | -equivalent) must be met: |
|
| 34 | - |
|
| 35 | - * Project must be submit on time, by the deadline. |
|
| 36 | - * Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline. |
|
| 37 | - * Processing must be correct based on input given and output requested |
|
| 38 | - * Output, if applicable, must be correct based on values input |
|
| 39 | - * Code must be nicely and consistently indented and aligned |
|
| 40 | - * Code must be consistently written, to strive for readability from having a consistent style throughout |
|
| 41 | - * Code must be commented |
|
| 42 | - * Sufficient comments explaining the point of provided logic **MUST** be present |
|
| 43 | - * Track/version the source code in your private semester repository |
|
| 44 | - * Submit a copy of your source code to me using the **submit** tool by the deadline. |
|
| 45 | - |
|
| 46 | -## SUBMIT TOOL USAGE |
|
| 47 | - |
|
| 48 | -Let's say you have completed work on the project, and are ready to |
|
| 49 | -submit, you would do the following (once on LAB46, with all your data |
|
| 50 | -present): |
|
| 51 | - |
|
| 52 | -``` |
|
| 53 | -lab46:~/src/SEMESTER/DESIG/mab1$ make submit |
|
| 54 | -``` |
|
| 55 | - |
|
| 56 | -You should get some sort of confirmation indicating successful submission |
|
| 57 | -if all went according to plan. If not, check for typos and or locational |
|
| 58 | -mismatches. |
|
| 59 | - |
|
| 60 | -### RUBRIC |
|
| 61 | - |
|
| 62 | -I'll be evaluating the project based on the following criteria: |
|
| 63 | - |
|
| 64 | -``` |
|
| 65 | -104:mab1:final tally of results (104/104) |
|
| 66 | -*:mab1:code assembles cleanly, with no warnings [13/13] |
|
| 67 | -*:mab1:submit code, XML file, and v32 cartridge [13/13] |
|
| 68 | -*:mab1:paddle displays, position adjusted by gamepad [13/13] |
|
| 69 | -*:mab1:paddle is bounded by screen edges [13/13] |
|
| 70 | -*:mab1:paddle can deflect ball [13/13] |
|
| 71 | -*:mab1:ball moves automatically, resets if it goes off screen [13/13] |
|
| 72 | -*:mab1:ball deflects off screen edges [13/13] |
|
| 73 | -*:mab1:game keeps and displays score [13/13] |
|
| 74 | -``` |
|
| 75 | - |
|
| 76 | -### ADDITIONALLY |
|
| 77 | - |
|
| 78 | - * Solutions not abiding by spirit of project will be subject to a 50% overall deduction |
|
| 79 | - * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction |
|
| 80 | - * Solutions not utilizing indentation to promote scope and clarity or otherwise maintaining consistency in code style and presentation will be subject to a 25% overall deduction |
|
| 81 | - * Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction |
haas/fall2026/comporg/projects/mab2.md
| ... | ... | @@ -1,94 +0,0 @@ |
| 1 | -# CSCS2650 Computer Organization |
|
| 2 | - |
|
| 3 | -# PROJECT: MAKE A BREAKOUT (mab2) |
|
| 4 | - |
|
| 5 | -## OBJECTIVE |
|
| 6 | - |
|
| 7 | -Now, take your `PONG` game, and transition it into a `BREAKOUT` game, |
|
| 8 | -where in addition to the paddle and ball, there are bricks present on the |
|
| 9 | -screen (either in rows or some pattern). The ball when colliding with a |
|
| 10 | -brick will rebound off of it (just as if it were a wall or paddle), but |
|
| 11 | -cause the brick to disappear. |
|
| 12 | - |
|
| 13 | -## GRABIT |
|
| 14 | - |
|
| 15 | -There is a GRABIT available, containing some skeleton code, an XML file, |
|
| 16 | -and a Makefile, that will facilitate building the cartridge. |
|
| 17 | - |
|
| 18 | -## TASK |
|
| 19 | - |
|
| 20 | -Implemented from scratch, in assembly: |
|
| 21 | - |
|
| 22 | - * use more than just the BIOS texture for graphics |
|
| 23 | - * have texture(s), regions for a paddle, brick(s), and a ball |
|
| 24 | - * have the ball rebound, continuing in one direction until it hits a bound |
|
| 25 | - * bounds can be the top, bottom, or side of the screen (which it will reflect off of) |
|
| 26 | - * bounds can also be the paddle (which it will also reflect off of) |
|
| 27 | - * bounds can be any of the bricks (which it will reflect off it, causing the brick to disappear) |
|
| 28 | - * paddle bounds are the edges of the screen (prevent it from getting lost off the screen) |
|
| 29 | - * if the paddle fails to deflect the ball and the ball moves beyond the screen, reset the ball and start again |
|
| 30 | - * display the paddle and ball on the screen, allowing paddle control via the gamepad |
|
| 31 | - * two gamepad directions will be necessary for moving the paddle |
|
| 32 | - * display the bricks on the screen, allowing for collision with the ball (if present/visible) |
|
| 33 | - * implement a simple scoring system and display (hitting and destroying a brick) |
|
| 34 | - |
|
| 35 | -Feel free to add some frills: |
|
| 36 | - |
|
| 37 | - * power-ups |
|
| 38 | - * different brick colors |
|
| 39 | - * sound effects (ball hitting paddle/bricks) |
|
| 40 | - |
|
| 41 | -## SUBMISSION |
|
| 42 | - |
|
| 43 | -To be successful in this project, the following criteria (or their |
|
| 44 | -equivalent) must be met: |
|
| 45 | - |
|
| 46 | - * Project must be submit on time, by the deadline. |
|
| 47 | - * Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline. |
|
| 48 | - * Processing must be correct based on input given and output requested |
|
| 49 | - * Output, if applicable, must be correct based on values input |
|
| 50 | - * Code must be nicely and consistently indented and aligned |
|
| 51 | - * Code must be consistently written, to strive for readability from having a consistent style throughout |
|
| 52 | - * Code must be commented |
|
| 53 | - * Sufficient comments explaining the point of provided logic **MUST** be present |
|
| 54 | - * Track/version the source code in your private semester repository |
|
| 55 | - * Submit a copy of your source code to me using the **submit** tool by the deadline. |
|
| 56 | - |
|
| 57 | -## SUBMIT TOOL USAGE |
|
| 58 | - |
|
| 59 | -Let's say you have completed work on the project, and are ready to |
|
| 60 | -submit, you would do the following (once on LAB46, with all your data |
|
| 61 | -present): |
|
| 62 | - |
|
| 63 | -``` |
|
| 64 | -lab46:~/src/SEMESTER/DESIG/mab2$ make submit |
|
| 65 | -``` |
|
| 66 | - |
|
| 67 | -You should get some sort of confirmation indicating successful submission |
|
| 68 | -if all went according to plan. If not, check for typos and or locational |
|
| 69 | -mismatches. |
|
| 70 | - |
|
| 71 | -### RUBRIC |
|
| 72 | - |
|
| 73 | -I'll be evaluating the project based on the following criteria: |
|
| 74 | - |
|
| 75 | -``` |
|
| 76 | -130:mab2:final tally of results (130/130) |
|
| 77 | -*:mab2:post screenshot or short video of game in class channel [13/13] |
|
| 78 | -*:mab2:code assembles cleanly, with no warnings [13/13] |
|
| 79 | -*:mab2:submit code, XML file, and v32 cartridge [13/13] |
|
| 80 | -*:mab2:paddle displays, position adjusted by gamepad [13/13] |
|
| 81 | -*:mab2:paddle is bounded by screen edges [13/13] |
|
| 82 | -*:mab2:paddle can deflect ball [13/13] |
|
| 83 | -*:mab2:ball moves automatically, resets if it goes off screen [13/13] |
|
| 84 | -*:mab2:ball deflects off screen edges, paddle, or bricks [13/13] |
|
| 85 | -*:mab2:brick disappears upon collision with ball [13/13] |
|
| 86 | -*:mab2:game keeps and displays score [13/13] |
|
| 87 | -``` |
|
| 88 | - |
|
| 89 | -### ADDITIONALLY |
|
| 90 | - |
|
| 91 | - * Solutions not abiding by spirit of project will be subject to a 50% overall deduction |
|
| 92 | - * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction |
|
| 93 | - * Solutions not utilizing indentation to promote scope and clarity or otherwise maintaining consistency in code style and presentation will be subject to a 25% overall deduction |
|
| 94 | - * Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction |
haas/fall2026/comporg/projects/pnc0.md
| ... | ... | @@ -1,95 +0,0 @@ |
| 1 | -# CSCS2650 Computer Organization |
|
| 2 | - |
|
| 3 | -# PROJECT: PRIME NUMBER COMPUTATIONS (pnc0) |
|
| 4 | - |
|
| 5 | -## OBJECTIVE |
|
| 6 | - |
|
| 7 | -Start exploring algorithm/implementation comparison and optimization with |
|
| 8 | -respect to various approaches of computing prime numbers. |
|
| 9 | - |
|
| 10 | -## GRABIT |
|
| 11 | - |
|
| 12 | -There is a GRABIT available, containing some skeleton code, an XML file, |
|
| 13 | -and a Makefile, that will facilitate building the cartridge. |
|
| 14 | - |
|
| 15 | -## TASK |
|
| 16 | - |
|
| 17 | -Implement two separate, independent programs, one in Vircon32 C, and |
|
| 18 | -other in Vircon32 assembly, that: |
|
| 19 | - |
|
| 20 | - * performs a brute force/"trial-by-division" process on a range of values, 2-N |
|
| 21 | - * the values for N are some sufficient quantity still small enough to fit within an integer |
|
| 22 | - * the values for N will have some relationship (powers of 2, powers of 10/magnitudes) that ideally can be computed via some loop/equation (ie 1024, 2048, 4098, 8192, 16384, etc.) |
|
| 23 | - * the values for N have some sufficient quantity large enough where its upper set values will take some amount of time to compute (fast enough to have some relatable value, not to exceed 16 seconds) |
|
| 24 | - * for each value of N: |
|
| 25 | - * display that N/upper bound |
|
| 26 | - * tally: display the number of primes identified (2-N) |
|
| 27 | - * display the amount of time taken to do the total computation for that value of N, out to 3 decimal places |
|
| 28 | - * display each N value and result in an arrangement on the screen that can be clearly identified and read by the viewer |
|
| 29 | - * timing should go out, as reasonable, to a few decimal places, and should be consistent across all attempts. |
|
| 30 | - * timing is on the computational process only, not the display of results. |
|
| 31 | - * create a graph (using some external tool) that plots the performance of the C and assembly implementations working on identical workloads of this brute force algorithm according to the various N's and the time it took. Share your graph of your results on the class discord and on the project documentation page. |
|
| 32 | - * a line graph is the suggested best candidate |
|
| 33 | - * the assembly version is to be done entirely by hand, and make zero use of C API functions. Just the usual in/out stuff we've been doing. |
|
| 34 | - * this will not be an interactive program: it starts up, does its thing, outputs it results, then halts. |
|
| 35 | - * this brute force implementation is meant as our baseline. As such, it should not contain any optimizations or attempted improvements. As we progress through `pnc1` and `pnc2`, this base implementation should be the least efficient. This is important, to allow us to realize the impact of various improvements we will be making in those upcoming projects. |
|
| 36 | - |
|
| 37 | -## REFERENCE |
|
| 38 | - |
|
| 39 | -The following are reference screenshots of what your implementations |
|
| 40 | -should approximate: |
|
| 41 | - |
|
| 42 | -### PNC0 C IMPLEMENTATION |
|
| 43 | - |
|
| 44 | - |
|
| 45 | - |
|
| 46 | -## SUBMISSION |
|
| 47 | - |
|
| 48 | -To be successful in this project, the following criteria (or their |
|
| 49 | -equivalent) must be met: |
|
| 50 | - |
|
| 51 | - * Project must be submit on time, by the deadline. |
|
| 52 | - * Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline. |
|
| 53 | - * Processing must be correct based on input given and output requested |
|
| 54 | - * Output, if applicable, must be correct based on values input |
|
| 55 | - * Code must be nicely and consistently indented and aligned |
|
| 56 | - * Code must be consistently written, to strive for readability from having a consistent style throughout |
|
| 57 | - * Code must be commented |
|
| 58 | - * Sufficient comments explaining the point of provided logic **MUST** be present |
|
| 59 | - * Track/version the source code in your private semester repository |
|
| 60 | - * Submit a copy of your source code to me using the **submit** tool by the deadline. |
|
| 61 | - |
|
| 62 | -## SUBMIT TOOL USAGE |
|
| 63 | - |
|
| 64 | -Let's say you have completed work on the project, and are ready to |
|
| 65 | -submit, you would do the following (once on LAB46, with all your data |
|
| 66 | -present): |
|
| 67 | - |
|
| 68 | -``` |
|
| 69 | -lab46:~/src/SEMESTER/DESIG/pnc0$ make submit |
|
| 70 | -``` |
|
| 71 | - |
|
| 72 | -You should get some sort of confirmation indicating successful submission |
|
| 73 | -if all went according to plan. If not, check for typos and or locational |
|
| 74 | -mismatches. |
|
| 75 | - |
|
| 76 | -### RUBRIC |
|
| 77 | - |
|
| 78 | -I'll be evaluating the project based on the following criteria: |
|
| 79 | - |
|
| 80 | -``` |
|
| 81 | -156:pnc0:final tally of results (156/156) |
|
| 82 | -*:pnc0:submitted working C and assembly implementations [26/26] |
|
| 83 | -*:pnc0:post screenshots to class DISCORD channel [26/26] |
|
| 84 | -*:pnc0:processing is correct, and to specifications [26/26] |
|
| 85 | -*:pnc0:no optimizations or improvements on the process [26/26] |
|
| 86 | -*:pnc0:graph produced from timing data produced [26/26] |
|
| 87 | -*:pnc0:timing data is taken out to at least 3 decimal places [26/26] |
|
| 88 | -``` |
|
| 89 | - |
|
| 90 | -### ADDITIONALLY |
|
| 91 | - |
|
| 92 | - * Solutions not abiding by spirit of project will be subject to a 50% overall deduction |
|
| 93 | - * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction |
|
| 94 | - * Solutions not utilizing indentation to promote scope and clarity or otherwise maintaining consistency in code style and presentation will be subject to a 25% overall deduction |
|
| 95 | - * Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction |
haas/fall2026/comporg/projects/pnc1.md
| ... | ... | @@ -1,97 +0,0 @@ |
| 1 | -# CSCS2650 Computer Organization |
|
| 2 | - |
|
| 3 | -# PROJECT: PRIME NUMBER COMPUTATIONS (pnc1) |
|
| 4 | - |
|
| 5 | -## OBJECTIVE |
|
| 6 | - |
|
| 7 | -Continue exploring algorithm/implementation comparison and optimization |
|
| 8 | -with respect to various approaches of computing prime numbers. |
|
| 9 | - |
|
| 10 | -## GRABIT |
|
| 11 | - |
|
| 12 | -There is a GRABIT available, containing some skeleton code, an XML file, |
|
| 13 | -and a Makefile, that will facilitate building the cartridge. |
|
| 14 | - |
|
| 15 | -## TASK |
|
| 16 | - |
|
| 17 | -Add to your two separate, independent programs, one in Vircon32 C, and |
|
| 18 | -other in Vircon32 assembly, functionality that: |
|
| 19 | - |
|
| 20 | - * implements functionality for the following optimizations (both in C and assembly): |
|
| 21 | - * break: breaks from trial division/brute force when a viable factor is found (break on composite) |
|
| 22 | - * odds: assuming 2 is prime, does odds-only processing (both number and factor check) |
|
| 23 | - * sqrt: only processes up through the square root point of the number being evaluated |
|
| 24 | - * implementation here include the following: |
|
| 25 | - * break |
|
| 26 | - * odds |
|
| 27 | - * sqrt |
|
| 28 | - * break+odds |
|
| 29 | - * odds+sqrt |
|
| 30 | - * break+sqrt |
|
| 31 | - * break+odds+sqrt |
|
| 32 | - * collects the same timing data with common workloads to the brute force/naive variants from pnc0 |
|
| 33 | - * new variants added to the runtime graph you made in pnc0, adjusting and re-running pnc0 variants to allow for a consistent presentation of information |
|
| 34 | - * be sure to use distinctive colors/patterns to distinguish items on the graph (again, line graph is a recommended choice) |
|
| 35 | - |
|
| 36 | -## REFERENCE |
|
| 37 | - |
|
| 38 | -The following are reference screenshots of what your implementations |
|
| 39 | -should approximate: |
|
| 40 | - |
|
| 41 | -### PNC1 C IMPLEMENTATION |
|
| 42 | - |
|
| 43 | - |
|
| 44 | - |
|
| 45 | -## SUBMISSION |
|
| 46 | - |
|
| 47 | -To be successful in this project, the following criteria (or their |
|
| 48 | -equivalent) must be met: |
|
| 49 | - |
|
| 50 | - * Project must be submit on time, by the deadline. |
|
| 51 | - * Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline. |
|
| 52 | - * Processing must be correct based on input given and output requested |
|
| 53 | - * Output, if applicable, must be correct based on values input |
|
| 54 | - * Code must be nicely and consistently indented and aligned |
|
| 55 | - * Code must be consistently written, to strive for readability from having a consistent style throughout |
|
| 56 | - * Code must be commented |
|
| 57 | - * Sufficient comments explaining the point of provided logic **MUST** be present |
|
| 58 | - * Track/version the source code in your private semester repository |
|
| 59 | - * Submit a copy of your source code to me using the **submit** tool by the deadline. |
|
| 60 | - |
|
| 61 | -## SUBMIT TOOL USAGE |
|
| 62 | - |
|
| 63 | -Let's say you have completed work on the project, and are ready to |
|
| 64 | -submit, you would do the following (once on LAB46, with all your data |
|
| 65 | -present): |
|
| 66 | - |
|
| 67 | -``` |
|
| 68 | -lab46:~/src/SEMESTER/DESIG/pnc1$ make submit |
|
| 69 | -``` |
|
| 70 | - |
|
| 71 | -You should get some sort of confirmation indicating successful submission |
|
| 72 | -if all went according to plan. If not, check for typos and or locational |
|
| 73 | -mismatches. |
|
| 74 | - |
|
| 75 | -### RUBRIC |
|
| 76 | - |
|
| 77 | -I'll be evaluating the project based on the following criteria: |
|
| 78 | - |
|
| 79 | -``` |
|
| 80 | -208:pnc1:final tally of results (208/208) |
|
| 81 | -*:pnc1:submitted working C and assembly implementations [13/13] |
|
| 82 | -*:pnc1:graph produced from timing data produced [26/26] |
|
| 83 | -*:pnc1:post screenshots to class DISCORD channel [26/26] |
|
| 84 | -*:pnc1:processing is correct, and to specifications [26/26] |
|
| 85 | -*:pnc1:working break on composite optimization [26/26] |
|
| 86 | -*:pnc1:working odds only processing optimization [26/26] |
|
| 87 | -*:pnc1:working sqrt factor cap optimization [26/26] |
|
| 88 | -*:pnc1:all variants and combinations thereof operational [26/26] |
|
| 89 | -*:pnc1:timing data is taken out to at least 4 decimal places [13/13] |
|
| 90 | -``` |
|
| 91 | - |
|
| 92 | -### ADDITIONALLY |
|
| 93 | - |
|
| 94 | - * Solutions not abiding by spirit of project will be subject to a 50% overall deduction |
|
| 95 | - * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction |
|
| 96 | - * Solutions not utilizing indentation to promote scope and clarity or otherwise maintaining consistency in code style and presentation will be subject to a 25% overall deduction |
|
| 97 | - * Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction |
haas/fall2026/comporg/projects/pnc2.md
| ... | ... | @@ -1,113 +0,0 @@ |
| 1 | -# CSCS2650 Computer Organization |
|
| 2 | - |
|
| 3 | -# PROJECT: PRIME NUMBER COMPUTATIONS (pnc2) |
|
| 4 | - |
|
| 5 | -## OBJECTIVE |
|
| 6 | - |
|
| 7 | -Continue exploring algorithm/implementation, this time exploring a new |
|
| 8 | -algorithm: the sieve of eratosthenes and selected optimization. |
|
| 9 | - |
|
| 10 | -## GRABIT |
|
| 11 | - |
|
| 12 | -There is a GRABIT available, containing some skeleton code, an XML file, |
|
| 13 | -and a Makefile, that will facilitate building the cartridge. |
|
| 14 | - |
|
| 15 | -## TASK |
|
| 16 | - |
|
| 17 | -Add to your two separate, independent programs, one in Vircon32 C, and |
|
| 18 | -other in Vircon32 assembly, functionality that implements the following: |
|
| 19 | - |
|
| 20 | - * sieve of eratosthenes (soe) |
|
| 21 | - * sieve of eratosthenes with sqrt optimization (soe +s) |
|
| 22 | - |
|
| 23 | -Collect the timing data and add them onto your graphs. NOTE that you may |
|
| 24 | -have to adjust your bounds, and if needed, drop the naive brute |
|
| 25 | -implementation from consideration due to the extreme gap in performance. |
|
| 26 | - |
|
| 27 | -## PROGRAM |
|
| 28 | - |
|
| 29 | -Your next program, and first sieve, will be the Sieve of Eratosthenes. |
|
| 30 | -Perhaps among the best and likely longest-known sieves, its origins date |
|
| 31 | -from antiquity. |
|
| 32 | - |
|
| 33 | -This sieve, instead of calculating to determine the eligibility of a |
|
| 34 | -prime, works in a manner of marking off patterns of values that cannot be |
|
| 35 | -prime (so, it is composite-focused in approach vs. prime-focused). |
|
| 36 | - |
|
| 37 | -In order for it to work, we must store all the values we're processing so |
|
| 38 | -we can obtain what is left when done– what remains are the prime |
|
| 39 | -values. |
|
| 40 | - |
|
| 41 | -Some refined considerations: |
|
| 42 | - |
|
| 43 | - * include memory management related to the sieve in your timing |
|
| 44 | - * take measurements out to FIVE (5) decimal places |
|
| 45 | - * consider doing a bar graph instead of line graph |
|
| 46 | - |
|
| 47 | -Please check out the [wikipedia page for the Sieve of Eratosthenes](https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes) |
|
| 48 | - |
|
| 49 | -Here is an animated image of this sieve in action (from wikipedia): |
|
| 50 | - |
|
| 51 | - |
|
| 52 | - |
|
| 53 | -## REFERENCE |
|
| 54 | - |
|
| 55 | -The following are reference screenshots of what your implementations |
|
| 56 | -should approximate: |
|
| 57 | - |
|
| 58 | -### PNC2 C IMPLEMENTATION |
|
| 59 | - |
|
| 60 | - |
|
| 61 | - |
|
| 62 | -## SUBMISSION |
|
| 63 | - |
|
| 64 | -To be successful in this project, the following criteria (or their |
|
| 65 | -equivalent) must be met: |
|
| 66 | - |
|
| 67 | - * Project must be submit on time, by the deadline. |
|
| 68 | - * Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline. |
|
| 69 | - * Processing must be correct based on input given and output requested |
|
| 70 | - * Output, if applicable, must be correct based on values input |
|
| 71 | - * Code must be nicely and consistently indented and aligned |
|
| 72 | - * Code must be consistently written, to strive for readability from having a consistent style throughout |
|
| 73 | - * Code must be commented |
|
| 74 | - * Sufficient comments explaining the point of provided logic **MUST** be present |
|
| 75 | - * Track/version the source code in your private semester repository |
|
| 76 | - * Submit a copy of your source code to me using the **submit** tool by the deadline. |
|
| 77 | - |
|
| 78 | -## SUBMIT TOOL USAGE |
|
| 79 | - |
|
| 80 | -Let's say you have completed work on the project, and are ready to |
|
| 81 | -submit, you would do the following (once on LAB46, with all your data |
|
| 82 | -present): |
|
| 83 | - |
|
| 84 | -``` |
|
| 85 | -lab46:~/src/SEMESTER/DESIG/pnc2$ make submit |
|
| 86 | -``` |
|
| 87 | - |
|
| 88 | -You should get some sort of confirmation indicating successful submission |
|
| 89 | -if all went according to plan. If not, check for typos and or locational |
|
| 90 | -mismatches. |
|
| 91 | - |
|
| 92 | -### RUBRIC |
|
| 93 | - |
|
| 94 | -I'll be evaluating the project based on the following criteria: |
|
| 95 | - |
|
| 96 | -``` |
|
| 97 | -260:pnc2:final tally of results (260/260) |
|
| 98 | -*:pnc2:submitted working C and assembly implementations [26/26] |
|
| 99 | -*:pnc2:graph produced from timing data produced [26/26] |
|
| 100 | -*:pnc2:post screenshots to class DISCORD channel [26/26] |
|
| 101 | -*:pnc2:processing is correct, and to specifications [26/26] |
|
| 102 | -*:pnc2:working sieve of eratosthenes implementation [52/52] |
|
| 103 | -*:pnc2:working soe with sqrt implementation [52/52] |
|
| 104 | -*:pnc2:all variants and combinations thereof operational [26/26] |
|
| 105 | -*:pnc2:timing data is taken out to at least 5 decimal places [26/26] |
|
| 106 | -``` |
|
| 107 | - |
|
| 108 | -### ADDITIONALLY |
|
| 109 | - |
|
| 110 | - * Solutions not abiding by spirit of project will be subject to a 50% overall deduction |
|
| 111 | - * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction |
|
| 112 | - * Solutions not utilizing indentation to promote scope and clarity or otherwise maintaining consistency in code style and presentation will be subject to a 25% overall deduction |
|
| 113 | - * Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction |