Run since Winter Term 2014, the ENCMP 100 Programming Contest has proven to be a success. In addition to the extracurricular efforts by all students who entered, the quality of their entries has been mainly Good or Excellent. A diverse group of first-year engineering students have impressed their instructors with their significant creativity and competency in computer programming using MATLAB.
For educators at other institutions interested in running a programming contest of their own, we provide details below on how we did it at the University of Alberta. The latest versions of supporting documents are hyperlinked in the text below. They can also be downloaded from the bottom of this page. Contest organizers are grateful to The MathWorks for helping to launch this contest.
The contest was optional and not for credit, so it was important that we communicated to students good reasons to enter. Instructors did this by introducing and discussing the contest using a brief introductory presentation. Students were also directed to supplementary documents with additional details. These documents, created with input from multiple instructors, hit on the following "Reasons to Enter":
Professional Development: Entering the contest is a good bullet point for resumes. It differentiates students from a crowd and lets instructors get to know them better, which is useful if students were to later ask instructors for references.
Publicity: This Google Site and an associated YouTube Channel serve as a resource for students later in their careers. Contestants can link to their published work therein, easily sharing some of their undergraduate achievements with prospective employers (or postgraduate supervisors). See Consent to Publish below for details on the procedures used to publish student work.
Contest Prizes: The Department of Electrical and Computer Engineering regularly sponsors participation prizes for all contestants who earn a "Minimal Pass". Those who come 1st, 2nd, or 3rd in each category receive an additional prize.
The contest structure was also influenced by our goal to motivate students to enter. By having two categories, now called Games & Puzzles and Applications, the contest provides more opportunities for students to succeed. An additional incentive, for those new to programming, is that contestants may elect to limit their entry to the scope of MATLAB programming as defined by the course.
The ENCMP 100 Programming Contest was an extracurricular activity offered to a large cohort of students (over 900 in 2014), registered in multiple lecture sections, having a wide variety of prior exposure to programming concepts and practices. This presented some challenges in administrating the contest. We eased this process through several decisions.
Online Submissions
Contest entries were submitted online using the University of Alberta's learning management system, which is called eClass (previously, Moodle). A submission includes both MATLAB code and a video presentation. In addition to publication potential, choosing video presentations avoided the scheduling hurdles associated with traditional (live) presentations. The contest structure is thus scalable.
To support students new to video making, we provided them some video making tips that helped them get started. Generally, video submissions ended up being very well done and exhibited a wide variety of styles and visual approaches.
Grading Rubric
Since we do not stipulate the functionality of programs that contestants develop, we expect (and there has been) a large variability in the submissions. In addition, we do not ask students to follow a specific video-presentation format. In order to ensure a consistent assessment process, one that can also be performed independently by more than one assessor, we developed a descriptor-based grading scheme involving standard letter grades and a rubric. Students are provided with the rubric from the outset. The grading scheme considers two criteria:
Primary Consideration: Originality, skill, and quality of the code and video.
Secondary Consideration: Reflections on the software engineering process.
The rubric and other specifics are described in the programming contest details, an additional document shared with contestants at the outset. As the submission deadline approaches, contestants are reminded to revisit the rubric.
At the University of Alberta, creative works of students are their intellectual property. Therefore, to publish their contest submissions online, we must ask students respectfully for their consent. Granting this permission is completely optional and does not affect in any way the grades awarded to contest entries. In rare cases of tied rankings for 1st, 2nd, or 3rd places, willingness to share the work may be considered.
Through consultation with the University's General Counsel and the University's Information and Privacy Office, we created an approved consent to publish form asking students for permission to share their work. The document was carefully written to make clear that student work would be published on third-party sites, like YouTube. At any point, students are free to request the removal of their work from the sites we use.
The issues surrounding consent to publish were a good opportunity to teach students about wider considerations related to creative expression. To this end, we created a rights and responsibilities document that summarized their intellectual property rights as well as their responsibilities to follow copyright law and accepted community guidelines. While addressed also by the University's Code of Student Behaviour, ethical issues take on new dimensions when assignments are made public, exposing students and their work to interests beyond an in-class setting.