ICP - Assignment - Question-V1
ICP - Assignment - Question-V1
In order to improve the students’ performance, enhance their problem-solving skill and
confidence level in coding, APU decided to set up an experimental program called
“Programming Café” to provide additional coding sessions for students outside their regular
timetable. Every session will have a duration of TWO hours and classroom will be assigned
for the purpose.
Programming Café sessions will be conducted by selective APU Graduate Students with good
knowledge in their respective programming language, who will be paid a flat rate of RM100
for each TWO hours Programming Cafe session conducted.
APU has selected some of the common programming languages for the Programming Café
Sessions in this experimental phase. The selected programming language sessions are listed in
Table 1. Additional session on different coding subject can be added as required. However, all
the sessions listed in Table 1 must be added into the system by default.
Table 2. Tutor
Tutor ID Name Title
T01 Albert Web Development
T02 Amad C Sharp Programming
T03 Steve Python Programming
You are required to write a program in C language for APU to manage the Programming Café
Sessions based on the requirement given below. The system must be able to handle THREE
different types of users in their respective functional areas. The three types of users are Admin,
Tutor, and Student. Relevant features associated with the user type will be provided in your
system automatically based on the login credential.
a) Registration of Tutor
Admin must be able to add new tutor into the system. Details listed in Table 2 need to be
recorded in the process. Any additional details can be added if necessary. All the tutors
listed in Table 2 to be added by default and available for selection when the system is run
for the first time. The registration process will also include tutor password allocation to
allow the tutor to login using Tutor Code and Password allocated.
b) Adding new programming café session.
System user must be able to add new session or title into the system. All the sessions listed
in Table 1 to be added by default and available for selection when the system is run for the
first time. The tutor must be registered first before a new session can be assigned to the
tutor. Each session can only be assigned to one tutor and one tutor can only take up one
session.
c) Registration of Student
Basic student details such as TP number and name must be recorded in the registration. The
registration process will also include student password allocation to allow the student to
login using TP Number and Password allocated.
d) Enrol student in a session.
A session can be linked to the student in this process.
e) Listing of Programming Café sessions and participating students. See below for the
sample output for this option:
3. Functional features for Student Allow student to view listing of Session(s) assigned to
their student’s name. Listing format refer to 1 (e). In addition, students are allowed to enrol
themselves in any of the available session.
4.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. You are expected to use control structures, functions, array, pointers, structures,
unions and files in your program. Your program must embrace modular
programming technique and should be menu-driven. Functions of similar
operations can be grouped (or kept alone) and stored as separate C files. Header
files are to be stored separately as .h files.
iv. You may include any extra features which you may feel relevant and that add value
to the system.
v. There should be no need for graphics (user interface) in your program, as what is
being assessed, is your programming skill not the interface design.
vi. You should include the good programming practice such as comments, variable
naming conventions and indentation.
viii. You are required to use portable ANSI C programming language to implement the
solution. Use of any other language like C++/Java and etc. is not allowed. Global
variable is not allowed.
take into consideration of all valid inputs and negative test cases. Sufficient test data
is required in text files.
2.0 DELIVERABLES
- Sample outputs when the program is executed with some explanation of the
outputs / sections of the program
- Conclusion
- References using APA Referencing
iv. Submission
- All three files to be uploaded to Moodle by DD/MMM/YYYY latest by
11.30PM.
3.0ASSESSMENT CRITERIA
4.0PERFORMANCE CRITERIA
Credit (65%-74%)
This grade will be assigned to work which 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
(pseudocode 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 (pseudocode 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.