4B Programming Excellence
-
Upload
ahli-sarjana -
Category
Documents
-
view
216 -
download
0
Transcript of 4B Programming Excellence
-
8/3/2019 4B Programming Excellence
1/5
Persidangan Pembangunan Pelajar Peringkat Kebangsaan 2008
Universiti Teknologi Malaysia, 22-23Oktober 2008
1
Programming Excellence through Academic Competitions Case Study iPC 08
Jaspaljeet Singha, Alan Cheah Kah Hoeb, Azlan Bin Yusofc,
Salman Yussofd, Siva Kumar Dorairaje, Uwe Dippelf
College of Information Technology,
Universiti Tenaga Nasional,
43009 Kajang, Selangor, Malaysia.
{Jaspaljeet, Alancheah, AzlanY, Salman, Sivakumar, Udippel} @ uniten.edu.my
Abstract
The issues relating to students with weaknesses in programming subjects have been known in close to all
Institutes of Higher Learning (IHL) in Malaysia. There are a lot of assumptions on, and implication of, this issue.
A recent study conducted at Universiti Tenaga Nasional (UNITEN) indicates that our students are overall
satisfied with the lecturing and tutoring personnel, including the materials used, in the programming courses.
The findings reveal, though, that a majority of the students spend less time to prepare and study for theirprogramming subjects. As a result, we had to conclude that the students lack the necessary commitment to equip
themselves with better programming skills. In an effort to motivate our students to become more skillful in
programming, we have organized an inaugural Inter-Department Programming Competition (iPC 08), a
programming contest between the departments of the technical colleges in UNITEN. This competition was open
to all students that have completed the first programming subject, Principles of Programming. The competition
questions were based on the language taught in this course, C. Each department was to send at least one team of
students, to be selected by the Heads of Department. A real-time online submission system was used for the
participants to submit their answers. Upon receiving the answer from the contestants, a gremium of judges (IT
lecturers) evaluated the respective answers. The iPC 08 competition managed to draw the attention of many
students. The overall response to the competition was very encouraging. This paper focuses on the processes
involved in conducting the competition. We strongly believe that it can serve other IHLs as an inspiration for
organizing similar competitions at their respective institutions.
Keywords: competition; programming; student development
1. Introduction
Teaching and learning the first programming
language is a common problem to most lecturers
and students respectively. An introduction to
programming consists of a difficult mental task for
students and for this reason intense research activity
[2, 5, 6] has been carried out which aims to explore
the relevant problems. Recently our faculty has
conducted a comprehensive study to identify
potential challenges that students face in learning
their first programming language.The study has been divided into three main
areas: support from the faculty, effort from students
and outcome of programming course grades. The
study reveals that most students are satisfied with
the way the lectures and labs are conducted. The
students have indicated that they are contend with
the course materials and facilities provided by the
faculty for their programming course. Therefore,
with such state of art facility, dedicated lecturers
and good teaching approach every student is
expected to perform well and above average in their
first programming course.
The outcome of programming courses is not
much satisfactory in terms of students grades and
their motivation. Students find the assignments and
projects given are difficult and they often do not
perform well in course works. They survey also
indicates that they are not keen in taking up
programming courses. These facts are contradicting
to the hypotheses that the students are expected to
perform well with good support from the faculty.
The reasons for this contradiction are students lackmotivation and enthusiasm in learning
programming courses. The students indicated that
they spend less time in improving their
programming skills and they have wrong mindset
that programming courses are difficult. So it has
become a challenge to the faculty members to
change their mindset and to cultivate good
programming practices that would eventually
increase their motivation and interest in
programming courses. Among the many possible
ways to achieve this goal, the faculty members have
-
8/3/2019 4B Programming Excellence
2/5
Persidangan Pembangunan Pelajar Peringkat Kebangsaan 2008
Universiti Teknologi Malaysia, 22-23Oktober 2008
2
decided to increase students involvement in
academic competitions. By doing so, the students
are expected to realize the importance of computer
programming in the current IT industry. By
participating in such competitions, they will be able
to improve their programming skills and increase
motivation level towards programming courses.
Competition is one of the recommended strategiesto improving individual outcomes in introductory
computer science courses [4].
The Student Development Committee (SDC)
which coordinates our students activities have
several units, with specific responsibilities. The
Academic Competition Unit (ACU) is responsible
to identify, encourage and groom our students to
participate in external academic competitions.
Apart of that, ACU also organizes its own
competitions. In order to handle the current
challenges, the ACU has been entrusted to organize
an inaugural Inter-Department Programming
Competition (iPC 08) that would meet the
objective of improving motivation and interest in
programming courses within our students.
2. Competition Approach
The iPC 08 was targeted at the students of
College of Information Technology (CoIT) and
College of Engineering (CoE) in our university.
These students, irrespective of their program and
specialisation, need to take up a fundamental
programming course in C language. The
departments of CoIT are Software Engineering,
Systems & Network, Information Systems and
Graphics & Multimedia. Similarly, the departments
in CoE are Electrical Power Engineering,
Electronic & Communications Engineering,
Mechanical Engineering and Civil Engineering.
The iPC 08 Secretariat decided to invite all
departments from CoIT and CoE to participate in
iPC 08. We have requested each department to
identify a Liaison Officer (lecturer in-charge)
whose responsibilities are to communicate with the
iPC 08 Secretariat and form the teams (with two
students in a team) to represent their respective
department. The Liaison Officers active
participation was crucial to the success of the
contest.
In order to ensure that the students from all the
departments are eligible to participate, we had tomake sure that the contest questions only involve
the syllabus of the fundamental programming
course. We had decided to accept only two teams
from each department so that no specific
department exploits the contest. Although some
departments may have more than two teams keen or
qualified to participate in the contest, it was the
responsibility of the Liaison Officer of the
department to perform an internal selection to
identify the most eligible teams to represent their
department. The internal selection may be in a form
of interview with the students or even a simple
programming task to be completed by the students
within a stipulated time.
We have decided to make iPC 08 an open-book
contest because the focus was on the problem
solving and not the C language syntax. Students felt
more confident in participating in an open-book
contest which emulates several other programmingcontests in Malaysia. Nevertheless, they are not
allowed to talk to anyone other than their team-
mate. The contest prizes were attractive enough for
the students as well as the department. The winners
receive cash prizes and certificates while the
department receives a specially designed trophy.
These winners would also be the potential
candidates for any future external programming
contests.
3. Competition Content
The questions for the competition were
developed by a group of senior lecturers who are
well-versed in programming. There are eight
questions in total and each lecturer was assigned to
develop two questions. Since the purpose of the
competition is to select students to participate in
external programming competitions such as ACM
International Collegiate Programming Contest
(ICPC) [1] and e-Genting [3], the question
development starts by going through the previous
questions in those competitions. We found out that
the e-Genting competition is more difficult in the
sense that the questions require knowledge from
higher-level programming classes. Since this
competition is open to all students who have taken
only an introductory programming class, we have
decided that the questions should be at the level of
ACM ICPC or less.
The eight questions developed are of varying
difficulty level. The definition of difficulty itself
can be divided into two: difficulty in coming up
with the algorithm to solve the given problem and
the difficulty in coding the solution. As such there
are questions where the solutions are easy and
straight forward, but may require lengthy and
tedious coding due to the nature of the question. On
the other hand, there are also questions that require
some thinking in finding the solutions, but once the
solution is found the coding may be short and
straight forward. Regardless of the difficulty level,all questions are given the same number of marks.
The rationale behind this is to ensure that students
give equal priority to all questions. Easier questions
should be answered to the best of their ability and
they should make sure that they get the full mark.
Even though the all the questions are given the
same mark, this does not jeopardize the judges from
recognizing the top teams since the more difficult
questions can only be solved a small number of
teams and those who solved the difficult questions
can easily solve the easier questions. After all,
-
8/3/2019 4B Programming Excellence
3/5
Persidangan Pembangunan Pelajar Peringkat Kebangsaan 2008
Universiti Teknologi Malaysia, 22-23Oktober 2008
3
students who only like to solve difficult problems
and neglect the easier ones may not be good
candidates to be sent to external competitions.
Since the objective of the competition is to find
out the ability of the students to solve problems, it
is important that the questions are understandable
by students. Each question must be clearly
elaborated and the input and the output are clearlydefined. The lecturer who developed the question
were required to write a sample solution, to make
sure that the questions are really doable within the
allocated time and the difficulty level of the
question is as expected. A screenshot of the output
from the sample solution is also included with the
question. The screenshot is also carefully chosen so
that any special case or error checking required is
included in the screenshot. On top of that, each of
the questions developed are moderated by the other
members of the group. This is to make sure that the
question is not only understandable to the person
who developed the question, but also
understandable to other people reading the
question.
4. Judging Mechanism
The judging process was done in accordance
with the earlier setting of the questions. Involved in
judging were the same four judges who had set two
questions each. All judges were responsible to
judge the two questions that they had set, and for
which they had sample solutions available.
Contrary to the practice of marking examination
questions, no marks were given on the quality of
the code as such. Also, partial solutions if not
indicated as sub-tasks in the questions were not
evaluated. The sample screen output as indicated in
the question was considered as minimum
requirement for each submission. Only when that
sample output was produced by the executable
created by the respective judge from the submitted
source code, would the judge continue evaluating
the quality of the program. Then, the judges would
try another standard test case, one not given to the
participants, to evaluate the quality of the submitted
code further. For example, input validation could be
considered for additional marks up to the maximum
of 25 for each question.
It needs to be mentioned, that the judges did not
know the identity of the groups. The submissionswere projected to a screen in the judging room,
showing the question number and the group
number. Since any submission was final, the
respective judge could immediately start the
evaluation and marking immediately. Also, the
screen would show the time of submission. In case
of equal marks, the solution submitted earlier
would garner the advantage.
Once the time for the participants was up, and
the judgements of all judges as well their comments
were ready, the chief judge collected the marking
sheets as well as the comments given by the judges.
Then the chief judge added up the marks given by
the four judges for each group, witnessed by the
assistant. Then the chief judge repeated the count,
and read the numbers to the assistant, to detect
eventual ambiguities in the handwriting of the
judges. Finally, when agreement on the marks per
participating group was reached among chief judgeand assistant, the groups were sorted according to
the marks, and the corresponding departments and
teams of students retrieved.
Thereby any influence or affiliation of
competing teams and judges were excluded from
the judging process, and guaranteed that fairness in
judging prevailed.
The task of the judges was concluded during the
prize-giving ceremony, when the chief judge
summarized the comments submitted by his
colleagues, as added during the evaluation exercise.
5. Submission System
IPC Submission Websystem (IPCSW) was
developed using PHP, with a MySQL database. It
consists of 2 users admin and participant. On the
admin side, the admin creates the number of
groups of participant. Each group has a unique
groupname and random-generated password. They
will use it to log in into IPCSW. In IPCSW,
participants are allow to submit .c files only. They
can only submit each question once. Fig. 1 IPCSW
shows the submission time for each question, and in
the drop-down box, it will list out the question(s)
which has not been submitted yet.
Fig. 1: Interface for participants to submit the .c file
After submission, the file will be uploaded to the
folder located in the respective drive of the
webserver. The folder is shared, with read-permission for the judges. The judges, being
UNITEN lecturers, have their usernames and
passwords. When logging in to their PCs, the
judges can access the shared folders (see Fig.2).
Since the shared folders are read-only, the judges
have the permission to copy all the files. Then they
can compile and run the executable in their own
PCs. Then the judges can test the programs written
by the students with their pre-defined specific
inputs.
-
8/3/2019 4B Programming Excellence
4/5
Persidangan Pembangunan Pelajar Peringkat Kebangsaan 2008
Universiti Teknologi Malaysia, 22-23Oktober 2008
4
Fig. 2: Shared folder inside the webserver
Admin also has an interface to view the
submission results and times for all groups
participating in IPC. This interface was projected in
the judging room, informed the judges whenever a
new file was submitted. Refer to Fig. 3.
Fig. 3: Interface for view all group submission
result
When the submission time was over, admin
needs to click a button to disallow further
submissions from the participants. The participants
than can neither submit any file, nor login anylonger.
6. Competition Results
The competition has resulted in at least two
positive aspects (aside from successfully organizing
it). Firstly, we have found some good teams of
students to send to future programming
competitions, in- and outside of UNITEN. We will
in future not have to decide ad hoc which studentsmight be qualified to represent the university.
Secondly, we have generated some motivation to
students of future courses to study not only for the
subject itself, but also for potentially rewarding
competitions.
Furthermore, our students understand the
differences between the learning and examination
process, with a grade as a result, and the more
success-oriented judging process in a competition;
on top of gaining experiences with open-book
examinations.
Last not least, a close look at the code
submitted, it is possible to identify specific topics
(SWAT-analysis), where are students are good at,
and which topics we could foster to improve the
overall performance of our programming students.
7. Conclusion
The iPC 08 competition was an effort to draw
programming interest within our students. We hope
that more students will tend to like, enjoy and put in
extra efforts in their programming courses. The
committee in charge has gone through several
processes in organizing the programming
competition. The competition approach,
competition content, judging mechanism, the
submission system and the competition results were
elaborated in detail in this paper. Apart from
elaborating the competition processes, this research
paper also includes the rational of conducting most
of the tasks involved.
We strongly believe that having a competition is
a valuable mechanism in attracting attention and
increasing the motivation level of students. We too
hope that our experiences in organizing iPC 08
will be a contribution to other IHLs in organizing
similar competitions.
Acknowledgements
The authors would like to express their gratitude to
University Tenaga Nasional for the support
provided to complete this paper.
-
8/3/2019 4B Programming Excellence
5/5
Persidangan Pembangunan Pelajar Peringkat Kebangsaan 2008
Universiti Teknologi Malaysia, 22-23Oktober 2008
5
References
[1] ACM-ICPC International Collegiate Contest
Web Site. URL: http://cm2prod.baylor.edu/
[2] Du Boulay, "Some Difficulties Of Learning To
Program". In Studying The Novice Programmer,
Soloway, E., Sprohrer, J. (Eds.) Lawrence Erlbaum
Associates, pp. 283-300, 1989.
[3] eGenting Programming Competition.
URL: http://egpc.genting.com.my/
[4] E. Roberts. Strategies for encouraging
individual achievement in introductory
computer science courses. In ACM SIGCSE
Bulletin, Proceedings of the thirty-first
SIGCSE technical symposium on Computer science
education, March 2000.
[5] Holland, S. Griffiths, R. & Woodman, M.,
"Avoiding object misconceptions", Proceedings of
the 28th SIGCSE, 131-134, 1997.
[6] Milne, I. & Rowe, G., "Difficulties in Learning
and Teaching Programming - Views of Students
and Tutors", Education and Information
Technologies, 7:1, Kluwer Academic Publishers,
55-66, 2002.