Teaching Experience
I strongly believe that everyone must add a value to society and, in my personal opinion, the best way I can contribute to society is by teaching and sharing knowledge with others. For me, I find teaching is interesting in many ways. One of the most interesting things in teaching is the opportunity to interact with students. Such interaction provides me a way to improve my own skills both in terms of expressing myself as well as being a great source of researching ideas. Another thing is that most of the students are at the threshold of stepping into the real-world, so interacting with them gives me satisfaction that I, as a professor, will have the privilege to take part in the initial stages of their journey.
EXPERIENCE
I have more than 7 years of teaching experience: two years as Teacher Assistant, three years as a Lecturer, and more than a year as a Postdoc.
PHILOSOPHY AND PLAN
Computer Science is a very interesting field. It is not just about learning coding and programing languages; moreover, it teaches students how to think logically, how to design and how to understand systems. Although computer science is a practical field, I believe that students must develop a strong theoretical foundation about it before moving on to practicing on it.
My plan, as a computer science professor, is to adopt a teaching philosophy that combines a solid theoretical background with hands-on experience, and to connect theory with practice. This can be done by building small systems or working through problems by students, when possible, rather than just depending on a theoretical treatment of the subject. I believe that it is necessary to give context to the theory by tying in an application area where the topic is used.
Usually I endeavor my computer science students to think about the problem before engaging in the solution. In the computer science courses, every problem must be analyzed, some hypothesis can be formulated in order to reach the optimal (or near optimal) solution from different possible perspectives.
I marked many points based on my previous experience, some of them, which I consider when I give my courses, are:
- It is important to meet, discuss and get students’ feedback individually in my office hours, which can be very productive from many perspectives.
- In addition to the board, students or any audience are usually more receptive when visual aids are being used in classes or in labs.
- Students feel more connected to the subject if the concepts are connected to popular literature.
- It is very important to frequently add some additional content, with new examples, to every subject to keep it up to date.
- A significant point is to keep the students active during the lecture, for example by asking questions or by creating groups to do a specific task. Such activities give good results at the end of the course.
Concerning the assessment and evaluation, I evaluate my students progressively over the semester through assignments, projects and quizzes rather than just through tests. Also, I consider the research papers and major projects in my evaluation.
And regarding the course design, I believe that it is very important to make a clear work plan to identify and sequence the activities needed to successfully complete any course. The teaching and assessment methods should meet the instructional course design and the Intended Learning Outcomes (ILOs). In addition, it is beneficial to consider and relate the course development with the ILOs. I think that teachers must be careful when using active verbs in ILOs.
From my previous experience, I do believe that the active verbs in ILOs:
- Need to be clear for both students and other teachers.
- State what we as teachers want students to learn, and should reflect what is exactly expected from the students after completing the course.
- Must have a way to be evaluated each time they appear in ILOs. For example: teachers can evaluate students’ understanding (active verb: understand) by quizzes and a final written exam (evaluation method: quizzes or final exam).
TRAINING AND GIVEN COURSES
Below, I summarize an evidence for my teaching effectiveness, as a Teacher Assistant, Lecturer, and Postdoc. Such evidence includes the training courses, and the given courses.
Training Course
I attended the following training programs:
- Training course titled “Teaching in Higher Education – Level 2 (AUPU2)”, at Karlstad University, Karlstad, Sweden, from February 2020 – to June 2020.
- Training course titled “Teaching in Higher Education – Level 1 (AUPU1)”, at Karlstad University, Karlstad, Sweden, from September – to December 2019.
- Training course titled “Strategic Management”, at The Arab Academy for Banking and Financial Sciences, Amman, Jordan, May 2007.
- Training course titled “Teaching Methods and Strategies”, at Al-Mustansiriya University, Baghdad, Iraq, August 2003.
Teaching Experience
I have taught as a Teacher Assistant at Al-Nahrain University for 2 years, and as a Faculty Member at Al-Mustansiriya University for 3 years. In general, if I add the office hours, my total responsibilities were 9 hours a week as a Teacher Assistant, and 18 hours a week as a Faculty Member. The details of the taught courses are:
- Programming Fundamentals
I taught Programming Fundamentals during summer 2001 and spring 2003 quarters at the Department of Computer Science, Al-Nahrain University.
Course description
Programming fundamentals is typically a first programming course. The students were Computer Science major. The goal of this course is to learn modern, though elementary, computer programming techniques. We teach with a popular, modern programming language and the same software tools that computer science professionals use daily. This is a lectures and labs course; the lab part is spent in a computer lab weekly. Students are generally expected to work independently. Each class typically contains 25 students.
My responsibilities
In this course, I was a TA and responsible for the lab part of the course. I asked to present the lecture notes as PowerPoint slides, required the students to complete the homework assignments, and administered the tests in the computer labs. Also, sometimes I was responsible for grading students’ homework.
- Software Engineering
I taught Software Engineering during summer 2001 – spring 2003 quarters at the Department of Computer Science, Al-Nahrain University.
Course description
Software Engineering typically introduces students to software engineering processes, including programming, testing, and software quality. This is a lectures and labs course; the lab part is spent in a computer lab weekly. Students are generally expected to work independently. Each class typically contains 25 students.
My responsibilities
In this course, I was a TA and responsible for the lab part of the course. I asked to present the lecture notes as PowerPoint slides, required the students to complete the homework assignments, and administered the tests in the computer labs. I asked to give tutorials in the labs and to focus on projects and problem solving, and give feedback on the student’s progress and understanding. I was responsible for grading students’ homework.
- Operating Systems
I taught Operating System course during fall 2004 – spring 2007 quarters at the Department of Computer & Software Engineering, Al-Mustansiriya University.
Course description
Operating Systems course exposes the features provided by common operating systems and the principles of modern operating systems. In particular, the course will cover details of CPU scheduling, memory management, file system management, storage management, and input/output management. This is a lectures and labs course. Each class typically contains 40 to 50 students.
My responsibilities
In this course, I was a faculty member. My responsibilities in this course were writing the course lecture notes, creating new assignments, and designing the midterm and final exams. Also, the responsibilities included lecturing and grading. I worked with my tutors in the lab of the course, and interacted with the students at every level of the course.
- Theory of Computation
I taught Theory of Computation course during fall 2005 – spring 2007 quarters at the Department of Computer & Software Engineering, Al-Mustansiriya University.
Course description
Theory of Computation course is introduced through a set of abstract machines that serve as models for computation; they are: finite automata, pushdown automata, and Turing machines. The course examined the relationship between these automata and formal languages. Additional topics beyond the automata classes include deterministic and nondeterministic machines, regular expressions, context free grammars, undecidability, and the P = NP problems. This is a lectures course only. Each class typically contains 40 to 50 students.
My responsibilities
In this course, I was a faculty member. My responsibilities in this course were writing the course lecture notes, creating new assignments, designing the midterm and final exams, and grading. I undertook the full range of responsibilities in relation to supervision, marking and examining to ensure that students’ progress is being monitored and reported.
- Data Structures
I taught Data Structure course during fall 2003 – spring 2007 quarters at the Department of Computer & Software Engineering, Al-Mustansiriya University.
Course description
Data Structure covered the analysis of fundamental data structures and applied methods to analyze the running time of essential data structures and estimate efficiency of the algorithms and implementations. The course focused on basic and essential topics in data structures, including array lists, linked lists, hash tables, recursion, trees, sets, graphs, and sorting algorithms. This is a lectures and labs course. Each class typically contains 40 to 50 students.
My responsibilities
In this course, I was a faculty member. My responsibilities in this course were writing entirely new and complete lecture notes, assignments, weekly quizzes, and final exam. I developed new content and/or update previous content of the course. Also, I provided teaching resources and guidance to my tutors in the lab.
- Theory of Computation
I taught Theory of Computation course during fall 2014 – spring 2016 quarters at the Department of Mathematics & Computer Science, Beirut Arab University.
Course description
Theory of Computation course is introduced through a set of abstract machines that serve as models for computation; they are: finite automata, pushdown automata, and Turing machines. The course examined the relationship between these automata and formal languages. Additional topics beyond the automata classes include deterministic and nondeterministic machines, regular expressions, context free grammars, undecidability, and the P = NP problems. This is a lectures course only. Each class typically contains 20 to 25 students.
My responsibilities
In this course, I was a PhD candidate and Associate Teacher. My responsibilities in this course was to assist in the classroom and carrying out a variety of assignments under the guidance of a course leader.
- Distributed Systems
I’m teaching Distributed Systems course starting from fall 2018 – to present at the Department of Mathematics and Computer Science, Karlstad University.
Course description
Distributed Systems covers general introductory concepts in the design and implementation of distributed systems. The course focused on basic and essential topics in distributed systems, including: indirect Communication, distributed objects, naming and directory services, distributed file systems, peer-to-peer systems, time and global states, coordination and agreement, transactions and concurrency, distributed transactions, replication. Each class typically contains 20 to 25 students.
My responsibilities
In this course, I’m a postdoc and faculty member. My responsibilities in this course are writing entirely new and complete lecture notes, assignments, and participating in writing the final exam. I’m developing new content and/or update previous content of the course. Also, I’m providing guidance to the tutors in the lab.