SearcharxivSearch

arXiv subjects

Ildar Akhmetov

Publications and source records attributed to Ildar Akhmetov.

4 recordsLinked to original sources

"CS 1.5": An Experience Report on Integrating CS1 and Discrete Structures for the AI Era

The rapid proliferation of generative AI has fundamentally altered the landscape of introductory computer science education. Traditional methods that prioritize syntax memorization and writing code from scratch are challenged by tools that can generate such code instantly. In response, we designed and implemented an experimental course integration at Northeastern University Vancouver, merging "Intensive Foundations of Computer Science" (CS1) and "Discrete Structures" into a single, cohesive studio experience. Dubbed "CS 1.5"--a playful nod to its position between CS1 and CS2--this course operates on two core principles: embracing AI as a collaborator rather than an adversary, and prioritizing deep theoretical foundations alongside practical implementation. This report details our pedagogical interventions, including the restructuring of the timetable to support a 4-hour studio format, the introduction of "sharing circles" to foster human connection, and the strategic shift to "code comprehension" over code generation. We discuss specific integrated projects--spanning set theory, recursion, and probability--that bridge the gap between mathematical proofs and software implementation. Finally, we reflect on the changing role of the instructor--from a repository of knowledge to a human mentor--and offer practical recommendations for scaling this high-touch, integrated model.

cs.CY

An Empirical Study of Python Library Migration Using Large Language Models

Library migration is the process of replacing one library with another library that provides similar functionality. Manual library migration is time consuming and error prone, as it requires developers to understand the APIs of both libraries, map them, and perform the necessary code transformations. Large Language Models (LLMs) are shown to be effective at generating and transforming code as well as finding similar code, which are necessary upstream tasks for library migration. Such capabilities suggest that LLMs may be suitable for library migration. Accordingly, this paper investigates the effectiveness of LLMs for migration between Python libraries. We evaluate three LLMs, Llama 3.1, GPT-4o mini, and GPT-4o on PyMigBench, where we migrate 321 real-world library migrations that include 2,989 migration-related code changes. To measure correctness, we (1) compare the LLM's migrated code with the developers' migrated code in the benchmark and (2) run the unit tests available in the client repositories. We find that LLama 3.1, GPT-4o mini, and GPT-4o correctly migrate 89%, 89%, and 94% of the migration-related code changes, respectively. We also find that 36%, 52% and 64% of the LLama 3.1, GPT-4o mini, and GPT-4o migrations pass the same tests that passed in the developer's migration. To ensure the LLMs are not reciting the migrations, we also evaluate them on 10 new repositories where the migration never happened. Overall, our results suggest that LLMs can be effective in migrating code between libraries, but we also identify some open challenges.

cs.SE

Characterizing Python Library Migrations

Developers heavily rely on Application Programming Interfaces (APIs) from libraries to build their software. As software evolves, developers may need to replace the used libraries with alternate libraries, a process known as library migration. Doing this manually can be tedious, time-consuming, and prone to errors. Automated migration techniques can help alleviate some of this burden. However, designing effective automated migration techniques requires understanding the types of code changes required to transform client code that used the old library to the new library. This paper contributes an empirical study that provides a holistic view of Python library migrations, both in terms of the code changes required in a migration and the typical development effort involved. We manually label 3,096 migration-related code changes in 335 Python library migrations from 311 client repositories spanning 141 library pairs from 35 domains. Based on our labeled data, we derive a taxonomy for describing migration-related code changes, PyMigTax. Leveraging PyMigTax and our labeled data, we investigate various characteristics of Python library migrations, such as the types of program elements and properties of API mappings, the combinations of types of migration-related code changes in a migration, and the typical development effort required for a migration. Our findings highlight various potential shortcomings of current library migration tools. For example, we find that 40% of library pairs have API mappings that involve non-function program elements, while most library migration techniques typically assume that function calls from the source library will map into (one or more) function calls from the target library. As an approximation for the development effort involved, we find that, on average, a developer needs to learn about 4 APIs and 2 API mappings to perform a migration, and ... (truncated)

cs.SE

How We Manage an Army of Teaching Assistants: Experience Report on Scaling a CS1 Course

A considerable increase in enrollment numbers poses major challenges in course management, such as fragmented information sharing, inefficient meetings, and poor understanding of course activities among a large team of teaching assistants. To address these challenges, we restructured the course, drawing inspiration from successful management and educational practices. We developed an organized, three-tier structure for teams, each led by an experienced Lead TA. We also formed five functional teams, each focusing on a specific area of responsibility: communication, content, "lost student" support, plagiarism, and scheduling. In addition, we updated our recruitment method for undergraduate TAs, following a model similar to the one used in the software industry, while also deciding to mentor Lead TAs in place of traditional training. Our experiences, lessons learned, and future plans for enhancement have been detailed in this experience report. We emphasize the value of using management techniques in dealing with large-scale course handling and invite cooperation to improve the implementation of these strategies, inviting other institutions to consider and adapt this approach, tailoring it to their specific needs.

cs.CY