Umar Alkafaween

Software Engineer, University Lecturer

6 years of experience as a software engineer, and 3 years as a university lecturer in Computer Science.
Involved in Computing Education since 2014 as a student, a professional, and an academic.

Experience in Educational Products

Edraak Logo
Edraak

Edraak is the largest Arabic MOOC provider in the world serving over 8 million users.
As a software engineer at Edraak, I improved performance, developed features, and enhanced learners' experience.

OpenEdx exercise
Al Jazeera Media Institute

Maintaining and developing Al Jazeera Media Institute's E-learning websites that provide world class MOOCs and Diplomas in Journalism.

Graph visualizer
Gamified Programming Homework Platform

Zero To One was my Bachelors degree capstone project. It is a gamified online programming homework platform that supports auto grading, algorithm visualization, plagiarism detection, and more.

Experience in Startups

Seated
Seated

I built Seated's backend from scratch with a colleague of mine in 2017. Seated provides rewards for making restaurant reservations for millions of users in the US.

PvP.com
PvP.com

PvP is the LinkedIn of video gamers. I built PvP's backend from scratch in 2019 and integrated it to multiple streaming and video game APIs.

Experience as a Freelancer

E-commerce projects
E-commerce

Worked multiple e-commerce projects for clients around the world that integrate multiple services for marketing, shipping, payments, and more.

Lecturer in Computer Science

I taught the Fundamentals of Computing course (CS1) at Al Hussein Technical University throughout the last 3 years.

Teaching Evaluations
Semester Evaluation School Average University Average
Fall 2021 4.45 4.24 4.34
Spring 2022 3.89 4.19 4.31
Summer 2022 4.26 4.45 4.39
Fall 2022 4.67 4.43 4.37
Spring 2023 4.73 4.37 4.31
Fall 2023 4.45 4.42 4.32

Evaluations by students - scores out of 5

Assessment Feedback

Following the results of David H Smith' IV's work on Investigating the Effects of Testing Frequency on Programming Performance and Students' Behavior, I convinced the department to move away from a mid-exam+final-project assessment model in the Fundamentals of Computing (CS1) course, to a multiple-homework based assessment model. Each homework consisted of a group of auto-graded problems that were submitted on Autolab. The development of the autograders and the assessment process on Autolab was done by me.

An example from a homework on Arrays

An example from a homework on Arrays

A student survey at the end of the course asked students to compare the way they are assessed in this course with the way they are assessed in their other courses that use the mid-exam+final project model. Results were positive for the 2 semesters I ran this assessment model. Student performance improved compared to the previous 4 semesters, and plagiarism violations were easier to prove.

Question Midterm + Project No Difference Multiple Assignments
Which assessment model helps you study better? 7% 9% 84%
Which assessment model do you believe would have helped you improve your programming skills better and allowed you to use what you learn in this course in other courses? 6% 4% 90%
Which assessment model is more stressful in terms of trying to achieve your assessment criteria? 66% 14% 20%
Which assessment model do you believe is fairer at evaluating your competence and your final grade? 12% 15% 73%

Student responses to end-of-course assessment survey

Student Feedback (quoted)

Teaching Tools

I use the following teaching tools in my classes:

  • Weekly Moodle quizzes
  • CodeRunner for weekly autograded exercises
  • Autolab for graded assignments
  • Piazza for Q&A and Announcements
  • CodeHelp as a 'legal' no-code AI assistant for students

Online Programming Courses

I have a 19-hour online course that teaches basic programming in C in the Arabic language using a problem solving approach. The course is free for anyone on Youtube and can be found here.

Co-founder and Instructor at Codability

I co-founded Codability, a non-profit programming Summer camp, with a group of friends in 2013/2014 to teach problem solving for school students through interacting with Computer Science.
As an executive member of Codability's board, and also an instructor, we graduated over 1000 students, many of which were employed by big companies like Google, Amazon, Meta, and Microsoft.
Our courses are offered by volunteers that are past and active ACM contestants; national champions, regional winners, and world finalists.
Codability's goal is to provide Computer Science education to school students regardless of their socioeconomic status, that is why our courses cost only 10% of the cost of related courses offered elsewhere in Jordan.

TinyMCE6 Formula Editor Plugin
TinyMCE 6 Formula Editor

A formula editor plugin to allow adding equations and formulas inside TinyMCE6. I forked this from an older package for TinyMCE4 and upgraded it to work with the newer versions of TinyMCE.

Github NPM

Autolab
Autolab Moss Plagiarism Page Change
Autolab Scoreboard Page
Autolab API Change
Autolab Contributions

I have a few contributions to Autolab related to setting up the Autolab instance, running plagiarism checks, and retrieving data from the API. I also created many autograded labs that can be adopted and used by anyone. My labs support test-case checking and unit-test checking and can be used to test C programs in single or multiple files. I am working on making these labs available publicly on my Github.

Github

Attendance Record XBlock
Advanced Survey XBlock
OpenEdx XBlocks

I create XBlocks as part of my work at Al Jazeera Media Institute. XBlocks are educational components used to extend an LMS by adding activities with custom functionality. I currently have 2 open-source XBlocks, one for tracking attendance in a MOOC, and the other for designing customizable surveys that can contain multiple choice and free-response questions.

Attendance Record: Github

Advanced Survey: Github

OpenEdx Exercise Generator Website
OpenEdx Exercise Generator

This website provides a user friendly interface that helps non-tech course staff generate certain exercise and lesson types and paste them directly to OpenEdx problems to be rendered for learners. I am working on making this available and open-source.

Github

Rubygems Logo
Ruby Gems

I have 3 Ruby gems for arranging (ordering/sorting) models, filtering them, and detailing error messages returned to views.

Arrangeable: Github Rubygems

Filterable Model: Github Rubygems

Errors Full Details: Github Rubygems

  • Evaluating Large Language Model Generated Tests for CS1 Programming Problems [Alkafaween, O., Albluwi, I., Denny, P.] - (submitted to JCAL special edition 2024 - under review)

You can find me on

Gmail Logo
Github Logo
LinkedIn Logo
X Logo