Computing fundamentals assignment KV4008
- Subject Code : KV4008 
- University : others Exam Question Bank is not sponsored or endorsed by this college or university. 
- Country : Saudi Arabia 
| ASSESSMENT BRIEF | |
| Module Title: | Computing Fundamentals | 
| Module Code: | KV4008 | 
| Academic Year / Semester: | 2024-25 Semester 1 | 
| Module Tutor / Email (all queries): | Chris Rook c.rook@northumbria.ac.uk | 
| % Weighting (to overall module): | 100% | 
| Assessment Title: | Computing fundamentals assignment | 
| Date of Handout to Students: | September 2024 | 
| Mechanism for Handout: | Module Blackboard Site | 
| Deadline for Attempt Submission by Students: | 4pm 15th January 2025 | 
| Mechanism for Submission: | Your work should be submitted using the links on eLP (Blackboard), in the assessment folder. | 
| Submission Format / Word Count | There will be different links for each question. Submit your answer to task 1 in the link for task 1. You should provide a text document, such as a text file, Word or PDF. Your assembly code should be provided as text, not an image, so that we can paste it into Sting and run it. In the week beginning 20th January 2025, you will also be asked to demonstrate your working program in an in-person session at the university. If you have answered question 2A, use the link for question 2A. This should be a Word or PDF document. If you have answered question 2B, use the link for question 2B. You should submit a Word or PDF document, as well as a .dwm file for digital works. You can submit them as separate files using the same link. Please do not put your work into a zip file. Submit these as separate files. If you have answered question 2C, use the link for question 2C. You will provide a link to your Panopto video. There are separate instructions for how to create and upload this video. | 
| Date by which Work, Feedback and Marks will be returned: | You will receive marks and feedback 20 working days after submission. This is the 12th February for students who have submitted on the 15th January. | 
| Mechanism for return of Feedback and Marks: | Marks and individual feedback will be uploaded to the Module Site on Blackboard. | 
Learning outcomes
This assessment covers all module learning outcomes:
- Demonstrate knowledge of set theory, logic and computer models and apply them in modelling software, systems, and data.
- Demonstrate knowledge of the architecture of a von Neumann computer and how storage, arithmetic and I/O system interact in such a computer.
- Describe how data and instructions are represented and stored in a von Neumann computer and how high-level language abstractions relate to the machine implementation.
- Apply appropriate tools and methods to program von Neumann
- Discuss major paradigms of Computation and their application in software
AI tools
You are welcome to use automated tools to check spelling and grammar. You are not permitted to use AI tools such as ChatGPT or Copilot to author text or code. The difference should be obvious. A grammar checker will correct grammar in text that you have written. AI authoring will create new text that is not your own work. If you are unsure, you should acknowledge the use of tools in your assignment submission, clearly stating which tools you have used, and which text has been affected.
Individual assignment
This is an individual assignment. You should not work with other people to do this work, including other students on the module. You should take care to make sure that other students cannot see your work. If you allow other students to copy your code or essays, you could both be accused of collusion. Keep your assignment solution in password-protected storage and do not share it over email, Discord, etc.
If another student asks you for help, you are welcome to explain any of the concepts we have taught on the module, including the seminar questions, but do not help them with the assignment. You may both be penalised for collusion. In the long run, doing the work for them will not help them.
Take care to keep your assignment submission private. If another student copies your work, then you may both be penalised for collusion even if your work was copied without your knowledge or consent.
If you ask friends, family or anyone else to help you learn assembly language, you should not ask them to help you with the assignment. This is collusion.
If you need help completing the work, ask the tutors for help. We are available in the workshops, via email, or by using our drop-in times. There will be time in the week 12 workshop set aside to answer questions about the assignment. There are some questions that we cannot answer, as this would give you too much help with the assignment. Its okay to ask.
Instructions for Assessment:
You should complete two tasks.
The first task is to write a program in assembly language.
For the second task, you can choose one from a list of three possible options. Each option asks you to carry out a task using one or more paradigms of computation, and reflect on it.
2A An exercise in using set theory to model data.
2B An exercise that uses logic circuits to carry out a logical task.
2C An exercise that compares a Turing Machine with a Von Neumann machine.
Each task is worth 50% of the marks for the module.
Task 1 Assembly programming
Your task is to write a program in assembly for the WASP processor. The program will work as a calculator. The user can input sums and the program will display the answer in decimals (base-10). I suggest you develop the program incrementally. Get a basic version working and then make it more complicated in stages. You will get marks for an incomplete program. If you want to attempt an easier version of the program, thats okay.
I suggest five stages of development. For each of these, I will give you an indication of the mark you are likely to get, if this is as far as you have got. The exact mark will depend on other factors, such as whether it works reliably and how well you have used programming concepts in your code.
Very basic implementation The user can enter three characters. The first will be a digit from 0 to
- The second will be the + character. The third will be a digit from 0 to 4. Your program will add the two digits together and display the result.
For example, if the user enters
3+4
The program will display:
7
A very basic implementation will get a mark of about 10 out of 50, depending on correctness and code quality.
Basic implementation The user can enter three characters. The first will be a digit from 0 to 9. The second will be the + character or the - character. The third will be a digit from 0 to 9. If the middle character is + the program will add the two numbers and display the result. If the middle character is - the program will subtract the second number from the first and display the result. (It doesnt have to work correctly for negative answers.)
For example, if the user enters
3+4
The program will display:
7 or 07
If the user enters
7-2
The program will display:
5 or 05
If the user enters
9+7
The program will display:
16
A basic implementation will get a mark of about 20 out of 50, depending on correctness and code quality.
Good implementation The user can enter five characters. The first two will be a number from 00 to 99. The third will be the + character or the - character. The last two characters will be a number from 00 to 99. If the middle character is + the program will add the two numbers and display the result. If the middle character is - the program will subtract the second number from
the first and display the result. (It doesnt have to work correctly for negative answers or for answers greater than 99.)
For example, if the user enters
30+41
The program will display:
71
If the user enters
77-22
The program will display:
55
A good implementation will get a mark of about 30 out of 50, depending on correctness and code quality.
Full implementation The user can enter five characters. The first two will be a number from 00 to
- The third will be the + character or the - character. The last two characters will be a number from 00 to 99. If the middle character is + the program will add the two numbers and display the result. If the middle character is - the program will subtract the second number from the first and
display the result. (It does not have to work correctly for negative answers.) The program will repeat in a loop, so the user can keep entering new sums without having to re-start the program. If the user makes an incorrect input, the program will display an error message.
For example, if the user enters
80+41
The program will display:
121
If the user enters
x5+12
The program will display:
error
A full implementation should make use of functions and variables. The program should be clearly organised.
A full implementation will get a mark of about 40 out of 50, depending on correctness and code quality.
Advanced implementation
For marks above 40 out of 50, you should impress us. There are many ways to impress, and you
dont need to do all of them:
- Get the program to display negative answers
 - For example: 22-77 = -55
 
- Get the program to handle numbers of any length from 0 to
 - For example: 22+1132 = 1154
 
- Get the program to handle negative input
 - For example: -2+7 = 5
 
- Add prompts to tell the user what to
- Make the program end if the user types xx as
- Support other mathematical operations, such as * and /.
You may think of your own ways to make the program more complex or useful. Thats great. Show us at the demo, and if we are impressed, we can give you marks.
Demonstration
In the week 20th January to 24th January 2025, you will be asked to demonstrate your WASP program to the tutors. This will take place in a computing lab at the university. We will give you more information (including dates and times) before December 2024.
You do not need to prepare a presentation for this. We just want to see your program working. You will be sitting in front of a computer to demonstrate your code to a tutor, not presenting to the class. It should only take a few minutes. We will also ask you a few questions about your code, to make sure that you understand it and have written it yourself.
If you have a Student Accessibility Plan, and would like to demonstrate at an individual, private session, contact Chris Rook before 20th December 2024.
Paradigms of computation
You have a choice of three tasks. 2A, 2B and 2C. You only need to complete one of these tasks.
Task 2A Set theory
Use your understanding of set theory to explore the scenario below. On a school sports day, there are several events, at different times.
| Event | Time | 
| 100 metre sprint | 10am | 
| 1 kilometre run | 11am | 
| Javelin | 2pm | 
| Long jump | 2pm | 
| Cross country run | 3pm | 
The children are arranged into three teams:
| Team | Children | 
| Thames | Ann, Dave, Gita, Jack, | 
| Avon | Ben, Ellen, Harry, Karen, | 
| Mersey | Claire, Fred, Ivy, Li, Mahmud | 
Children take part in different events
| Event | Children | 
| 100 metre sprint | Ann, Ben, Harry, Ivy, Li | 
| 1 kilometre run | Claire, Dave, Karen, Li, Gita | 
| Javelin | Ann, Ellen, Ivy, Jack, Mahmud | 
| Long jump | Ben, Harry, Karen, Jack, Li | 
| Cross country run | Claire, Dave, Ellen, Mahmud, Gita | 
Write no more than 1000 words to answer the following questions:
- Show how the data in the table above can be represented as sets and
- Explain which of your relations are
- Use set theory notation to demonstrate how composition can be used to find out what times Ann will be competing.
- Use set theory notation to demonstrate how composition can be used to determine how many members of team Mersey will be competing at 2pm.
- Show another example of the use of how set theory can be used to find other useful information from this data.
- Explain why sets and relations are useful for organising information in a computer
Your word count does not include: Anything written in set notation (including the contents of sets), reference lists, titles, diagrams, tables, program code or pseudocode.
Task 2B Logic circuits
We want you to make a logic circuit similar to the ones we have done in class. To make sure you all have a different problem, we will use your student code to generate the problem. Your student code has eight digits. For example:
20016432
Each digit is a number from 0 to 9.
Some digits are in your student code and some are not. For example, in the code above, the digit 6 is in the student code, but the digit 8 is not.
Some digits are included more than once. For example, in the code above, the digit 2 is used more than once. The same applies to the digit 0.
One of the digits will be the largest digit in the code. In the example above, 6 is the largest digit.
You are going to create a logic circuit using Digital Works that provides four switches so the user can enter a number from 0 to 15 in binary. This number will be used to represent a possible value of a decimal digit from 0 to 9. (A four-digit binary number goes up to 15, of course. The numbers 10 to 15 or 1010 to 1111 in binary are special cases see below)
For example, the switches below represent the binary value 0101, or the digit 5.
The circuit will light up one or more LEDs, depending on the decimal equivalent of the binary value entered.
There are four LEDs, labelled as shown below.
If the digit IS NOT part of your student code, it will light up the Not included LED.
If the digit IS part of your student code, it will light up the Included LED.
If the digit is used MORE THAN ONCE in your student code, it will light up the More than once LED.
If the digit is the HIGHEST-VALUE digit in your student code, it will light up the Highest LED.
Some digits will cause more than one LED to light up. For example, using the student code 20016432:
Binary value 1000 represents the digit 8. This is not part of the student code, so this will light up the Not included LED.
Binary value 0010 represents the digit 2. This is used twice in the student code, so will light up both the Included and More than once LEDs.
Binary value 0110 represents the digit 6. This is used in the student code, and is the largest digit, so will light up both the Included and highest LEDs.
Other digits 0,1,3,4,5,7,9 will also light up one or more LEDs.
Binary values 1010 to 1111 represent numbers that cannot be a single decimal digit (larger than 9!)
so these will always cause the Not included LED to light up.
Note that for this question, you should use your own student code, not the code 20016432 used in the examples above. This is to ensure that every student has a slightly different problem.
First, create a truth table showing all possible values of the four inputs and the four outputs for each binary value. You should label each column in the truth table.
Then use the Digital Works template provided to create a single circuit that has this behaviour. The template looks like this:
Your circuit goes in the big space in the middle and connects the four vertical lines on the left (the input binary digit) to the four LEDs on the right. If you need more space, you can move the LEDs further right and/or down.
Q: Why are we using a template? There are two answers the first is that it helps get you started, and can help you develop your circuit. The second is that this will speed up marking considerably. This is a large module, and anything we can do to speed up marking, even by a few seconds per submission, has a large impact on our work.
Q: What are all the things in the template? I will explain them one at a time.
This annotation is a helpful reminder of your student ID. You probably know yours off by heart, but it helps us when checking that the circuit behaves correctly. Please alter this to YOUR id. If we see another students id we will be suspicious.
This line of four interactive inputs is where you can enter any 4-bit binary number. This is the input of the circuit. For convenience we have attached a display so you can see what the decimal equivalent is of the binary number.
These four wires hold the binary input number. You will notice that they are not directly attached to the interactive inputs that there is a macro box in between. That will be explained next.
You should use these wires as the starting point for your circuit, connecting from them to your circuit to the right of them.
The LEDs at the bottom show what values are held on the wires. There is another decimal output display showing the value of the current binary number on these wires.
If you wish, you may add more vertical wires, for example connected to NOT gates from each input wire. This seems to be a popular thing to do.
The mysterious macro box that separates the input from the signal wires is actually a counter.
By default, it passes the input binary number straight through to the output binary number. This is how we expect you will work for most of the time. If the interactive input labelled count is switched on, instead of passing the input number through to the output, an internal binary counter counts from 0 to 15 and then starts again, continuously. This is included to allow rapid checking that the outputs are correct for all inputs. It is intended to speed up marking but of course you are free to use it for your own checking if you wish.
The reset input to the left resets the counter to 0. It is only mildly useful. Finally, write a short essay of up to 600 words, explaining:
- What steps you have taken to reduce your circuit, making it as simple as You may have used Boolean algebra, Karnaugh maps, inspection, or a combination of these.
- How the same logical task could be implemented in software. You can use pseudocode or any well-known Explain the similarities between the logic gates in your circuit and the AND/OR/NOT expressions in your code.
The word count does not include: code, pseudocode, diagrams, tables, references, titles.
IMPORTANT:
You must use Digital Works to create your circuit. If you do not, you will receive no marks for your circuit. You will still be able to get marks for your truth table and your essay.
There are marks for using the template. If you submit a Digital Works circuit that doesnt use the template, you will not get those marks, but we will still mark your circuit. The template is available on BB.
Your submission for this task has three elements: the truth table, the circuit, and the essay. Your submission document should contain the truth table, a screenshot of the circuit, and the essay. You should also hand in the Digital Works circuit file. There are marks for submitting the file, so if you neglect to do so, you will not be awarded those marks.
Hint: You have been asked to create a single circuit. There should be one circuit connected to four inputs and four outputs.
Hint: You don't need to create a circuit that will analyse your student code and work out the largest digit or count how many times each digit is used. You will do that yourself and create a truth table. You just need to create a circuit that implements that truth table.
Hint: It is not necessary to give multiple screenshots of your circuit showing different input values. Hint: It is possible to gain a passing mark for this task without any circuit reduction.
Hint: It is possible to do some simple reduction by checking if you are applying a NOT gate to the same input more than once for different parts of the circuit. Instead of using multiple NOT gates, just use one, then feed the output in as many directions as you need. Most circuits will be able to have more complex reduction applied, but it is amazing how often this simple trick is missed.
Hint: If you are unsure how to start, look at your truth table. It is not just there for the marks, it is the basis of your circuit. It may help you to think about each output one at a time.
Hint: remember to ensure that inputs that need to be 0 are actually 0.
Hint: The essay has two parts. Use roughly the same number of words for each part. (300 words each.)
Task 2C Turing machines and von Neumann architecture
You have been asked to create a video about Turing Machines for the True Geek channel. (Dont look for it I made it up.) You should aim the video for an audience of computer enthusiasts, such as knowledgeable students on their first year of a Computer Science degree.
Hi. Thanks for offering to make a video for the channel. A lot of our subscribers have been asking about Turing Machines. I can find information on Wikipedia, but it doesnt have many good examples to explain what is going on. I would like a video that includes:
- A description of what a Turing Machine
- A walkthrough of a Turing Machine doing a simple
- Some examples of why Turing Machines are relevant to a modern computer
The video should be no more than 15 minutes long, or our subscribers will get bored and switch off. You can maybe go over by 10% if you are really interesting. You can use lecture slides if you want but try to make use of lots of visuals preferably technical details, which our subscriberslike. Dont be afraid to include mathematics, as long as you explain it. If you use images fromsomewhere else, thats fine, but make sure you provide references so we can get permission fromthe copyright owners.
You will use a tool called Panopto to create the video. It is the same tool I use for my lecture videos. I will provide guides showing you how to create and submit the video. There will be information about alternative tools, if you have trouble with Panopto.
What is a walkthrough? In this case, it means that you should show the system working step-by- step. Each execution cycle should be shown. If your example is long, it is okay to show the first five or six steps in detail, then the rest much more quickly.
You are not being marked for the quality of your editing, or how many special effects you use. The marks are the information you convey in the presentation.
Marking rubrics
Question 1 WASP assembly program
| Mark range | Criteria | 
| 40-50 | A full implementation that may also contain some advanced features. The software code is well-structured, using subroutines, variables, conditions and loops safely. | 
| 30-39 | A good implementation. The program does most of the task correctly. The code is structured and makes good use of loops, variables, conditions and subroutines. | 
| 20-29 | An acceptable implementation. The program works correctly but may have some errors or omission. The code has some structure and uses variables, conditions and subroutines effectively. | 
| 10-19 | A very basic implementation. The code makes some use of simple programming concepts, like variables, conditions, input/output. | 
| 1-9 | A very limited attempt to answer the question. Some useful content, but the answer is largely incomplete or contains serious errors. | 
| 0 | The task has not been attempted or the answer does not relate to the question. | 
Question 2A Set theory exercise
| Mark range | Criteria | 
| 40-50 | An excellent answer that demonstrates further reading, exceptional insight or creativity. (For example, the student has used a wide range of set theory concepts such as subsets, power sets, etc. in exploring the data.) | 
| 30-39 | A good answer that fully explores the data using correct set theory notation with only small errors. Set theory is evaluated as a model of computation. | 
| 20-29 | A satisfactory answer that uses set theory correctly to explore the data but does not fully address the question. There is some evaluation of set theory as a model of computation. | 
| 10-19 | A partial answer which addresses the question but omits key elements and may have serious errors. | 
| 1-9 | A very limited attempt to answer the question. Some useful content, but the answer is largely incomplete or contains serious errors. | 
| 0 | The task has not been attempted or the answer does not relate to the question. | 
Question 2B Logic gate exercise
| Mark range | Criteria | 
| 40-50 | A fully working circuit that completely performs the task as specified. The truth table is correct, neat and well- organised. The student has provided evidence of reduction to make the circuit simpler. The comparison between the logic circuit and an equivalent software implementation demonstrates insight. | 
| 30-39 | A fully working circuit that completely performs the task as specified. The truth table is correct and generally well- organised. There is a comparison between the logic circuit and an equivalent software implementation. | 
| 20-29 | A circuit that performs most of the task as specified. It may not work correctly in all situations. The truth table may have small errors or is badly organised. There is a limited comparison between the logic circuit and equivalent software implementation. | 
| 10-19 | A circuit that performs part of the task but does not work correctly. The truth table may have errors but is recognisable as a truth table that is relevant to the problem. | 
| 1-9 | The circuit does not work correctly, but parts of the circuit can be used to create a working system. A truth table is provided but may not clearly match the task set. | 
| 0 | The task has not been attempted or the answer does not relate to the question. | 
Question 2C Turing Machine video
| Mark range | Criteria | 
| 40-50 | An exceptional answer that demonstrates further reading, exceptional insight or creativity. (For example, the student may use clear explanations to discuss highly complex aspects of Turing Machines.) | 
| 30-39 | An excellent video that clearly explains the technical aspects of Turing Machines and their significance. The video is presented well in a clear and logical order, and clearly references all sources. | 
| 20-29 | A good video that explains some technical aspects of Turing machines and their significance work but neglects some key areas or has poor explanations. Sources are referenced. | 
| 10-19 | A video that discusses Turing Machines but which does not address the technical aspects and significance in any detail. The content may be badly structured and may be hard to understand. Sources are not referenced correctly but are acknowledged. | 
| 1-9 | A video that does not answer the question but contains some relevant information or discussion. | 
| 0 | The task has not been attempted or the answer does not relate to the question. | 
ASSESSMENT REGULATIONS
You are advised to read the guidance for students regarding assessment policies. They are available online here.
Students must retain an electronic copy of this assignment submission (including ALL appendices) and it must be made available if requested by the University.
Late submission of work
Where coursework is submitted without approval, after the published hand-in deadline, the following penalties will apply.
For coursework submitted up to 1 working day (24 hours) after the published hand-in deadline without approval, 10% of the total marks available for the assessment (i.e.100%) shall be deducted from the assessment mark.
Coursework submitted more than 1 working day (24 hours) after the published hand-in deadline without approval will be regarded as not having been completed. A mark of zero will be awarded for the assessment and the module will be failed, irrespective of the overall module mark.
Word limits and penalties
Task 2A has a word limit of 1000 words. If the essay is within +10% of the stated word limit no penalty will apply.
Task 2B has a word limit of 600 words. If the essay is within +10% of the stated word limit no penalty will apply.
Task 2C has a time limit of 15 minutes. If the video is within +10% of the stated time limit no penalty will apply.
The word count does not include: appendices, glossary, footnotes, tables, reference lists, diagrams, mathematical notation, set notation (including the contents of sets), pseudocode, sections of code.
Please note, in-text citations [e.g. (Smith, 2011)] and quotations [e.g. If you think good architecture is expensive, try bad architecture. (Foote, B. Yoder, J)] are INCLUDED in the word count.
The full Word Limit Policy is available here.
Academic Misconduct
This is an individual assignment. You may not collude with any other individual or plagiarise their work.
The Assessment Regulations for Taught Awards (ARTA) contain the regulations and procedures applying to cheating, plagiarism and other forms of academic misconduct.
The full policy is available at here.
You are reminded that plagiarism, collusion and other forms of academic misconduct as referred to in the Academic Misconduct procedure of the assessment regulations are taken very seriously. This includes the unacknowledged use of AI systems such as ChatGPT to complete assignment tasks.
Assignments in which evidence of plagiarism or other forms of academic misconduct is found may receive a mark of zero.
 
								