4B Programming Excellence

download 4B Programming Excellence

of 5

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.