UK BTEC HND in Computing and Systems Development Unit 18

{`HND Assignment Brief
Programme title BTEC HND in Computing and Systems Development
Unit number and title 18 Procedural Programming
Assignment number & title 1 of 1 Procedural Programming
ICON College of Technology and Management
`}

ASSIGNMENT Task 1

Assume you are employed as a senior procedural programmer in a software development company. A client is seeking for details features of procedural programming for developing their new system. Based on your experiences and solid knowledge in procedural programming, the company has decided you to prepare a detail report explaining the features of procedural programming.

1.1 There are various types of programming languages and each of them have own features and characteristics. Discuss the principles, characteristics and features of procedural programming language with an example. [P1.1, M1]

Hint: (a) short description of low-level languages, high-level languages (b) principle, characteristics and features of procedural programing (methods, loop, decision, functions, local variable, global variable, procedure, program libraries, data structures, parameter passing etc.)

To achieve M1, you must demonstrate a clear understanding of the procedural programming and other types of programming language (object oriented, event-driven etc) with relevant example. In addition, you will have met the deadline to submit the tasks and achieve the unit assessment criteria.

Scenario for LO2, LO3 and LO4

A renowned “Greenwich Primary School” hired you based on your good theoretical and practical knowledge to design, develop and testing a various mathematical program. School wants to design and develop a “Math Skills Assessment Program” for children (9 - 12 years old) with a view to understand their level in mathematics. You have to set up two types of testing methods one for to evaluate the Numeracy Skills – Mental Arithmetic and another for Problem Solving Skills. Each test must have minimum 15 questions.

The requirements and functionalities of system are given below:

Numerical Skills Test: Mental Math (NST): simple to numerical calculation including addition, subtraction, division and multiplication, time, decimals and percentage, measurement including money, distance etc. For example :

  1. 15 + ? = 25
  2. 28 + 4 = ? * ?
  3. 8 / 3 = 3 * ?
  4. Subtraction 6 from 1005
  5. 1/8 of 56 = ?
  6. 3/10 + 2/5
  7. 25% of 325 = ? etc

Problem Solving Test (PST): Simple calculation to complex (language math). for example :

  1. (-3* - 3) + (-2 -5) = ?
  2. (12 + 5 –4 * 12 / 3) = ?
  3. How much more is £5 than £2.23?
  4. If half kg of sweets costs 75p
  5. How much will 100g cost?
  6. Find the difference in cost between 4 small tins at 30p per tin and 2 large tins at 55p per tin ?
  7. Find difference of 1/6 of 30 and 6 times 30; etc

Children need to pass in both test. Pass mark is 50%. If children fail in NST then not allowed sitting in the PST test

After completing the test, the result will be displayed in the format of: name, age, gender, className, no of right answer, no of wrong answer, obtained mark, result (pass – with grade or fail), and list of wrong and right question no.

It is required to store the children information and his/her test report in the file (name, age, gender, className, test date, no of right answer, no of wrong answer, obtained mark, result and grade).

Design and develop a very simple command-based system (windows console application) including the following functionalities:

  1. System must have a login system i.e. when run the program, it should ask the user to enter username and password;
  2. User can try to login on system maximum 3 times then system automatically exit.
  3. If successful login then system will show the menu.
  4. User selection menu will be number or text based for example : [1] Child Registration or [A] Child Registration
  5. This system have five menu:
    • Children Registration
    • Numerical Skill Test
    • Problem Solving Skill Test
    • View Test Result
    • Help,
    • Exit
  6. Children Registration (Full name, age, gender, className)
  7. After registration than children can go for Numerical Skill Test – (need to ask the question one by one) and children record and test’s result (both) need to save in the file.
  8. Help: Supporting information about the system.
  9. Exit: this option should allow the user to exit the system.
View Test Result – display the children’s' test report on the screen, the required format is given below:
Greenwich Primary School
Math Skills Assessment Result

Child Name: Age: Gender: className: Test date:
Result
Test Name Obtained Mark Result Grade .......... Numerical Skills Test: Mental Math Problem Solving Test

Note: Check, where necessary that valid data has been entered or ensure that invalid data cannot be entered.

Student is expected to produce a single program and attach a digital copy of the code in a zip file in appendix of the final assignment report. All program test output screens must be included in the report. Finally, the student will demonstrate a working program in className for oral examination within Microsoft Visual Studio / 2010 or later environment.

Assignment Task 2

Note: requirement specification, program design and technical documents

2.1 Programing language has different features and tools that can be applied for the application design and development. Investigate the procedural programing data type, logical operator, variable file structure etc. and identify the required elements to design and implement for the given problem? [P2.1]

Hint: select the program, based on the features and tools, data structure (local and global variable, array, file structure, statement, data type e.g. integer, double, floating, Boolean, character, string etc.)

2.2 Programing tools are suitable to apply for the design a program, which shows the input, process and output of the particular program. Select and apply the programming tools to design a program for a given problem? Justifying your design methods and techniques. [P2.3, M2].

Hint: identify input, output, processing, algorithm, program design e.g. structure diagram, Data flow diagram, flowchart, pseudocode, entity relationship model. Range of methods and techniques used in system architecture e.g. selection of input, output criteria, processing methods, your program design techniques, components of system and its functionalities (input, process, output)

To achieve M2, you must present the components of the system and illustrate their functionalities clearly; present the evidence that you have applied the various methods, techniques and theories to develop this system.

Assignment Task 3

Note: Modular design (functions, parameter passing, procedures, method), appropriate to language chosen (iteration, control structure (fixed loop, pre-check loop, post check loop, breakpoints), decision, parameters (data types, passing data, return value); scope of variable (global, local etc), screenshot of your coding, program.

3.1 Identify and apply suitable control structures, procedure or methods to implement your program and justify your chosen language (procedural programming, C#). [P3.1].

3.2 Implement your program by creating functions, which need to show the clear concept of parameter passing mechanism [P3.2].

3.3 Practically apply your design to develop/implement a program. Apply various methods, e.g. functions, procedures, looping, data type, decision, switch, file structure etc. Use critical reflection to evaluate your own work? [P3.3, D1]

Hint: Illustrate overall program design and development (coding) process and evaluate your own work including positive and negative aspect.

To achieve D1, your report must present a self-criticism approach in design and development of system.

Assignment Task 4

Note : Mechanism e.g. valid declarations, debugging code, checking functionality, error message, compile error etc; supporting documents e.g. test plan, test result, user guidance etc.; review e.g. design against specification requirements, interim reviews

4.1 Software testing is a very important task and various testing methods are available. Investigate testing methods and critically review what and how you test your developed program. [P4.1, D2]

Hint: identify the different types of testing methods that should be appropriate for this system and defend your methods.

Prepare a test plan (must include your task 4.1 - what you test) with expected result; analyse, compare your actual test result against expected result, and discuss and communicate appropriate the findings. [P4.2, M3]

Hint: prepare the errors list (run time error, syntax error, logic etc.) and explain how you corrected them. You have to discuss and present appropriate screenshots to prove your corrections.

4.3 Based on your findings of task 4.2, evaluate independent feedback on your developed program and recommend suitable improvements that enhance the program (e.g. some additional functionality). Demonstrate your innovative and creating through to evaluate this system and make a suggest the suitable additional functionalities [P4.3, D3]

Hint: Evaluate the overall system by explaining weakness and strength and suggest suitable extra functionalities that will enhance the system.

4.4 Provide the guidelines how to use developed program is very important and there are various methods can be applied to assist the user. Therefore, create on screen help to assist the user how to use your developed program. [P4.4]

4.5 Technical documentation is very important for further improvement or to maintenance the program in future. Design and create a technical document for the support and maintenance of a developed program [P4.5]

Hint: technical documentation (program design, how program works, how to fix problem or bugs?, data structures, structured diagram, flowcharts, data dictionary, programmer comments etc.)

  • To achieve M3, you have to present and communicate appropriate findings in a clear way.
  • To achieve D2 you have to investigate the various testing methods. You have to demonstrate a good skills regarding to identify, manage and organized the various activities in the system testing and able to justify your conclusion.
  • To achieve D3, you should demonstrate a creative and effective thinking. You need to find out additional suitable functionalities with appropriate justification, your additional functionalities must be suitable (integrate/implement) for this system.

Below are some of the common good practices generally accepted as industry standard and followed by those in industry who are using programming in general and the C/C++/C#/Java in particular. You will get more marks for following good programming practices. Some examples are given below.

  • When naming identifiers,
    • o Do not start with underscore (used for technical programming). e.g. _grades (this is bad practice)
    • o Write single word variables in all lower case , e.g. int grades, roots;
    • o Space is not allowed in identifiers, e.g. ‘student grades’ is wrong! write this as studenGrades or student_grades.  Note the use of capitalisation or the underscore.
    • o Use CAPITAL LETTERS TO DECLARE CONSTANTS, e.g. SIZE = 100 or PI = 3.14;
    • o Start function names with capital letters. e.g. AverageGrades(). Spaces are not allowed in function names. ‘Average Grades()’ is wrong. Use AverageGrades() or Average_grades().
  • Make a habit of using Meaningful identifier and Function Names to make your code easier for others to understand. Think about it, what does {"g"} mean? Is it grades, garbage, grave, etc. Thus do not use cryptic identifier names, e.g. Use ‘grades’ to refer to student grades rather than ‘g’. Similarly, use sensible function names. If you want to write a function that assigns student’s grades, then call it StudentGrades(). Do not use your names or names of your pets or any name that does not describe what the function does, but at the same time do not use more than 3 words, i.e. do not use a sentence to name a function. e.g. ThisIsMyAverageFunction() while syntactically correct is not good programming practice.
  • Remember C# is case sensitive so ‘Grades’ and ‘grades’ are not the same as identifier names. Thus be case and spelling consistent. Use an identifier name only once and spell it (upper and lower case) the same way within your program.

1. Outcome of the Units

OutcomesAssessment criteria for pass To achieve each outcome a learner must demonstrate Questions reflecting the outcome
1. Understand the principles of Procedural Programming1.1 Discuss the principles, characteristics and features of procedural programming.Task 1.1
2. Design Procedural Programming Solutions2.1 Identify the program units and data and file structures required to implement a given design.
2.2 Design a procedural programming solution for a given problem.
Task 2.1 and 2.2
3. Implement Procedural Programming Solutions3.1 Select and implement control structures to meet the design algorithms.
3.2 Correctly use parameter passing mechanisms.
3.3 Implement a procedural programming solution based on a prepared design
Task 3.1, 3.2 and 3.3
4. Test Procedural Programming Solutions4.1 Critically review and test a procedural programming solution based on a prepared design
4.2 Analyse actual test results against expected results to identify discrepancies
4.3 Evaluate independent feedback on a developed procedural program solution and make recommendations for improvements
4.4 Create onscreen help to assist the users of a computer program
4.5 Create documentation for the support and maintenance of a computer program.
Task 4.1,4.2, 4.3, 4.4 and 4.5

Glossary:

Analyse: Break an issue or topic into smaller parts by looking in depth at each part. Support each part with arguments and evidence for and against (Pros and cons).

Critically Evaluate/Analyse: When you critically evaluate you look at the arguments for and against an issue. You look at the strengths and weaknesses of the arguments. This could be from an article you read in a journal or from a text book.

Discuss: When you discuss you look at both sides of a discussion. You look at both sides of the arguments. Then you look at the reason why it is important (for) then you look at the reason why it is important (against).

Explain: When you explain you must say why it is important or not important.

Evaluate: When you evaluate you look at the arguments for and against an issue.

Describe: When you give an account or representation of in words.

Identify: When you identify you look at the most important points.