My Views On Teaching And Classroom Strategies
I enjoy teaching mainly for two reasons. First, there is nothing more rewarding than seeing someone’s eyes light up as they comprehend a new concept. Second, in the process of teaching a difficult concept to others, we ourselves gain a deeper understanding of that concept. My first teaching duties were as a teaching assistant in the department of computer science at the Iran University of Science and Technology and spanned a variety of topics including: Foundations for Programming, Advanced Programming, Database Design and Microprocessor and Assembly. All these combined together, allowed me to teach a few classes as well as play an active role in setting up assignments, exams and grading them. As a TA I observed that students are more receptive in class when pictures/movies are used during teaching and it can help to grab the bigger picture a lot easier.
Another valuable point I learnt is that students feel very connected to the subject if the history of the topic is made clear or an attempt is made to connect the concepts to popular literature as it helps to stimulate a lot of discussions in class with many students interested to get involved. In-class discussions can be extremely valuable for the entire class, including the instructors! I believe that it is crucial that students be provided with the “big picture” and how what they are being taught fits into said context. If students understand the relevancy and importance of a topic, they will likely be more motivated to learn. Furthermore, the big picture allows students to create analogies and relations between what they are learning and what they already know. Thus, they will achieve a better understanding of the material.
During these years, I came into conclusion that the best classroom strategy has two main facets. First, it’s interactive and well-organized. Proposing thought-provoking and critical questions is my way of stirring students’ thoughts. Hence, I always encourage participation and discussions in the classroom. Because not all individuals are willing to initiate participation, I often try to raise some exciting and/or challenging questions and ask the students to guess the answers. Also, I found that one of the most common problems in teaching is in having vague course objectives. Setting unambiguous goals and objectives at the beginning of the class is not only crucial for continuous student progress in the course, but also keeps motivation charged throughout the semester.
Second, it has the ability to connect theory to practice. Computer science is a practical field. Based on the feedback provided by students I believe that students should have a hands-on experience in building small systems or working through problems rather than just a theoretical treatment of the subject. The impact of a hands-on experience tends to stay for a much longer time. Earlier classes will focus on helping students develop the skills that they need and getting them the experience and confidence to be able to use them. Earlier exercises will be narrower to help guide them into making the right decisions. As they become more experienced, focus can be shifted onto design and critical thinking. Later exercises can be more open to allow them more opportunities for making useful design decisions. Knowing that engineering is the art of balancing a series of tradeoffs, it is important that the students are able to understand the theory behind the skills well enough to elaborate on why they should use a particular method and why it is better than an alternative. It’s a good approach to ask students to turn in short reports with their projects explaining their decisions and their rational for those decisions. It is also a good practice to create exams in a way that requires critical thinking instead of just relying on students’ memory. It’s also very effective to use diverse styles in teaching. Using only one routine has the benefit of consistency, but also has the disadvantage of dropping students’ excitement. Switching between a few different teaching styles may break the redundant routine, while still maintaining steadiness in teaching. For example, using PowerPoint presentations is often considered as a good; however, using the whiteboard might be better in some cases.
- Starting with what students may relate to: I always aim to begin teaching my classes the material most relatable to students. This captures the class’s attention and facilitates student comprehension of the topic at hand. For example, when I teach the Internet protocol suite (i. e. TCP/IP model), I choose to use a top-down teaching approach. That is, I start by the application layer and its applications as opposed to the common approach of teaching the physical and data-link layers first. I found that opening with common application protocols (e. g. HTTP, FTP, etc. ) gives the students more curiosity and allows for better grasp of the subject, based on a gradual transition from familiar topics to the ones that they have not been exposed to.
- Linking between theory and applications: Students usually lose interest when they do not see direct applications of what they are learning. In my lectures, I intend to provide examples from real industry implementations that correlate to the subject in order to assist and aid student visualization. For example, in teaching algorithms, I make a point in showing relations between the different algorithms and some of their practical uses in real life. Connecting the shortest-path algorithms and some of the common trip-planner online systems (such as the one used by the Ottawa’s public bus website) is just one example. While classroom teaching is important, most learning happens outside of the classroom.
Creating interesting and challenging homework assignments is crucial. We are fortunate in computer science that we can design homework assignments where students can learn by doing. Projects where students design and implement software can be a great learning experience, and can be used to teach both theoretical concepts as well as essential practical software skills. My assignments are usually intended to enrich students’ vision about the course material. By doing, students are able to learn. I believe in giving them sufficient chances to practice the skills we teach them. This allows them the opportunity to properly learn how to solve problems, become confident that they can actually do it, and the time to relearn topics if they did not get it right the first time. Practice makes permanent.
I received a 4. 38 out of 5 rating on the student evaluation and received an honorable mention at the department’s teaching awards ceremony. I designed the course to be very challenging and was extremely pleased at how well the class did. Based on my teaching experience and background in computer science, I currently feel most comfortable with teaching courses on operating systems, networking, and distributed systems. Apart from these classic systems courses, I would also be interested in teaching systems for data science.