Teaching and education activities
Leadership and activities in software engineering education:
I have been teaching as an academic since 2006. My international teaching experience spans over several countries:
Queen’s University Belfast, UK (since 2019)
Wageningen University, Netherlands (2017-2019)
Hacettepe University Turkey (2015-2017)
University of Calgary, Canada (2006-2014)
I have taught various software engineering courses (e.g., software testing, introduction to software engineering, software project management), and programming courses since 2006. The list can be found below.
Furthemore, I have been involved in various leadership activities in SE education since 2006. Some highlights are provided in the rest of this page:
Leadership in curriculum design
Leadership of degree (program) accreditation committees
Offering open repository of modern Software Testing courseware
Conducting software-engineering "education research"
Certificates in univeristy teaching
Courses that I teach/have taught:
Links to the home-pages or the outline documents of some courses have been provided below. The course home-pages contain the slides and other teaching materials.
Teaching in Queen’s University Belfast, UK:
Software Testing (CSC 3056): Spring 2021
Programming and Systems Development (CSC1024): Fall 2019 (course outline, feedbacks from the students)
Teaching in Wageningen University, Netherlands:
Programming in Python (INF 22306): Spring 2019, Fall 2018, Fall 2017
Software Engineering (INF 32306): Spring 2018
Teaching in Hacettepe University, Turkey:
Undergraduate Level
Software Engineering (BBM 382): Spring 2016, Spring 2017
Software Quality Assurance (BBM 482): Spring 2016, Fall 2016
Introduction to Programming I (BBM 101): Fall 2015
Graduate Level
Research Methods in Software Engineering (BIL 762): Fall 2015, Fall 2016
(Note: Both the lecture videos on the side are in Turkish language).
Teaching in Atilim University, Turkey:
Undergraduate Level
Senior Project (SE / COMPE / ISE 494): Fall 2014
Software Project Management (SE 320): Spring 2014
Graduate Level
Software Engineering (SE 550): Fall 2014, Spring 2014
Research Methods in Software Engineering (SE 600): Fall 2014
Mobile Software Engineering (SE 570): Spring 2014
Advanced Software Project Management (SE 552): Fall 2013
Software Quality Management (SE 554): Fall 2013
Teaching in the Middle East Technical University (METU), Turkey:
Graduate Level
Design Patterns (IS 524): Spring 2013
Graduate Seminar (IS 590): Spring 2013
Introduction to Software Testing (IS 724): Spring 2013
Mobile Software Engineering: Fall 2013
Teaching in the University of Calgary, Canada:
Undergraduate Level
Programming Fundamentals (ENCM 339): Fall 2012, Fall 2011, Fall 2010, Fall 2009, Fall 2008
Software Testing (SENG 437): Winter 2012, Winter 2011, Winter 2010
Software Reliability and Testing (SENG 521): Winter 2009
Component-Based Software Engineering (SENG 501.01): Winter 2008, Winter 2007
Embedded and Real-Time Systems (ENSF 413): Fall 2007
Principles of Computer Architecture (ENCM 501): Fall 2006
Graduate Level
Advanced Software Testing (SENG 639, formerly SENG 607.22): Winter 2012, Winter 2011, Winter 2010, Winter 2009, Winter 2008
GUI Software Testing (ENSF 619.07): Summer 2010
Multi-objective Optimization Using Evolutionary Algorithms (ENSF 619.60): Summer 2009
Experimental Software Engineering (SENG 607.23): Summer 2008
Offering open repository of modern Software Testing courseware:
When I started teaching software testing in 2007, there were not many publicly-available testing courseware for software testing educators to adapt and customize. Even for the existing testing lab exercises developed and/or used by the educators, we observed that there are various drawbacks, e.g.:
They are not usually kept up-to-date with the most recent testing tools and technologies, e.g., JUnit
They are not built based on realistic/real-world Systems Under Test (SUTs), but rather use small SUTs
A brief survey on this topic has been reported as an experience paper.
The above needs motived myself and my collaborators to develop a large-scale open repository of software testing laboratory courseware since 2008.
The courseware has been used by over 50 instructors in their software-testing courses in more than 15 countries worldwide so far. According to many feedbacks that we have received from software-testing educators and students, they find these labs useful and effective for learning.
Conducting software-engineering "education research":
My collaborators and I have been conducting "education research" in the area of software engineering. The followings are several example papers in this direction:
Contributions to software-engineering education efforts elsewhere
I get invited to contribute to education efforts in other universities. For example, I was invited in August 2018 to share my opinions about latest trends in software testing education in an interview for the new automated software testing "Massive Open Online Course" (MOOC) of the Delft University of Technology, in the Netherlands. The interview can be seen in the side video.
Certificates in Univeristy Teaching
I have earned several certificates in univeristy teaching since 2006. For example:
Faculty Teaching Certificate (FTC), Teaching & Learning Centre, University of Calgary, Canada, Nov. 2008
A 4-month long intensive certificate program, which included 6-full-day theory classes, plus video recording of several classes and follow-up feedback and improvements based on them.
Instructional skills workshop (ISW), Teaching & Learning Centre, University of Calgary, Canada, Sept. 2007