This semester, Prof. Antonella Di Lillo (COSI) deployed a new academic tool in the core computer science class, “Data Structures and the Fundamentals of Computing,” COSI 21A. The tool, known as DALPy, formerly Cormen-Lib, was built and published as open-source software by two students, Eitan Joseph ’22 and Chami Lamelas ’22.
DALPy, short for “a Python package for learning data structures and algorithms,” was made for administering and grading assignments in data structures and algorithms courses. In a March 26 interview with Justice, Lamelas stated, “data structures and algorithms are two of the most important topics in computer science, both academically and professionally.” DALPy was initially created to replace pseudocode as the tool used by COSI 21A students to complete problem sets.
Algorithms expressed in pseudocode look more like plain English rather than real programming languages. Because pseudocode does not have a strict syntax to express common programming constructs, it cannot be run on a computer. Using the DALPy software, students can write their solutions in a programming language that a computer can understand and execute. Additionally, DALPy offers testing utilities that faculty can write test cases with and check if a student’s code is working properly.
Students benefit from the DALPy test cases because they can track their progress on assignments as they complete them. Students now have a better idea of what score to expect on each assignment, which greatly reduces the anxiety around receiving their grades. Consequently, “students can focus more on learning the material,” Joseph said. “The DALPy test cases allow students to verify their understanding of course material, which is something that is difficult to do by hand with more complicated topics.”
“When designing DALPy, we took industry standard candidate evaluation tools, like HackerRank, and rebuilt them into a new product geared towards academic usage,” said Joseph. He stated that candidates generally write code that passes a series of automated tests during technical coding interviews, much like how the DALPy software evaluates students’ assignments. With the University adopting this software, computer science students can now get accustomed to this type of evaluation process before their interviews.
When asked about how DALPy was specifically made for academic usage, Joseph stated that, “performance evaluation in industry and in academics are fundamentally different. In an industry setting, a strong applicant is able to solve problems quickly using any means necessary. ” However, Joseph explained that in school, most assignments set restrictions on how students can solve homework problems in order to facilitate familiarity with a range of data structures. DALPy uniquely meets this demand by allowing course administrators to specify which library data structures are allowed to be used on a particular assignment. This forms a cohesive assignment release and submission pattern that eliminates any questions students may have regarding restrictions.
In addition to enhancing the student experience, DALPy also benefits the course staff, as problem sets completed using DALPy are graded more efficiently and fairly. In the past, students ‘pseudocode submissions were graded by teaching assistants who traced students’ work by hand. They would have to execute students ‘code pseudocode line-by-line like a computer and see if the students’ code worked properly. This is a very slow and tedious process that typically results in grading errors, but problem sets done with DALPy can be checked for correctness by a computer. This eliminates grading mistakes and significantly reduces grading time.
DALPy is being used for the first time this semester. Three problem sets have already been successfully administered and graded using this tool, and after this semester, the developers will gather feedback from students and course staff on their experience using DALPy. The developers hope that this open source project will remain in use at Brandeis and will be adopted by other universities.
The DALPy library offers a set of fundamental data structures and algorithms as defined in “Introduction to Algorithms,” one of the most widely used data structures and algorithms textbooks. A total of 13 data structures defined in “Introduction to Algorithms” are offered by DALPy at this time.
DALPy is built on top of Python, one of the most dominant programming languages in the world. Python formed a perfect base for the DALPy software as its English-like syntax was very similar to the pseudocode used in “Introduction to Algorithms.” Despite this similarity, Python’s standard library does not offer data structures that match the textbook, so enforcing restrictions on homework assignments in “vanilla Python,” or the basic, unmodified version, is an administrative nightmare. With the entirety of Python’s base installation library available, it is nearly impossible to predict which tools could make a homework problem trivial. DALPy takes the best parts of Python and uses them to form a new academically oriented product.
The authors of DALPy began planning this software in the spring of 2021. The goal was to provide the Computer Science department with a scalable tool that could be used in any future data structures and algorithms course. Although DALPy is fully equipped to handle the current iteration of COSI 21A, it is also easy to modify. Because all of the code backing this project is fully available online accompanied by extremely detailed documentation, future course administrators can easily change the software as needed. After verification by a member of the DALPy team, a new version of the software can be released to the public. This way, the product can be flexible enough to meet the future demands of computer science departments around the country as needed.