Usage of Technology Enhanced Educational Tools for Delivering Programming Courses

Methods and approaches behind technology enhanced learning (TEL) in programming courses at a university level encourage continuous research in the last 20 years. Still there is no generally applicable way that would guarantee success. In this paper some experiences gathered during years of a technology-enhanced approach in teaching Object-Oriented Programming (OOP) at two universities in two countries are presented and compared. Emphasis is given on the technology-enhanced educational tools that were selected or developed by the two institutions for teaching OOP. Different traditions and independent development at both institutions allow us to draw generally applicable conclusions and recommendations.


I. INTRODUCTION
Pedagogical theories and methodologies underpinning technology-enhanced learning in introductory programming courses attract teachers' community and foster continuous research at least since the end of the nineties.However, it still has not led to a generally applicable way of teaching and learning that would guarantee the best possible success under the given circumstances.This intrigued and inspired us to analyze, present, and compare selected experiences gathered during nearly a decade of technology-enhanced approach in teaching object-oriented programming languages (OOP) at university level, with specific focus on Java.
The analysis of the approaches and technological tools employed was conducted at two universities in two countries (Serbia and Greece).Our motivation is to try to give recommendations for delivering an introductory course on OOP using TEL.Our institutions apply some of the existing methods and use a set of suitable software tools to enhance everyday teaching practice.
Within CS1 course, at the University of Novi Sad, Faculty of Sciences (UNS-PMF) Modula-2 is used, and at the Technology Management Department at the University of Macedonia (UOM-TMD) the programming language C is used.Imperative first approach is adopted at both institutions.OOP is taught at both institutions within a subsequent course based on Java, a programming language that is widely accepted and proven in practice as a good language and platform for an introductory course on OOP [1].Thus, students entering the OOP course possess preliminary programming experiences and they are already familiar with concepts and principles of data structures and algorithms.
In this paper we have examined a number of issues affecting learning design and quality of those courses at both institutions.Based on the performed quantitative and qualitative analysis, the history of our two courses and their current state is evaluated in order to extract some key recommendations for planning, designing, deployment, and evaluation of similar courses.
In the following sections we present information regarding the OOP course profile and the application of TEL at UNS-PMF and UOM-TMD.Specifically, in section II we present the aims, the teaching approach utilized and the learning design of the course at both institutions.In section III, we present how both institutions apply TEL at their OOP courses, and in section IV we give some remarks on students' and teachers' experiences and opinions regarding these courses.Finally, some conclusions are drawn based on the experiences and the comparison of the applied approaches at our institutions.

II. COURSE PROFILE
At both UNS-PMF and UOM-TMD it is required that the majority of second year bachelor students master essentials of Java and OOP and become able to use fundamental concepts of OOP while building at least simple software solutions.Therefore, it was not difficult to identify common goals of our two courses [2]: • focus on fundamental OO software development tasks and programming concepts rather than simply learning Java constructs; • comprehending and using standard library classes; • analyzing/extending existing user-defined classes; • designing simple OO applications; • implementing programs in Java.Students willing to cope with advanced Java concepts, motivated by the requirements from business [3], can further upgrade their Java programming knowledge in subsequent courses offered at their university or by selfstudying [1].

A. Teaching Methodology
Teaching methodologies applied within programming courses depend on a wide range of factors: students' motivation, good balance between theoretical and practical aspects of teaching, tradition of teaching at a particular university, teacher's specific teaching style, etc.Even though the university community adopted the objectorientation as an appropriate paradigm with strong expectations, it appears that it is not a particularly easy iJET -Volume 6, Issue 4, December 2011 PAPER USAGE OF TECHNOLOGY ENHANCED EDUCATIONAL TOOLS FOR DELIVERING PROGRAMMING COURSES task [4] and needs a lot of effort to adjust the teaching style and methodology appropriately.
The traditional method of teaching OOP at UNS-PMF was to use the typical face-to-face lectures together with assigning students programming problems to solve.This method, however, worked well only for good students with high analytical problem-solving skills.Even if complemented with an applied, hands-on, approach, it lacks specific mechanisms to provide all the students with equal chances to grasp the programming concepts the instructor aims to convey.
Since UNS-PMF believes that programming skills and techniques should be acquired in interaction with other people and from a wide variety of sources, the current UNS-PMF practice applies blended learning modus by supporting the traditional course with online tools for delivery of self-study instructional units, assignments, topic-specific discussions, various types of online examinations, and other pedagogical aids.Software solutions that are used to support such a delivery of blended OOP course are: • learning management system (LMS) Moodle [5] for course organization, (adaptive) delivery of additional resources [6], and a variety of communication, collaboration and testing facilities, • custom-made Web-based tutoring system within the integrated learning environment named MILE [7], which provides additional learning resources and provides high interactivity, offering many examples and exercises, • IDEs, namely BlueJ [8] and a little bit further in the semester Eclipse [9], for presenting the main concepts of OO design and programming during theoretical exercises, as well as for solving optional homework assignments and students' self-practice in general, • code visualization tools like Jeliot [10] for providing concrete representation of the dynamic aspects of presented programs and improving students' attention, • in-house submission system called Svetovid [11], for efficient collection of students' solutions to practical assignments and their timely and efficient grading.The course at UOM-TMD is based on the microworld approach to teaching programming [12] and the educational IDE BlueJ [8].First, a brief (2 weeks) introduction to OOP concepts takes place based on the microworld objectKarel [13] with the aim of familiarizing students with the most fundamental OOP concepts in a clear and intuitive way.objectKarel is based on Karel++ [14], the well-known metaphor of the world of robots carrying out various tasks in a restricted world.It constitutes a learning environment that incorporates: • a learning module with brief and concise theory and hands on activities for familiarizing students with the taught concepts before they are asked to implement them, • a programming environment, incorporating a structure editor for developing programs, enhanced error reporting for the very few syntactical and semantical errors that can arise, program animation with immediate feedback on the depicted world of robots and explanatory visualization.
Next, the BlueJ IDE and Java are used for presenting the main concepts of OO design and programming.Students use the interactive interface of BlueJ in order to construct objects, invoke their methods and inspect their state without having to write from the very beginning a main method.However, these interactive features of BlueJ are used with caution, since their extensive usage can favor the appearance of specific difficulties and misconceptions regarding the dynamic aspects of OOP [15], [16].The Jeliot extension for BlueJ is also used for supporting students in comprehending the dynamics of OO programs.In the middle of the course the professional IDE JCreator is also presented and students are left free to decide on their own which environment fits better to their needs.
Overall, the adopted approach is "objects-first" (within the course), iterative (important concepts are taught first and often), and project-driven.The use of the technologyenhanced environments objectKarel and BlueJ plays an important role in applying this teaching approach.Both experience and the results of the long-term evaluation of the course have shown that the combined use of these environments has positive results [17].
As is the case for UNS-PMF, UOM-TMD also uses an LMS, called CoMPUs.However, this is mainly an asynchronous e-learning platform that was implemented for supporting course management for all the departments at the University of Macedonia and does not have any adaptivity features.CoMPUs is used for: organizing and delivering the educational material and additional resources to students, collaboration and communication, assigning projects to students and collecting their assignments.
It can be concluded that both institutions are convinced that programming skills should be best acquired in interaction although some aspects of the actual pedagogical methodology at employed software tools may differ.UNS-PMF practices blended-learning modus by offering a wealth of (adaptive) self-study material to students, together with modern and efficient, semiautomated assessment of their work performed in lab using specialized custom tools.UOM-TMD focuses explicitly on the proven benefits brought by the microworld approach to teaching programming and the chosen set of tools, together with practicing a projectdriven approach within lectures, labs and homework assignments as well.

B. Learning Design
At UNS-PMF the course consists of 2 hours per week of lectures, 2 hours per week of theoretical exercises and additional 2 hours per week of lab exercises (during the semester that lasts for 12-13 weeks).In the lectures the teacher explains crucial OO concepts using PowerPoint slides and excerpts of code implementing the concepts presented, while within theoretical exercises students are confronted with complete Java programs/solutions for different problems, as illustrations of the theoretical concepts acquired in the previous lectures.
Within the following lab exercises, attended by 10-15 students at the designated time slot, some practical assignments are solved individually, ranging from very simple and straightforward ones in the first couple of weeks, to rather complex ones at the end of semester.

PAPER USAGE OF TECHNOLOGY ENHANCED EDUCATIONAL TOOLS FOR DELIVERING PROGRAMMING COURSES
Their effort is analyzed and graded on weekly basis, so they form one part of their final grades (30%) in small steps.A special custom environment Svetovid [11] is used to provide students with simple mechanisms for editing and testing their code, but also to prevent cheating and allow teachers to grade all the solutions promptly and effectively.
The mentioned final grades are based on max.30 points for solving practical assignments, and max.30 points collected in three interim theoretical tests that in fact focus on testing students' problem-solving skills using the newly gained knowledge.Students are required to gather at least 30 out of a total of 60 points to approach the final oral exam (which is worth additional 40 points, i.e. the remaining percentage of the final grade).
At UOM-TMD the course consists of 2 hours per week of lectures and 2 hours per week of compulsory lab exercises (during a 13-week long semester).So, in comparison with UNS-PMF the course is taught 2 hours less per week.Actually this means that what is achieved at lectures and theoretical exercises at UNS-PMF must be achieved solely at lectures at UOM-TMD.In the lectures BlueJ's projects and PowerPoint presentations are used.Specifically, each lecture starts with posing a specific realworld problem that has to be modeled with an objectoriented program.A brief discussion takes place in class, in order to identify the classes needed for modeling the system.First, a simplified UML class diagram is presented and then the OO concepts which are used as basis for the implementation of the underlying classes.In several cases students are given excerpts of code implementing the concepts presented, or even brief tests for evaluating their understanding of the presented concepts.In the lab, students solve assignments, with or without the teacher's guidance.Those assignments are sometimes submitted before leaving the lab through the asynchronous e-learning platform CoMPUs.Furthermore, within each lab exercise students are assigned homework that has to be submitted within one week.
Students' final grade consists of: 20 points collected in the lab and by solving homework programming assignments; 20 points from middle-term, open-book exams on paper; 60 points from final-term exams.The aim of the course, as we mentioned in section II, is for students to be able to comprehend and use fundamental OOP concepts for implementing OO programs.So, emphasis is given on lab and homework programming assignments that require several hours of work during the whole semester.The fact that the points granted for these programming projects constitute a small percentage of the final grade is due to the lack of an automated mechanism for preventing cheating.However, experience has shown and students have knowledge of the fact that devoting time to their programming assignments guarantees success in both exams.The middle-term exam has the aim of assessing students' knowledge, while giving both the teacher and the students the chance to acknowledge difficulties and misconceptions and take actions for tackling them in time.
Similar conclusions have been made at UNS-PMF as well, but thanks to the specialized tools that are employed to support the efficient, semi-automated assessment of students' progress in online theoretical tests as well as during and after lab exercises during which students produce a lot of code on weekly bases, only 40% of the student's grade is formed in the final oral exam.Homework is given only from time to time, and is not graded, since the focus is on regular evaluation of the work performed in controlled lab environment using custom tools that integrate mechanisms for prevention of cheating.These practical assignments, together with three interim theoretical tests serve, like at UOM-TMD, for getting insights in the progress made and acknowledging potential difficulties and misconceptions so that they can be addressed timely and appropriately.

III. TECHNOLOGY-ENHANCED LEARNING
TEL can have a considerable influence on the improvement of students' attitudes towards learning, enhancing their success, increasing communication among students and teachers, and giving them confidence to study advanced subjects without pressure [18].Recognizing these advantages in teaching programming, both institutions apply blended learning style in their OOP courses, though using different educational tools.
UNS-PMF identified the important goals that should be met when conducting a blended programming course, in particular its online component, in: • content organization and presentation, including basic teaching material and additional, flexible selfstudy resources, • providing efficient communication and evaluation facilities.The course conductors at this institution agree with current experiences of other universities that programming languages can be successfully taught in Web-based environments and LMSs.Therefore, LMS Moodle [5] is used for basic course organization and presentation of study material.The course is divided into twenty six sections: sixteen core segments and ten additional ones covering advanced Java topics.It consists of traditional static teaching material, adaptive eLessons, and a mix of various synchronous and asynchronous activities and resources, such as quizzes, glossaries, wikis, and discussion fora.Besides that, some of the resources used during lab exercises are presented, together with practical assignments that are formulated and graded online, but solved individually during regular classes.
For self-studying purposes two possibilities are offered: using eLessons developed in Moodle, extended with basic personalization features [6], and/or using Mag, a custom Web-based tutoring system which is a part of the integrated learning environment MILE [7] that supports teaching, learning and student assessment.
The course can be characterized as learner-centered since, although presenting equivalents to face-to-face lectures, adaptive eLessons implemented in Moodle offer students a possibility to take as much time as they need to explore the available content.They can explicitly choose different paths or can be directed to different parts of the instructional material depending on their answers to the encountered questions, i.e. their previous and newly acquired knowledge.
Mag is as well intended to be used by students who need additional explanations of basic OO and Java concepts presented in a more relaxed and simpler way.As addition to the teaching material Mag offers many simple examples and elements of scaffolding teaching and PAPER USAGE OF TECHNOLOGY ENHANCED EDUCATIONAL TOOLS FOR DELIVERING PROGRAMMING COURSES visualization that help students in understanding and adopting difficult OO concepts.
For testing students' knowledge two different mechanisms are applied: Moodle's Quiz module for testing theoretical knowledge and problem-solving skills, and special submission system Svetovid [11] for collecting and semi-automatic assessment of students' code, i.e. solutions to programming assignments created during lab exercises.Both solutions help course conductors in preventing various irregularities and obtaining an objective process of grading students' accomplishments.
Within Moodle, small tests for self-evaluation of learning progress are sprinkled throughout eLessons.For grading purposes, three major interim quizzes are conducted during the semester.A pool of over 250 questions has been created, consisting mainly of problemsolving questions similar to those used in Sun's Java Certification Exams.Tests are created and solved using Moodle's Quiz module and in the controlled lab environment, in order to prevent cheating as much as possible.Moodle's gradebook functionality is used for administration of all points and final grades.
To leverage the effort of lab activities and grading students' solutions to programming assignments, teaching assistants use Svetovid.Apart from rather standard functionalities, Svetovid incorporates certain additional characteristics: • allowing students to code their solutions comfortably with the help of a structure editor with reduced set of functionalities in comparison to other available IDEs; • allowing beginners to familiarize themselves with the concepts of the specific units rather than writing a program from the beginning (experiments via already prepared tests); • incorporating significant part of standard Java documentation, extended instruction set and hints, which helps students to quickly refresh things necessary for problem they have been solving; • detecting and reporting understandable and informative error messages; • helping instructors to promptly and safely collect and grade student solutions.Regarding communication and collaboration tools, UNS-PMF mainly uses adequate Moodle features (discussion fora, instant messages, integrated mailing facilities, chat sessions, wikis, and blogs).These mechanisms allow students to share ideas, help each other to solve common issues, post their inquiries or reactions to a course (or group) discussion forum, to contact the teachers and get feedback just in time when a piece of advice is needed.
However, as it is proven in literature [19], students are not very eager to use e-learning 2.0 communication/collaboration capabilities like blogs and wikis.Even more discouraging is the fact that less than 20% of students use discussion fora and instant messaging regularly.Most of the students actually report that they still prefer personal communication or use e-mail instead.However, the majority of students agree that employing various ways of communication is indeed very practical and potentially useful.
At UOM-TMD teaching and learning is based, as we have already mentioned, on two distinct technologyenhanced programming environments: the microworld objectKarel and the educational IDE BlueJ.The University's asynchronous e-learning platform called CoMPUs is used for course management and delivery of material.The features of the platform used mostly for supporting students in learning, are: • Calendar: it is kept updated with the lessons carried out, their content, and information for the associated educational material that is available in the platform.• Documents: this tool presents students with a structure of folders corresponding to the lectures.Each folder is enabled when a lecture is carried out and contains all the necessary educational material used at lectures and labs: PowerPoint presentations, programming projects, commented programs and quizzes.• Students' assignments: a tool used for accessing information about the weekly homework assignments, as well as for submitting them in the predefined deadline.
• Discussion forum: the forum is organized in sections that correspond to lectures, as well as a section for general topics.Students can post their question/ comment and their colleagues and/or the teacher can respond.The features of CoMPUs utilized mostly by the teacher for course management are: • Description of the course: this area contains a description of the didactical aims and the content of the course, the available educational material, the textbooks, the software needed, students' obligations and grading policy.This information is available from the beginning of the course and constitutes a clear didactical contract between the students and the teacher.• Students' assignments: the tool is used by the teacher for assigning homework to students, collecting their solutions and downloading them organized in a separate folder per student.A spreadsheet with the assignments submitted by each student can be downloaded, as well as the final grades if the assignments are graded online.• Announcements: announcements can be sent by email to all enrolled students.Experience has shown that the platform supports both teaching and learning, in various ways: students are always kept informed for all the issues concerning the course (lectures, labs, assignments, exams); the educational material is easily accessible from anywhere; the material can be very easily updated by the teacher depending on students' needs; assignment and submission of projects is simplified; there is a chance for communication and cooperation among students and teachers whenever it is needed.All the aforementioned services are heavily used, except for the last one.Although students are strongly encouraged to use the forum for communication and cooperation during studying and carrying out programming assignments, experience has shown that it is poorly utilized.
In addition, with the aim of supporting students in selfstudying, additional educational (SCORM-compliant) PAPER USAGE OF TECHNOLOGY ENHANCED EDUCATIONAL TOOLS FOR DELIVERING PROGRAMMING COURSES material is being prepared.This material will have the form of a course delivered through the adaptive SCORM compliant LMS ProPer [20].This material, combined with the advantages of adaptivity, should, at least according to the experiences of UNS-PMF, support students that: face difficulties with OOP, do not attend lectures regularly, or need to refresh/elaborate on their knowledge at some time of their studies.
Finally, an issue that has not yet been resolved is the adoption of an existing online tool or the implementation of a new one, for assessing students' programs automatically and providing them with immediate feedback.Such a solution, similar to the one employed at UNS-PMF, would certainly bring lots of benefits to both students and teachers conducting lab exercises and evaluating homework assignments.

IV. STUDENT'S AND TEACHER'S EXPERIENCES
During the last several years, at both institutions students regularly fill-in questionnaires to provide feedback for each particular course they take part in, usually towards the end of each semester.Students are usually satisfied with the introductory OOP course, the teaching methodology and the style of grading that teachers employ.They usually point out the great value of such a blended course to anyone who would like to learn basics of OO using Java in a pleasant and interesting way.
The results of the UOM-TMD course's formal evaluation that took place towards the end of the winter semester 2010-2011 are presented in Table I.Specifically, the course's average score for seven different criteria, as well as the average score for the 29 winter courses offered at UOM-TMD are presented.For the first four questions the score is in the scale 1-5 (1=not at all, 2=slightly, 3=averagely, 4=much, 5=very much).
The most important conclusions of the course's evaluation can be summarized as follows: • Students evaluated positively the organization and presentation (TI.2: 4.26), the interest and contribution (TI.3: 4.14), the adequacy of the educational material (TI.4: 4.22), and the overall quality (TI.1: 4.27) of the course.• The average scores for all the aforementioned criteria were higher for the OOP course than the corresponding average scores for the 29 winter courses, a result that clearly shows students' satisfaction with the OOP course.• Although students consider the course more difficult than other courses (TI.6), and rather difficult in general, they devote less time to this course each week (TI.7).Taking into account the fact that the number of students that fail the course is not higher than that of other courses considered difficult, as well as the fact that the course is one of the few that employ weekly programming assignments and middle-term exams we believe that the following conclusion can be drawn: technology-enhanced teaching methodology and educational tools employed at the course are rather successful.
Similar survey was conducted at UNS-PMF as the course's evaluation at the end of the winter semester 2010-2011.The overall grade that the course received was 8.4 on a 1-10 scale.Other specific course's average scores for seven studied criteria are presented in Table II.According to the students' opinions some important conclusions can be made at UNS-PMF as well: • As expected, most of the students felt that they had enough pre-knowledge to follow the course (TII.1).• Students evaluated rather positively the organization and presentation (TII.2), the interest (TII.3) and the up-to-datedness (TII.4) of the course, as well as the applicability of the knowledge they gained in their future work (TII.5).• The adequacy of the educational material available online and in paper versions was also ranked high (TII.6).• Since the survey participants were mainly students that attended the classes regularly (TII.7),we can trust their opinions and their clear overall satisfaction with the course.• From the answers the students' gave on additional open-ended questions present in the survey it can be concluded that the majority of them consider the OOP course to be more difficult than other courses they attended, mainly because of the amount of work that they are required to perform on weekly basis by solving programming assignments.However, they are aware of the benefits of such practice having in mind their future work that will also depend heavily on practical programming skills and following strict deadlines.• Knowing that the number of students that fail the OOP course is not higher than that of other courses at UNS-PMF, and taking into consideration all the aspects of the course and student's final results, we believe that once again it can be concluded that TEL and specific tools that were employed within the course proved to be rather successful.
Teachers that are involved in these courses, claim that, though online activities are fairly challenging supplements to traditional teaching and learning, they can significantly help students.As most of the facilities used for study administration are integrated directly in the chosen LMSs, teachers agree on their positive impact on administrative workload reduction.Additionally, the available mechanisms enable teachers to produce readable, high quality teaching material and improve communication with students.Different communication tools become vital means of informing students on important course issues.
UNS-PMF also has positive experiences with using online tests for official assessment, as well as Svetovid's functionalities, since it prevents students to share their programs during classes, and increases the speed of students' solutions assessment.Students, however, often state that testing conducted using computers causes additional pressure to them, provoked by evident time limits and the possibility of hardware failure.Regarding the use of Svetovid submission system, students sometimes complain that the system is rigid, not comfortable enough in comparison to other IDEs.Therefore, finding a proper balance between students' comfort and needed efficient security measures should be the overall mission for the future course runs.
UOM-TMD also appreciates the support provided both to students and teachers from automated evaluation of students' solutions to programming assignments and is in the process of adopting such a system.However, it does not think that it is necessary to integrate the development environment with the submission and automated evaluation system.It might be more effective to leave the students free to use the IDE that suits better to their needs.Of course, this approach has the disadvantage of potential cheating when the system is used during classes.However, with the evolution of the course this is no more a big issue, since students have realized that cheating does not help them pass the course, while hands-on experience in programming does.

V. CONCLUSIONS
In this paper we presented experiences of teaching OO programming at two universities, comparing the applied approaches and methodologies, assessment strategies and effects that they impose.This comparison allowed us to draw some common conclusions: • Objects-first approach is not necessary.Even more beneficial these activities are conducted using online tools, together with providing instant, informative feedback.TEL is routinely applied at both institutions, and feedback is positive from both teachers and students.However, it is clear that an institution can successfully employ a wide variety of pedagogical methodologies and tools for TEL.There still seems to be room for in-house solutions at large institutions, but open source alternatives are clearly gaining on importance, especially when extended to support adaptability and personalization [21].
Getting and reflecting on valuable feedback represents another important issue not ideally resolved yet by largescale learning environments.However, probably the key research task of today is how and how far should one go in applications of Web 2.0 tools in programming and other university courses right now as well as in the future.

TABLE I .
STATISTICS OF COURSE'S EVALUATION AT UOM-TMD

TABLE II .
STATISTICS OF COURSE'S EVALUATION AT UNS-PMF Online component is not enough.Although they can help and motivate students, sometimes online activities are simply not enough.Students are especially reluctant to use contemporary Web 2.0 tools.They still prefer e-mails or face-to-face encounters with teachers when they need additional explanations on some course issues or content.•Technology-enhanced educational programming environments support students' introduction to OOP.UOM-TMD gained very positive experience using educational programming environments.The microworld objectKarel supports students greatly in PAPER USAGE OF TECHNOLOGY ENHANCED EDUCATIONAL TOOLS FOR DELIVERING PROGRAMMING COURSES changing their imperative way of devising solutions to problems to an OO one.Furthermore, BlueJ with its interactive and visualization features supports students in smoothly transferring from the microworld to Java.However, several students, mainly the more motivated ones want to use a professional IDE at some time of the course.Similar conclusions were drawn at UNS-PMF as well.• Semi-automated evaluation of the work performed by students has positive impact on the effectiveness and fairness of grading process.UNS-PMF gained very positive experiences using online tests and other semi-automatic grading mechanisms, especially in terms of saving teachers' time and increasing the transparency of the evaluation procedure.Although LMSs and other support systems are simplifying the grading processes, it is always advisable to keep the grading schema simple.• Homework, promoting continuous work, should count towards grading.Despite the risk of cheating, UOM-TMD finds it good if there are homework tasks significantly contributing to the overall grading.It actually motivates students to work continuously out of the class, promotes online discussions and helps in developing teamwork skills.• Continuous monitoring of students' progress is essential for dealing with difficulties timely and effectively.Monitoring students' progress can be achieved in various ways, such as grading lab activities or homework, middle-term exams, tests and quizzes, etc.