Blended Learning for Programming Courses
2021-12-13 09:47:38 By:-Saroj Jha
Improving CS Education: Blended Learning for Programming Courses
Blended learning can be identified as the thoughtful integration of different online and face-to-face instructional methods such as lectures, self-paced activities, and online discussion groups. It can increase students’ flexibility and convenience, improve their learning outcomes and increase their engagement in learning. It can also allow instructors to better interact with their students and develop a variety of solutions to course problems.
Over the last decade, blended learning has been growing in popularity as it has proved to be an effective approach to overcome various limitations related to traditional teaching approaches. As a result, a number of instructors have attempted to utilize blended learning to improve their students’ performance in computer science courses. In their attempts, they utilized different blended learning components and adopted different blended learning models. However, it is important to note that only a thoughtfully planned blended learning approach can produce richness and achieve the desired outcomes.
Challenges of teaching introductory programming courses
Programming is becoming a core course for many undergraduate degrees. However, teaching programming courses have several challenges. Students’ characteristics, teaching methods, and nature of programming are a few of them.
Different students have different learning styles and different preferences in the way they learn and acquire knowledge. Students learn more when the educational experience is geared toward their own learning styles. However, in traditional classrooms, all students must learn in the same way and in accordance with the instructor’s style of teaching and pedagogical strategies. Another challenge related to students’ characteristics is poor motivation. Unmotivated students are most at risk of dropping out or failing programming courses.
Traditional teaching methods are not very effective in engaging students in programming activities. Instructors use most of the class time to teach the syntax and semantics of a programming language. Less time is dedicated to monitoring and enhancing students’ problem-solving skills. In order to make programming more appealing and interesting, instructors need to employ collaborative and student-centered teaching approaches.
Nature of programming
Programming languages have complex concepts and syntax which are hard for most novice programmers to comprehend and apply in their own programming tasks. In addition, learning to program requires a variety of skills such as critical thinking, abstraction, and generalization. It also requires knowledge about programming languages, problem-solving and programming tools.
Components of blended learning
Knowledge does not exist independent of the learner; it is constructed through interaction with the content or other individuals. The five blended learning components are:
Face-to-face instructor-led: Students attend a class where an instructor presents materials with little opportunity for interaction, hands-on learning, or practice. It allows instructors to maintain control over their students’ learning and to deliver a large amount of content to a large number of students.
Face-to-face collaboration: Encourages students to work together in class, e.g., discussion groups, pair programming problem-based instruction.
Online instructor-led: Instruction delivered online with an instructor who sets the pace and offers interaction, e.g., webcasts, virtual classrooms. This component has the same benefits as face-to-face instructor-led with one extra advantage i.e., it is not constrained by location.
Online collaboration: Encourages students to work together online, e.g., online learning communities, online peer review. Compared to face-to-face collaborative work, this method does not have the constraints of location and time.
Online self-paced: Allows students to study at their own pace, from their own location and in their own time e.g., online reading, watching videos.
Considerations for Selecting Blended Learning Software
The checklist to evaluate the blended learning software is as follows:
Does the software provide concise and actionable data to both the tutor and the student?
Will the software be engaging for students to use?
Is the design of the software grounded in research and best practices?
Is the software’s curriculum implementation adaptive, and dynamic?
Will infrastructure limitations (such as slow internet connections or old devices) prevent students from using the software at school or at home?
Building a blended learning course
To understand how to implement blended learning in the classroom, instructors should consider the key skills and concepts students need to master by the end of the course. Then, they should develop material, activities, and assessments that align with these goals. After that, the next step is sourcing the right technology to help accomplish these objectives and deciding how the traditional and technological aspects of the model can work together. Some tech options include:
Online IDE: Without any hardware limitation, cloud-based learning environments (which may include compilers, auto-grading and more) help to improve the productivity of a programmer. Online IDEs are very easy to use with only a web browser and an active internet connection. Compile, save your code, and access it from anywhere without any overhead of management and resource limitation. These web-based applications can be used remotely through any network connection, or devices (platform-independent). The errors/output of the compiled program can be stored more conveniently. To experience the benefit of an online IDE first-hand, we recommend you sign up for free on Lab.computer, one of the leading IDE’s for computer programming.
Student Assessment Tools: Through formative assessment, teachers check student understanding, get valuable data on student learning, and then use that data to modify instruction. When teachers know what students know (or don't know), they can adjust to meet students right at their level. The best formative assessment tools also help students self-reflect and assess, figuring out where they are and where they need to go as learners.
Learning Management System: An LMS provides each class with a base of operations, a central place from which they can share media and connect with students. It offers a common space to work and learn and a live experience that supports the blending of physical and virtual spaces. Google Classroom, Canvas, Blackboard, etc. are a few examples of learning management systems.
Video Conferencing: A part of student-centered learning is student collaboration and active learning. If students cannot see each other, they will have a difficult time interacting. The video conferencing companies are releasing new features all the time, with breakout rooms, virtual backgrounds, and virtual assistants. Studies show that positive group experiences lead to better learning outcomes, retention, and overall college success. And having the right video-conferencing tools will certainly enhance the experience. While Zoom is great for large group video calls, Google Meet, Microsoft Teams, Cisco Webex, etc. are other few.
Blended learning requires that educators use class time to build on key concepts through dialogue and debate, and that may require rethinking how best to use in-class and online teaching methods. Understanding students’ prior knowledge, their comfort with technology, and which (if any) learning accommodations they need is also important in delivering an effective blended learning experience. When it comes to STEM education, and computer programming specifically, a number of companies are offering innovations that help instructors improve learning outcomes and feedback loops.
Lab.computer is an online IDE for computer science classes that makes teaching, and learning software programming easy and interactive. Interested in learning more about online IDEs for programming, please feel free to contact us.
Alturki RA. Measuring and Improving Student Performance in an Introductory Programming Course. Informatics in Education. 2016;15(2):183–204
Jacobs CT, Gorman GJ, Rees HE, Craig LE. Experiences with efficient methodologies for teaching computer programming to geoscientists. Journal of Geoscience Education. 2016;64(3):183–98.
Kori K, Pedaste M, Tõnisson E, Palts T, Altin H, Rantsus R, et al., editors. First-year dropout in ICT studies Global Engineering Education Conference (EDUCON), 2015 IEEE; 2015: IEEE.
Alammary A, Carbone A, Sheard J, editors. Blended Learning in Higher Education: Delivery Methods Selection ECIS; 2016
Dawson JQ, Allen M, Campbell A, Valair A, editors. Designing an Introductory Programming Course to Improve Non-Majors' Experiences. Proceedings of the 49th ACM Technical Symposium on Computer Science Education; 2018: ACM.
Graham CR. Blended learning systems: definition, current trends, and future directions In: Bonk CJ, Graham CR, editors. Handbook of blended learning: Global perspectives, local designs. San Francisco, USA: Wiley, John & Sons, Incorporated; 2012. p. 3–21.
Bath D, Bourke J. Getting Started With blended learning 2010:[73 p.]. Available from: http://www.griffith.edu.au/__data/assets/pdf_file/0004/267178/Getting_started_with_blended_learning_guide.pdf.