You are on page 1of 3

1

CS4051 Fundamentals of Computing


Coursework
Numerical Data Program with Report

Submission Deadline: 3pm, Friday, 6/May/2022- via WebLearn Online Submission

Summary
This is an individual coursework worth 60% of the total module mark. It requires developingof a
program in Python which simulates the behaviour of a digital circuit performing integer addition
and writing a report to describe the model, algorithm, data structures, program andtesting
performed.

Tasks Mark
1. Construct a model of a byte adder based on the bit adder max 10%
2. Specify an algorithm for integer addition based on binary operation max 10%
3. Select suitable data structures to represent the information max 10%
4. Create a program in Python 3 which implement the model of the adder max 40%
5. Describe the program max 10%
6. Test the program with some sample data to demonstrate its behaviour max 10%
7. Write a report to present the work max 10%

Requirements

1. Model
 The model must be based on the bit adder below.

 The model may include a number of bit adders linked to form a byte adder, which allows
adding two integers. The maximum value of each of these integers can be represented
in the Binary number system using one byte only.
 The model can be presented using suitable diagram 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)
 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, bitwise data processing operations, etc.)
 The algorithm must be specified using pseudocode, structured English, or plain text.
 The algorithm can be illustrated using a diagram.

3. Data Structures
 The programming should be done using data structures and operations in Python
for input/output, character and string processing, logical or bitwise manipulations.
 It can use any primitive or complex data structures which might be necessary for
holding the data (pairs, lists, 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 Base2. That
means min 0 and max 255 in Base 10 for positive integers, or min 11111111 and max
01111111 in Base 2, or min -127 and max +127 in Base 10 for signed integers.
 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. Description
 The program must be described in terms of its structure and behaviour.
 It can be presented using text and structural charts, flowcharts or other diagrams
as needed.

6. Testing
 The tests must be performed using suitable test data (i.e., normal data,
max/min boundary values, wrong data types, wrong values)
 The testing can be presented using screen shots of the execution.
 The program testing must be described in terms of test cases (or scenarios), input data,
expected results, actual results, and analysis of the results (pass/fail). They can be
presented in a table, reporting each test case separately. Program execution screen shots
can be used for illustration.

7. Reporting
 The report must present all of the above components of the work, i.e. model,
algorithm, data, the program’s description and testing.
 It must be written in proofread English in good style.
 The report must have a title page with the student’s name & ID, a table of contents,
page numbers and a reflection on the individual experience.

Deliverables
1. Written report, submitted by the deadline to WebLearn (one .pdf file only)
2. Python program, submitted by the deadline to WebLearn (one .zip file containing
all Python modules and data files)

Notes on the Assessment


 The work will be assessed entirely based on the submitted files.
 If no program file is submitted the report will still be assessed for the model,
algorithm and data structure (max 40%) which practically means fail.
 If no report is submitted the program will still be assessed at max 40%
which practically means fail.
 If both files are present but the program is not working: the report will still be
assessed but the mark for the program will be set to 0 which means max 60% could be
awarded.
 In order to be awarded first class mark the program must implement some
more advanced features, such as:
 Allowing both positive and negative integers to be entered
 Input in both binary and decimal format with conversion to binary.
 Additional binary subtractor or multiplier
 Additional floating-point adder, etc.

You might also like