ABSTRACT
Functional decomposition is the process of breaking a larger problem into smaller subproblems so that each component implements only a single task. Although functional decomposition is integral to computer science, it is of ten overlooked in introductory computer science education due to the challenges of teaching and assessing it given limited resources.
Earthworm is a tool that leverages static analysis techniques to generate suggestions on how to improve the decomposition of Python programs. Each suggestion includes the lines of code that can be refactored into a new function, the arguments that must be passed to this function and the variables returned from the function. The tool is intended to be used in introductory computer science courses to help students develop decomposition skills.
- Tim Blok and Ansgar Fehnker. 2017. Automated Program Analysis for Novice Programmers. In Proceedings of the 3rd International Conference on Higher Education Advances (HEAd '17).Google Scholar
- Keith Cooper and Linda Torczon. 2011. Engineering A Compiler (2nd ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Google ScholarDigital Library
- Tomche Delev and Dejan Gjorgjevikj. 2017. Static Analysis of Source Code Written by Novice Programmers. In Proceedings of the 2017 IEEE Global Engineering Education Conference (EDUCON). IEEE, 825--830.Google ScholarCross Ref
- Eclipse Foundation. 2017. Eclipse IDE.Google Scholar
- Nupur Garg. 2017. Code Decomposition: A New Hope. Master's thesis. California Polytechnic State University.Google Scholar
- JetBrains. 2017. IntelliJ IDEA.Google Scholar
- Aaron Keen and Kurt Mammen. 2015. Program Decomposition and Complexity in CS1. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education (SIGCSE '15). ACM, New York, NY, USA, 48--53. Google ScholarDigital Library
- T. J. McCabe. 1976. A Complexity Measure. IEEE Transactions on Software Engineering 2, 4 (July 1976), 308--320. Google ScholarDigital Library
- Microsoft. 2017. Visual Studio.Google Scholar
- Nghi Truong, Paul Roe, and Peter Bancroft. 2004. Static Analysis of Students' Java Programs. In Proceedings of the Sixth Australasian Conference on Computing Education - Volume 30 (ACE '04). Australian Computer Society, Inc., Darlinghurst, Australia, Australia, 317--325. http://dl.acm.org/citation.cfm?id=979968.980011 Google ScholarDigital Library
- Mark Weiser. 1981. Program Slicing. In Proceedings of the 5th International Conference on Software Engineering (ICSE '81). IEEE Press, Piscataway, NJ, USA, 439--449. http://dl.acm.org/citation.cfm?id=800078.802557 Google ScholarDigital Library
Index Terms
- Earthworm: Automated Decomposition Suggestions
Recommendations
Alumni as Teachers and Mentors for CS 1 Students: Solving the Staffing Shortage and Students' Reflections about Career and College Advice
SIGCSE 2023: Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 1As computer science education expands at the K-12, post-secondary, and graduate levels, more teachers are needed to staff courses. At the post-secondary level, permanent faculty lines may not match the computer science student enrollment, especially ...
CS 0.5: a better approach to introductory computer science for majors
SIGCSE 08There are often problems when students enter a course with widely different experience levels with key course topics. If the material is covered too slowly, those with greater experience get bored and lose interest. If the material is covered too ...
CS 0.5: a better approach to introductory computer science for majors
SIGCSE '08: Proceedings of the 39th SIGCSE technical symposium on Computer science educationThere are often problems when students enter a course with widely different experience levels with key course topics. If the material is covered too slowly, those with greater experience get bored and lose interest. If the material is covered too ...
Comments