
Lambda Calculus forms the foundational basis for all functional programming languages. In addition, since most other modern programming languages are slowly incorporating functional features such as higher-order functions, lambda expressions, and combinatory logic operators, one can argue that a basic understanding of Lambda Calculus is necessary for modern computer scientists. Typically, Lambda Calculus is introduced in the undergraduate Computer Science curriculum in the Programming Languages Concepts, Programming Paradigms, or Functional Programming courses. In this paper, we present a command-line tool and an interactive Web visualization tool that provide a platform for the student to learn to formulate and evaluate lambda expressions. In the command-line tool, the user can compute free-variables in lambda expressions, perform alpha-reductions and substitutions, and simplify lambda expressions using beta-reductions. This interface is convenient for evaluating lambda expressions to its most reduced form by going through a series of beta-reductions. In the visualization tool, the user inputs a lambda expression and interactively evaluates the expressions, one beta-reduction at a time. The lambda expression is shown in the form of an expression tree, with ready to execute function application nodes shown in green. The student can click on any of these green nodes to perform a beta reduction and the resulting tree is shown. The student can also go back to any of the previous trees to try other beta reductions. The tool was validated in an offering of the Programming Language Concepts class and results from the study are presented in the paper.
This study explores the use of video analysis and Optical Character Recognition (OCR) to generate accurate logs for tracking user search behaviors for external resources during collaborative problem-solving activities on the RoboReady educational platform. The research included 15 teams of engineering students who interacted with a website designed around the PISA 2015 collaborative problem-solving framework. Video recordings of the users screens were analyzed using image processing and OCR to extract URLs and timestamps of visited web pages. The study compares these logs with those collected through server-side tracking, noting the limitations of the latter in capturing external resource usage. The methodology includes frame extraction, URL isolation, and text recognition using Tesseract OCR and Google Cloud Vision API. Challenges like noisy OCR output and the necessity for manual verification are addressed. The generated logs provide insights into users navigation and resource usage. However, limitations such as video quality dependency, scalability issues, and the need for manual intervention are also discussed. This research enhances the understanding of users behavior in online learning environments and offers methodological insights for studying digital learning interactions.
Software testing systematically evaluates and verifies that a software application meets specified requirements and functions correctly. Consequently, proficiency in software testing is a key skill demanded by graduates in the software development industry. Despite its importance, software testing has not received sufficient attention in curricula and teaching practices in undergraduate computer science courses. Teaching-learning software testing brings various challenges for students and instructors, e.g., generating an exhaustive list of test cases, dividing code into testable chunks, fixing the size of projects, etc. Contemporary research reveals that researchers have used TDD to teach software testing and integrated it with programming/SE courses. TDD suggests writing tests before writing code. Gamification and Project-based/ Problem-based learning are also widely used pedagogies for teaching testing. This paper is a meta-review that maps challenges with existing teaching methods/tools to understand current researchs limitations for addressing and unexplored challenges. Analysis of this paper is based on three latest systematic reviews, an additional 28 empirical studies on teaching testing, and three papers discussing challenges in detail.
In India, there are concerns about the learning quality and the skill set of the graduates, as only 47
Recursion, a fundamental concept in computer science and engineering, presents both challenges and opportunities for new learners. This paper explores innovative teaching methodologies and empirical insights from a study to enhance freshmen engineering students understanding of recursion. Additionally, we integrated a prototype study to illustrate the practical application of recursion in real-world scenarios, aiming to deepen student engagement and comprehension. A total of 57 students were divided into four groups (traditional learning - group 1, physical activities - group 2, recursion creator - group 3 and tower of Hanoi problem solving - group 4) consisting of 15,15,14, and 13 students, each taught with a different approach. For each of the groups, a pre-study, and a post-study assessment was taken. Results of this activity were observed and analyzed. It showed that using innovative approaches such as physical activities and the recursion creator improved the understanding of recursion, while the isolated problem solving was not as effective and impactful among the students.