Test Specification Table (Sample)

CLO1

Explain the programming concepts used in C 

Programming language. (C2, PLO1)

Class Test

CLO2

Outline a solution with the help of Pseudocode and

Graphical representation. (C1, PLO3)

Individual Assignment

CLO3

Construct the outlined solution into a software

application using C programming. (C3, PLO6)

Individual Assignment

Individual Assignment (80%):


1.0 INDIVIDUAL ASSIGNMENT DESCRIPTION

TRAINING COURSE PACKAGE MANAGEMENT SYSTEM

Knowledgebase Academy in Singapore is providing training courses for adult learners.

The types of training courses and their related details are given in the table below:


Following are the features that the program should have:
You are required to write a program for managing the training course packages for booking.

i. Create the date of schedule of each course.*

ii. Allow booking.

iii. Store participants’ details like person ID, name, gender, course details, payment amount, payment made and any other relevant details.

iv. Check the availability by course offered upon date of schedule for each course.*

v. Bill based on number of courses of booked by participants.

vi. Search participant’s course schedule that has been booked.

vii. Provide payment facility.

viii. Allow early cancellation.

ix. Allow change of training course.

x. Print amount receivable from each participant.

xi. Print total amount receivable and total payment received.

You are required to store all data in text files. There is no limit on the number of text files that can be used but they should be kept minimum. You should use array, structures and functions (called by value and/or reference) in your program. All the features in your program must be coded in separate functions and called from a menu function. You may include some analytics in your program as additional features like most-selling course; percentage of participants who throughout a year; or any other feature(s).

2.0 REQUIREMENTS

i. You are required to carry out extra research for your system and document any logical assumptions you made after the research.

ii. Your program should use symbolic constants where appropriate. Validations need to be included to ensure the accuracy of the system. State any assumptions that you make under each function.

iii. Your program must be modular, user-friendly using programming techniques that you have learnt. You may include any extra features which you may feel relevant and that add value to the system. The menus could be modified in order to facilitate more options.

iv. There should be no need for graphics in your program, as what is being assessed, is your programming skill not the interface design. The marking scheme for the assignment has been provided so that you clearly know how the assessment for this assignment would be done.

v. You should include the good programming practice such as comments, variable initialisation, naming conventions and indentation.

vi. In a situation where the students,

- Failed to attempt the assignment demonstration, overall marks awarded for the assignment will be adjusted to 50% of the overall existing marks

vii. You are required to use portable ANSI C to implement the solution. Use of any other language like C++/java etc is not allowed. Global data is not allowed.

viii. Results of a comprehensive testing is to be included in your document. Each testing shall include test procedure, pre-condition, expected result and result produced. The tests conducted shall take into consideration of all valid inputs and negative test cases.

3.0 DELIVERABLES

You are required to submit:

i. A softcopy of the program coded in C – submitted in a CD. The program should include the following:

- Basic C concepts such as displaying and reading of text, variables, and assignment of values, comments – to explain various parts of the program, etc.

- Intermediate C concepts such as control structures – selection and iteration control structures, use of arrays – single / double scripted, string.

- Advanced C concepts such as functions – programmer defined and library functions, pointers, structures, unions, linked list and files.

- Any other features of C that has not been covered.

ii. A documentation of the system, that incorporates basic documentation standards such as header and footer, page numbering and which includes

- Cover page

- Table of contents

- Introduction and assumptions

- Design of the program – using pseudocode and flowcharts – which adheres to the requirements provided above

- Explanation of portable ANSI C programming concepts applied with sample segment of source code from the system created.

- Additional features which have been incorporated in the solution in terms of design and C codes (sample segment of source code from the system created)

- Test specification table.

- Sample outputs when the program is executed with some explanation of the outputs / sections of the program

- Conclusion

- References – Harvard Name Referencing

iii. CD Content

Documentation file (.docx file if using MS-Word)

Program / Source files (.c files)

Header files (.h files) - optional

Executable file (.exe file)

iv. Binding and Submission

- The documentation (attached with the CD) must be comb bound and submitted to the Academic Administration on the 10th January, 2020 latest by 7.00 p.m.

4.0 ASSESSMENT CRITERIA

 

i.

 

Design solution (Flowchart and Pseudocode)

20%

 

 

 

Detailed, logical and application of appropriate idea.

 

 

ii.

 

Coding / Implementation

30%

 

 

 

Appropriate application of C concepts (from basic to advance), good solution

 

 

implemented with validation and met all the requirements with additional features.

iii.

 

Documentation

20%

 

 

 

Overall standard and layout, referencing (Harvard), screen capture and

 

 

 

assumptions.

 

 

iv.

 

Demonstration

10%

 

 

 

Know how to execute and able to trace the system

 

 

v.

 

Question and Answer

20%

 

 

 

Answered the questions based on the assignment submitted during presentation.

5.0 PERFORMANCE CRITERIA

Distinction (75% and above)

This grade will be assigned to work which meets all of the requirements stated in the question. The program runs smoothly when executed. There is clear evidence and application of C concepts up to advanced level. The program solution is unique with excellent coding styles and validation. The program implemented maps completely against the design (pseudo code and flowchart) as seen in the documentation. The design of the solution varies in styles and has unique logic with hardly any errors / omissions. The documentation does not have any missing components. Sample outputs documented have clear explanation. All work is referenced according to Harvard Name Referencing convention. Student must be able to provide excellent explanation of the codes and work done, show additional concepts / new ideas used in the solution, able to answer all questions posed with accurate / logical answers / explanation provided with sound arguments and clear discussion. Overall an excellent piece of work submitted.

Credit (65%-74%)

This grade will be assigned to work which is considered to be of good standard and meets most of the requirements stated in the question. The program runs smoothly when executed. There is clear evidence and application of C concepts up to at least intermediate level. The program solution is unique with good coding styles and validation. The program implemented maps well against the design (pseudo code and flowchart) as seen in the documentation. The design of the solution varies in styles and has unique logic with minor errors / omissions. The documentation does not have any missing components. Sample outputs documented with some explanation. All work is referenced according to Harvard Name Referencing convention but with some minor errors / omissions. Student must be able to provide good explanation of the codes and work done, answer most questions posed with mostly accurate / logical answers / explanation. Overall a good assignment submitted.

Pass (50%-64%)

This grade will be assigned to work which meets at least half of the basic requirements (approximately 50%) stated in the questions. The program runs smoothly when executed. There is clear evidence and application of C concepts at basic level. The program solution is common with basic coding styles and validation. The program implemented somewhat maps with the design (pseudo code and flowchart) as seen in the documentation. The design of the solution is average in terms of logic and style with some errors / omissions. The documentation has some missing components. Sample outputs documented but without any explanation. Did some referencing but not according to Harvard Name Referencing convention and with some minor errors / omissions. Student must be able to explain some codes and work done and able to answer some questions posed with some accurate / logical answers / explanation. Overall an average piece of work submitted.

Fail (Below 50%)

This grade will be assigned to work which achieved less than half of the requirements stated in the question. The program is able to compile but not able to execute or with major error. The program solution has only basic coding styles with no validation. The program solution has little or no mapping with the design. The design of the solution has major / obvious errors / omissions. The documentation has some missing essential components. No referencing. Student is barely able to explain the codes / work done and answer given on the questions posed but with mostly inaccurate / illogical answers / explanation. Overall a poor piece of work submitted.