
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.
This paper examines the challenges and opportunities in teaching Natural Language Processing (NLP) at the undergraduate level, particularly in the era of Large Language Models (LLMs). It discusses the diverse backgrounds of students, including those from computer science and non-computer science disciplines, and the need to incorporate Indian languages into the curriculum. The study identifies key challenges, such as integrating classical NLP methods with contemporary deep learning techniques, and outlines practical issues in syllabus design. By focusing on the unique context of Indian universities, this paper offers actionable recommendations for educators to enhance NLP education. The insights and strategies proposed aim to address the evolving landscape of NLP and prepare students for the demands of the field.
As technology increasingly permeates society, integrating digital citizenship concepts into computer science (CS) education has become crucial. This paper presents a novel framework that seamlessly merges digital citizenship principles with project-based learning (PBL) in CS curricula. The framework emphasizes competencies such as digital literacy, ethical decision-making, and online safety, fostering the development of responsible innovators capable of addressing the societal implications of their work. By aligning digital citizenship themes with relevant CS topics, the framework encourages critical thinking and collaborative problem-solving while providing hands-on learning experiences. The paper outlines specific integration strategies for various CS subjects and proposes comprehensive assessment methods to evaluate both ethical reasoning and technical proficiency. Case studies demonstrate the frameworks practical application, showcasing its effectiveness in cultivating a holistic understanding of technical skills and ethical considerations. This approach aims to empower the next generation of computer scientists to engage in responsible innovation, ensuring ethical practices are at the forefront of technological advancement. The paper concludes by discussing potential evaluation methods for future research and exploring the broader implications of this integrated approach for CS education and the technology industry.
Evaluation of student answer scripts for multiple in-semester and end-semester assessments is beset with the challenges of scale, fairness and timeliness of providing meaningful feedback to students to facilitate their learning. The time-consuming and biased nature of manual evaluation has necessitated the development of automated grading systems. This work presents a solution that incorporates automated and near real-time digital evaluation of students descriptive answer scripts utilizing multi-modal Large Language Models (LLMs) across various university courses. The methodology involves a three-stage sequential process: setting up Retrieval Augmented Generation (RAG), context-aware rubric generation, and context-aware evaluation. We use RAG to provide context to the LLMs to automate the rubric composition for a question and perform an evaluation of answers submitted in hybrid mode (handwritten or digitally keyed in) in near-real time. The incorporation of inputs from one or more course instructors on the LLM-generated rubric vouchsafes meaningful feedback for students to facilitate learning. The results demonstrate the efficacy of our workflow on multiple undergraduate and graduate courses offered to students majoring in several Engineering courses, thus offering a promising solution to the challenge of providing scalable, automated assessments with feedback that facilitates learning.
Code-generation Models are Large Language Models (LLMs) that are fine-tuned to generate code from natural-language prompts. Prior work shows that such models can democratize programming by translating clear English-language prompts into code for simple programming tasks. In this paper, we explore whether this democratization can extend to novice programmers who lack proficiency in English but are able to craft clear prompts in another language. Specifically, we consider prompts in Hinglish, a mixture of Hindi and English that many students in India are comfortable with. We make two contributions. First, we propose a semi-automated technique to translate English prompts into Hinglish, and we use this technique to create HinglishEval: a Hinglish translation of the widely-used code-generation benchmark HumanEval. Second, we compare the performance of several popular open- and closed-source code-generation models on Hinglish and English prompts. Our findings suggest that although code-generation models are generally more effective at generating accurate code from English prompts, their efficacy with Hinglish prompts is promising.
A Refute problem provides students with (1) a programming task and (2) a buggy solution (typically, a function) for that task. A student answers a Refute problem by specifying an input on which the function does not return the expected result (as per the task). This paper makes three contributions. First, by identifying inconsistencies in scores to Refute problems produced manually by Computer Science faculty, we demonstrate that it is challenging to manually score such problems. Second, we identify a key category of near-correct responses whose importance seems to be under-appreciated by faculty in our study. Together, these findings indicate a need for rubrics that can support automated grading and are easy to explain. As a third contribution, we propose RECE (rhyming with peace), a family of simple rubrics for autograding Refute problems. RECE rubrics reward near-correct responses from the above category, but they otherwise align with the scores suggested by faculty. We believe that these contributions will aid faculty in introducing Refute problems as assessment items in programming courses.
The integration of Generative Artificial Intelligence into education has the potential to revolutionize the way vernacular medium students engage with and learn complex subjects such as programming where most available material is in English. This exploratory study is the first step of the Sanganmitra project, where we investigate the effectiveness of a Generative AI-powered programming chatbot for Vernacular Medium with English Materials (VMEM) students. The chatbot was designed to assist students with programming challenges without providing direct solutions. Students were presented with 3 programming problems and could interact with the tool in either English or Marathi. We conducted a study with 42 VMEM students to understand how they interacted with the tool. We also explored if there are differences in the usage between students who use it in English or Marathi. Our findings show that 21
The test-case-based approach is widely used for automated evaluation of students’ lab submissions in Data Structures and Algorithms (e.g., HackerRank, CodeChef). However, this method has key limitations: distinguishing between O(log n) and O(n) time solutions requires large test cases, and even optimal solutions fail sometimes under high server load conditions. As a result, an alternative method for evaluating time complexity is necessary. This study explores the potential of using a Large Language Model (LLM), specifically ChatGPT-3.5, for determining the time complexity of student programs. Using a dataset from four DSA lab problems with 259 student submissions, we compared ChatGPT-3.5’s predictions with the manually calculated ground truth. Our findings demonstrate that the ChatGPT-3.5-based approach achieves an average accuracy of 99.6
JavaScript is one of the most preferred programming languages for web development and many novice programmers use it for learning programming through web development. JavaScript programmers often rely on browser devTools to debug their programs. The error messages in web browsers get logged into the web console, which is a part of the devTools. However, novice programmers often find it difficult to understand and interpret the error messages. Therefore, we propose JestViz, a tool aimed at helping novice web developers through the modification of the error reporting mechanism and visualization of the stack trace from error messages as a function call graph. We conjecture that these improvements provide novice programmers with a better interpretation of program errors, leading to faster debugging. Our evaluation of JestViz with 20 novice programmers involving the task of comprehending and debugging an erroneous JavaScript program showed that those who used JestViz took 46
Cyber security has become a critical concern in todays digital age, and log data analysis plays a pivotal role in investigating the root causes of cyber attacks. However, the teaching and learning of the log data analysis process is intricate, especially in root cause analysis (RCA), necessitating diverse domains of expertise and background knowledge. This study addresses a significant research gap in the existing literature by a comparative analysis of cyber attack RCA performed by novices and experts through log data analysis. The study design process initially involved novices with limited cyber security experience (senior undergraduate Computer Science students) performing a log data analysis of a cyber attack, followed by industry professionals (subject matter experts) performing the same log data analysis. In the research, the participants identified the root causes of a cyber attack through log data analysis, culminating in generating an attack tree as an outcome. The objective was to assess novices ability to identify and deduce the root causes of cyber attacks from log data and generate a comprehensive attack tree through causal reasoning. The follow-up observation and reflections were supplemented by artefact analysis and simulated recall interviews. The studys findings shed light on the disparities in log data analysis skills between novices and subject matter experts. It reveals novices key challenges compared to experts and the nature of novices difficulties. The results of this research also offer valuable insights into the industry practices of log data analysis by experts and their advice contributing to developing more effective teaching-learning methodologies for cyber security education.
Background: Introductory computer science courses use “Explain in Plain English” (EiPE) activities to develop and assess students’ code comprehension skills, but creating effective autograders for these questions is challenging and limited to English. This is a particular challenge in linguistically diverse countries like India where students may have limited proficiency in English. Objective: We evaluate the efficacy of a recently introduced approach called Code Generation Based Grading (CGBG) in enabling language agnostic “Explain in Plain Language” (EiPL) activities. Here students’ EiPL responses generate code that is tested for functional equivalence to the original which was being described. Method: We initially evaluate the correctness of code generated from correct EiPL responses provided in 10 of India’s most commonly spoken languages. To evaluate the effectiveness of the approach in practice, we assess student success and perceptions of EiPL questions in a NPTEL (National Programme on Technology Enhanced Learning) course. Results: We find promising results for the correctness of code generated from translations of correct EiPL responses, with most languages achieving a correctness rate of 75
The paradigm of education has moved from blackboard to digital board, physical books to e-books and physical to virtual classrooms. With the shift from print-based learning to digital, educators and students must adapt. As the digital revolution in education continues, educators need to make sure they aren’t leaving students with disabilities behind. Ask yourself - Is everyone fully participate despite their ability to see, hear and able to understand? Is the hearing challenged student in the class able to follow your lecture? Is the study material supplied?
Understanding student perceptions in higher education is vital for optimizing teaching and learning practices. This research explores the relationship between course characteristics, Student Evaluation of Teaching, and disciplinary differences, with a particular focus on Computer Science courses. Analyzing data from the second half of the 2022 semester at one university, the study investigates the impact of course level, type, and size on student evaluation scores. Additionally, it compares Computer Science courses to other disciplines, revealing key differences in student satisfaction and perceptions. Findings indicate that second-year courses received lower ratings, and theoretical courses in online formats received higher satisfaction than programming courses. Smaller course sizes correlated with higher scores across multiple aspects. However, Computer Science courses scored lower overall and in crucial areas compared to other disciplines, highlighting the need for tailored teaching strategies. This research underscores the importance of continuous assessment and adaptation in higher education to foster positive learning environments and improve student experiences.
The global acceptance of English as the language of science poses challenges to its non-native speakers. There has been prior work that assesses the impact of using a native/regional language as a medium of instruction for a Computer Science (CS) class. However, since classroom instruction involves a lot of non-verbal communication as well, the methodology of those studies is difficult to replicate and hence the results are difficult to generalize. In this paper, we focus on a smaller but potentially more replicable aspect. In particular, we are interested in assessing the impact of bilingual problem specifications on student comprehension in Introductory Programming. Problem comprehension is identified as one of the bottlenecks in the process of solving programming problems by novice programmers. Problems posed in English can be even tougher for its non-native speakers to comprehend. A feature of a typical multilingual classroom in India is that, in addition to having different native languages, the students can also have different levels of proficiency in English. Translating the problem to a language in which the students are more comfortable with, and in a way that reflects their use of the language, may result in better comprehension. In this paper, first, we present a framework for translation of a problem from English to a combination of English and a regional language. The framework allows some customization of the translation to suit an instructor's specific teaching-learning context. We conduct a user study with 25 instructors that gives evidence on the efficacy of the framework. Then we apply it to translate an English variation of the well-studied Rainfall problem [14] to Hinglish (Hindi-English) and pose the two versions to two groups of randomly selected students (who are comfortable with Hindi) respectively. The result of this preliminary user study shows that there is no significant difference in the problem comprehension of students in the two groups.
A recent overhaul of the New Zealand digital technologies curriculum has impacted the way that students are taught to program prior to university. The connection between student experiences with the updated curriculum and their perspectives on programming at university is pedagogically significant to educators. Semi-structured interviews were conducted with eight students enrolled in introductory programming courses at the University of Auckland, and a thematic analysis was conducted on the range of responses, revealing a surprisingly diverse range of experiences and perspectives. Insights gained into the connection between learning to program in secondary and tertiary, and the impact of the curriculum changes across schools, are informative to educators in both sectors.
Learning one’s first programming language includes challenges of syntax, surplus code and semantics. The learning can be easy or quite hard for a novice programmer depending on the programming language. Even the small “Hello World” program code contains semantic and syntactic complexity. This paper discusses the pros and cons of multiple tools that may be used for syntax independent implementation of solutions. Based on the shortcomings of existing tools, Flowgramming – a platform independent flowcharting software for the novice programmer / problem solver and their instructor, is also proposed in the paper. Flowcharts developed using Flowgramming can be executed by the built-in interpreter which helps the novice programmer focus on understanding the problem solving strategy in a visually appealing manner and also allows for a language independent learning of solution strategies.