Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
60 views

Fundamentals of Computing Assignment Question

Uploaded by

Mandip Mandal
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
60 views

Fundamentals of Computing Assignment Question

Uploaded by

Mandip Mandal
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

1st SIT COURSEWORK: Summer Semester 2020

Module Code: CS4051NI

Module Title: Fundamentals of Computing

Module Leader: Sukrit Shakya (Islington College)

Coursework Type: Individual

Coursework Weight: This coursework accounts for 100% of your total module
grades.

Submission Date: Week 15

When Coursework is Week 7


given out:

Submission Submit the following to Islington College RTE department


Instructions: before the due date:

● Soft copy of the report


● Zip file with source code of the program

Warning: London Metropolitan University and Islington College


takes Plagiarism seriously. Offenders will be dealt with
sternly.

© London Metropolitan University

1
Plagiarism Notice

You are reminded that there exist regulations concerning plagiarism.

Extracts from University Regulations on Cheating, Plagiarism and Collusion

Section 2.3: “The following broad types of offence can be identified and are
provided as indicative examples
(i) Cheating: including copying coursework.
(ii) Falsifying data in experimental results.
(iii) Personation, where a substitute takes an examination or test on behalf of
the candidate. Both candidate and substitute may be guilty of an offence
under these Regulations.
(iv) Bribery or attempted bribery of a person thought to have some influence
on the candidate’s assessment.
(v) Collusion to present joint work as the work solely of one individual.
(vi) Plagiarism, where the work or ideas of another are presented as the
candidate’s own.
(vii) Other conduct calculated to secure an advantage on assessment.
(viii) Assisting in any of the above.

Some notes on what this means for students:

(i) Copying another student's work is an offence, whether from a copy on


paper or from a computer file, and in whatever form the intellectual property
being copied takes, including text, mathematical notation and computer
programs.
(ii) Taking extracts from published sources without attribution is an offence. To
quote ideas, sometimes using extracts, is generally to be encouraged.
Quoting ideas is achieved by stating an author's argument and attributing
it, perhaps by quoting, immediately in the text, his or her name and year of
publication, e.g. " e = mc2 (Einstein 1905)". A reference section at the end
of your work should then list all such references in alphabetical order of
authors' surnames. (There are variations on this referencing system which
your tutors may prefer you to use.) If you wish to quote a paragraph or so
from published work then indent the quotation on both left and right
margins, using an italic font where practicable, and introduce the quotation
with an attribution.

Further information in relation to the existing London Metropolitan University


regulations concerning plagiarism can be obtained from
http://www.londonmet.ac.uk/academic-regulations

2
Summary
This is an individual coursework worth 100% of the total module mark. It requires
developing a software application which simulates the behavior of a digital circuit
performing integer addition and writing a report to describe the model, algorithm,
data structures needed as well as the program developed.

Tasks
a) Construct a model of a byte adder assembled using electronic gates based
on the model of the bit adder (represented by figure 1 below).

b) Specify an algorithm for integer addition based on bitwise operations.

c) Select suitable Python data structures to represent the information to be


processed by the program.

d) Create a program in Python which implements the model of the adder as


designed in the previous task.

e) Test the program with selected test data.

f) Write a report to present the work above.

3
The details of each task are as follows.

Requirements
1. Model
● The model must be based on the bit adder

Figure 1. bit adder model

 The model may include number of bit adders linked to form a byte adder.

● The model can be presented using suitable diagram/picture created


using drawing tool or graphics editor of your choice (the bit adder can
be a box with input and output only).

2. Algorithm

● The algorithm for adding two integers must be based on the use of
standard logical operations which have direct hardware implementation
(AND, OR, XOR, NOT, NAND, NOR)

● It can use additional data processing operations which might be


necessary to manipulate the data (i.e., input/output operations, type
conversion operations, information retrieval operations, etc.)

● The algorithm must be specified using pseudocode.

● The algorithm must be illustrated using a diagram (flowchart).


4
3. Data Structures

● The programming should be done using data structures and operations


in Python for input/output, character and string processing, logical
manipulations.

● It can use any primitive or complex data structures which might be


necessary for holding the data (lists, tuples, strings, dictionaries, etc.)

● The choice of data structures must be specified in the report.

4. Program

● The program must work in a loop, reading two integer numbers,


computing the sum of them and printing out the result until instructed to
quit.

● The program must check the input data for the data type permitted
(representation of an integer) and the data value limitations (the value
of the integer must not exceed the actual size of byte-coded integers,
i.e. min 00000000 and max 11111111 in Base 2 or min 0 and max 255 in
Base 10).

● The program must be implemented in a modular way with separate


functions for inputting data, bit operations, integer operations and
outputting the result of the calculation.

5. Testing

● The tests must be performed after completing the development in order


to gather suitable data for reporting. (at least 5 test cases must be
present)

● The test data used for testing the programs must include normal data,
special values (if any), max/min values, wrong data types, wrong values.

● The tests must be described in terms of testing cases (or scenarios),


input data, expected results, actual results and analysis of the results.
They can be presented in a table form reporting each case separately
and can be illustrated using screen shots of the execution.

5
6. Report

● The report must present all components of the work – model, algorithm,
data structures, program and testing.

● The program must be described in terms of its structure and behavior. It


can be presented using text and structural charts, flowcharts or other
diagrams as needed.

● The report must have a title page, table of contents, page numbers, list
of figures and tables, footer.

● The report must have an Introduction section introducing the different


aspects of the project. The goals and objectives of the project should be
included as well.

● The report must also include a Conclusion section where they need to
reflect on the work done.

6
Marking Scheme

University Grading Scheme for Undergraduate Programs: 2020

Marking criteria Letter grade Mark recorded


C1 – Work Showing Evidence:
1. Introduction section has been properly written, A+ 95
describes the subject matter well and a high level of
understanding of the topics has been shown.
2. The adder model is well explained with proper
diagrams. A high level of understanding of the topic is
seen.
3. The program’s algorithm has been properly described
in a stepwise manner as well as in terms of a clear
properly presented flowchart; pseudocode has been
presented in a proper and clear manner as well.
4. Python data types/data structures have been properly
explained with suitable examples and a high level of
understanding has been displayed.
5. The program works flawlessly, performs the required
operations. The program does not crash when
undesired input is given by the user (proper exception
handling has been done). Code is properly structured
and follows good programming practices.
Classes/Functions have been well implemented and the
program has been properly structured in a modular
manner.
6. The program has been well tested with at least 5
proper test cases, and presented with proper testing
format.
7. A well written conclusion has been given and the
report is well-structured, written in good English, free
from spelling and grammatical errors and is written in
a professional style of a technical article and presented
at a high standard.

C2 – Work Showing Evidence:


1. Introduction section has been properly written and A 85
proper understanding of the topics has been shown.
2. The adder model is well explained with proper
diagrams. A proper level of understanding of the topic
is seen.
3. The program’s algorithm has been properly described
in a stepwise manner as well as in terms of a clear
well-presented flowchart; pseudocode has been
presented in a proper and clear manner as well.
4. Python data types/data structures have been properly
explained with suitable examples and a high level of
understanding has been displayed.
5. The program works flawlessly, performs the required
operations. The program does not crash when
undesired input is given by the user (proper exception

7
handling has been done). Code is properly structured
and follows good programming practices.
6. The program has been well tested with at least 5
proper test cases, and presented with proper testing
format.
7. The report is well structured, written well, and free
from spelling and grammatical errors and is written at
a very good quality standard. Good conclusion has
been given at the end.

C3 – Work Showing Evidence:


1. Introduction section has been properly written and A- 75
good understanding of the topics has been shown.
2. The adder model is well explained with proper
diagrams. A good level of understanding of the topic is
seen.
3. The program’s algorithm has been properly described
in a stepwise manner as well as in terms of a clear
flowchart; pseudocode has been presented in a proper
manner.
4. Python data types/data structures have been properly
explained with suitable examples and a good level of
understanding has been displayed.
5. The program works flawlessly, performs the required
operations. The program does not crash when
undesired input is given by the user (proper exception
handling has been done). Code is properly structured
and follows good programming practices.
6. The program has been well tested with at least 5
proper test cases, and presented with proper testing
format.
7. The report is well structured, written well, and free
from spelling and grammatical errors and is written at
a good quality standard. Good conclusion has been
given at the end.

C4 – Work Showing Evidence:


1. Introduction section has been properly written and fair B+ 67
understanding of the topics has been shown.
2. The adder model is explained fairly well with proper
diagrams. A fair level of understanding of the topic is
seen.
3. The program’s algorithm has been properly described
in a stepwise manner as well as in terms of a
flowchart; pseudocode has been presented in a proper
manner.
4. Python data types/data structures have been properly
explained with suitable examples and a reasonable
level of understanding has been displayed.
5. The program works well, and performs the required
operations. The program does not crash when
undesired input is given by the user (proper exception
handling has been done).

8
6. The program has been well tested with at least 5
proper test cases and presented well.
7. The report is a structured one, written reasonably well
but may contain only minor typos and grammatical
errors but on the whole is good report. Good
conclusion has been given at the end.

C5 – Work Showing Evidence:


1. Introduction section has been written well and B 63
reasonable understanding of the topics has been
shown.
2. The adder model is explained fairly well with proper
diagrams. A reasonable level of understanding of the
topic is seen.
3. The program’s algorithm has been properly described
in a stepwise manner as well as in terms of a
flowchart; pseudocode has been presented in an
understandable manner.
4. Python data types/data structures have been properly
explained with suitable examples and a reasonable
level of understanding has been displayed.
5. The program works well, and performs the required
operations. After each transaction the program writes
a note to a file giving it a unique filename. Minimum
requirements have been met.
6. The program has been well tested with at least 5
proper test cases.
7. The report is written well but may contain some
spelling and grammatical mistakes but on the whole is
a reasonable report.

C6 – Work Showing Evidence:


1. Introduction section has been written well and C+ 57
reasonably explained.
2. The adder model is explained reasonably. A
satisfactory level of understanding of the topic is seen.
3. The program’s algorithm has been properly described
in a stepwise manner as well as in terms of a
flowchart; pseudocode has been presented in a
satisfactory manner.
4. Python data types/data structures have been properly
explained and a satisfactory level of understanding has
been displayed.
5. The program works but minor errors and shortcomings
are present. Minimum requirements have been met.
6. The program has been well tested with at least 5
proper test cases.
7. The report is written with a satisfactory standard but
may contain spelling and grammatical errors.

C7 – Work Showing Evidence:


1. Introduction section had been written well and C 53
reasonably explained.

9
2. The adder model is reasonably explained. A
satisfactory level of understanding of the topic is seen.
3. The program’s algorithm has been described in a
stepwise manner as well as in terms of a flowchart;
pseudocode has been presented in a satisfactory
manner.
4. Python data types/data structures have been properly
explained and a satisfactory level of understanding has
been displayed.
5. In the program minimum requirements have been met
and the program contains minor errors.
6. The program has been well tested with at least 5
proper test cases.
7. The report is written at a satisfactory level but contains
spelling and grammatical errors.

C8 – Work Showing Evidence:


1. Introduction section has been written in an acceptable D+ 47
manner.
2. The adder model is satisfactorily explained. A
satisfactory level of understanding of the topic is seen.
3. The program’s algorithm has been described in a
stepwise manner as well as in terms of a flowchart;
pseudocode has been presented in a satisfactory
manner.
4. Python data types/data structures have been properly
explained and a basic level of understanding has been
displayed.
5. In the program minimum requirements have been met
and the program contains errors.
6. The program has been well tested with at least 5
proper test cases.
7. The report is written at a satisfactory level, which may
lack structure and/or contain spelling and grammatical
errors.

C9 – Work Showing Evidence:


1. Introduction section has been written in an acceptable D 43
manner. Proper explanations are lacking.
2. The adder model is just satisfactorily explained.
3. The program’s algorithm has been described in a
stepwise manner as well as in terms of a flowchart;
pseudocode has been presented in a satisfactory
manner.
4. Python data types/data structures have been
satisfactorily explained and only a basic level of
understanding has been displayed.
5. In the program minimum requirements have been met
and the program contains errors.
6. The program has been well tested with at least 5
proper test cases.
7. The report lacks structure and/or contains spelling and
grammatical errors but on the whole just reaches an
acceptable level.

10
C10 – Work Showing Evidence:
1. Introduction section has been poorly written. Proper F1 37
explanations are lacking.
2. The adder model is poorly explained.
3. The program’s algorithm has been described in a
stepwise manner as well as in terms of a flowchart;
pseudocode has been presented in a poor manner.
Explanations are not clear.
4. Python data types/data structures have been poorly
explained and a poor level of understanding has been
displayed.
5. The program does not work well. The program
contains errors.
6. The program has not been properly tested.
7. The report lacks structure presented poorly and
contains spelling and grammatical errors, which on the
whole is not at an unacceptable standard.

C11 – Work Showing Evidence:


1. Introduction section has been poorly written. Proper F2 23
explanations are lacking.
2. The adder model is poorly explained/lacking.
3. The program’s algorithm and flowchart are not clear.
Pseudocode is poorly written. Explanations are not
clear.
4. Python data types/data structures have been poorly
explained and a poor level of understanding has been
displayed.
5. The program does not work well. The program
contains errors.
6. The program has not been properly tested.
7. The report is very poorly presented with no level of
structure and cohesion, which contains spelling, and
grammatical errors that make it considerably lower
than just an acceptable technical report expected at
this level.

Fail (non-submission or submission of work which cannot be F3 0


given any credit (e.g., blank submission, incorrect assignment)

11

You might also like