Research Article
BibTex RIS Cite
Year 2023, , 1 - 6, 30.06.2023
https://doi.org/10.36222/ejt.1320404

Abstract

References

  • [1] Neapolitan, R., & Naimipour, K. (2010). Foundations of algorithms. Jones & Bartlett Publishers.
  • [2] Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2022). Introduction to algorithms. MIT press.
  • [3] Yadav, A., Gretter, S., Hambrusch, S., & Sands, P. (2016). Expanding computer science education in schools: understanding teacher experiences and challenges. Computer science education, 26(4), 235-254.
  • [4] Project Jupyter, https://jupyter.org/ (accessed Jun. 17, 2023).
  • [5] Forišek, M., Steinová, M. (2013). Explaining Algorithms Using Metaphors. Springer Briefs in Computer Science. Springer, London. https://doi.org/10.1007/978-1-4471-5019-0_1.
  • [6] Forišek, M., & Steinová, M. (2012, February). Metaphors and analogies for teaching algorithms. In Proceedings of the 43rd ACM technical symposium on Computer Science Education (pp. 15-20).
  • [7] Castelo-Branco, R., Caetano, I., Pereira, I., & Leitão, A. (2020, November). The collaborative algorithmic design notebook. In Int. Conf. of the Architectural Science Association (pp. 1056-1065).
  • [8] Ketcheson, D. I. (2014). Teaching numerical methods with IPython notebooks and inquiry-based learning. Proceedings of the 13th Python in Science Conference. Retrieved from http://hdl.handle.net/10754/346689.
  • [9] Reades, J. (2020). Teaching on jupyter. Region, The Journal of Ersa, 7(1), 21-34.
  • [10] Johnson, J. W. (2020, October). Benefits and pitfalls of jupyter notebooks in the classroom. In Proceedings of the 21st Annual Conference on Information Technology Education (pp. 32-37).
  • [11] Cardoso, A., Leitão, J., & Teixeira, C. (2019). Using the Jupyter notebook as a tool to support the teaching and learning processes in engineering courses. In The Challenges of the Digital Transformation in Education: Proceedings of the 21st International Conference on Interactive Collaborative Learning (ICL2018)-Volume 2 (pp. 227-236). Springer International Publishing.
  • [12] V. Liubchenko and H. Parkhomenko, "The Involvement of Jupyter Notebooks as an Educational Tools: A Case Study," 2021 IEEE 16th International Conference on Computer Sciences and Information Technologies (CSIT), LVIV, Ukraine, 2021, pp. 147-150, doi: 10.1109/CSIT52700.2021.9648674.
  • [13] Glick, B., & Mache, J. (2018). Using Jupyter notebooks to learn high-performance computing. Journal of Computing Sciences in Colleges, 34(1), 180-188.
  • [14] Hamouda, S., Edwards, S. H., Elmongui, H. G., Ernst, J. V., & Shaffer, C. A. (2018). RecurTutor: An interactive tutorial for learning recursion. ACM Transactions on Computing Education (TOCE), 19(1), 1-25.
  • [15] Birster, C. A. (2017). Engagement in Foundational Computer Science Courses Through Supplementary Content for Algorithms. arXiv preprint arXiv:1801.06047.
  • [16] Applications of Algorithm Design Approaches to Computer Science Problems Presented via Interactive Jupyter Notebook Pages, https://sites.google.com/view/algorithm-design-approaches/ (accessed June 17, 2023)

Teaching Algorithms Design Approaches via Interactive Jupyter Notebooks

Year 2023, , 1 - 6, 30.06.2023
https://doi.org/10.36222/ejt.1320404

Abstract

Interactive learning environments play a crucial role in facilitating effective education. Traditional approaches to teaching algorithm design techniques often lack interactivity, resulting in a limited learning experience. In this article, we propose the utilization of Jupyter Notebooks, renowned for their versatility in combining code, visualizations, and explanations, as a powerful tool for enhancing understanding and promoting an engaging learning experience in teaching algorithm design techniques. We provide a comprehensive structure for a Jupyter Notebook page, encompassing problem descriptions, brute force solutions, algorithm design techniques, application areas, and references, to present a thorough solution for computer science problems using these design techniques. Our study includes experiments conducted with computer science students, demonstrating the practical application of Jupyter Notebooks in algorithm design education. Furthermore, we share sample Jupyter Notebooks for popular algorithm design techniques, including Divide & Conquer, Greedy, Dynamic Programming, and Backtracking. Importantly, we emphasize the significance of interactive comparisons between brute force solutions and algorithm design techniques, which foster valuable learning opportunities by providing insights into performance improvements, complexity analysis, validation, optimization strategies, trade-offs, and a deeper understanding of algorithmic principles. In conclusion, we propose the integration of Jupyter Notebooks as a potent tool for teaching algorithm design approaches, empowering learners to actively engage with the material, visualize complex concepts, and collaborate effectively. By incorporating Jupyter Notebooks into algorithm design education, instructors can enhance students' comprehension, cultivate critical thinking skills, and facilitate a profound understanding of algorithmic principles and optimization strategies.

References

  • [1] Neapolitan, R., & Naimipour, K. (2010). Foundations of algorithms. Jones & Bartlett Publishers.
  • [2] Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2022). Introduction to algorithms. MIT press.
  • [3] Yadav, A., Gretter, S., Hambrusch, S., & Sands, P. (2016). Expanding computer science education in schools: understanding teacher experiences and challenges. Computer science education, 26(4), 235-254.
  • [4] Project Jupyter, https://jupyter.org/ (accessed Jun. 17, 2023).
  • [5] Forišek, M., Steinová, M. (2013). Explaining Algorithms Using Metaphors. Springer Briefs in Computer Science. Springer, London. https://doi.org/10.1007/978-1-4471-5019-0_1.
  • [6] Forišek, M., & Steinová, M. (2012, February). Metaphors and analogies for teaching algorithms. In Proceedings of the 43rd ACM technical symposium on Computer Science Education (pp. 15-20).
  • [7] Castelo-Branco, R., Caetano, I., Pereira, I., & Leitão, A. (2020, November). The collaborative algorithmic design notebook. In Int. Conf. of the Architectural Science Association (pp. 1056-1065).
  • [8] Ketcheson, D. I. (2014). Teaching numerical methods with IPython notebooks and inquiry-based learning. Proceedings of the 13th Python in Science Conference. Retrieved from http://hdl.handle.net/10754/346689.
  • [9] Reades, J. (2020). Teaching on jupyter. Region, The Journal of Ersa, 7(1), 21-34.
  • [10] Johnson, J. W. (2020, October). Benefits and pitfalls of jupyter notebooks in the classroom. In Proceedings of the 21st Annual Conference on Information Technology Education (pp. 32-37).
  • [11] Cardoso, A., Leitão, J., & Teixeira, C. (2019). Using the Jupyter notebook as a tool to support the teaching and learning processes in engineering courses. In The Challenges of the Digital Transformation in Education: Proceedings of the 21st International Conference on Interactive Collaborative Learning (ICL2018)-Volume 2 (pp. 227-236). Springer International Publishing.
  • [12] V. Liubchenko and H. Parkhomenko, "The Involvement of Jupyter Notebooks as an Educational Tools: A Case Study," 2021 IEEE 16th International Conference on Computer Sciences and Information Technologies (CSIT), LVIV, Ukraine, 2021, pp. 147-150, doi: 10.1109/CSIT52700.2021.9648674.
  • [13] Glick, B., & Mache, J. (2018). Using Jupyter notebooks to learn high-performance computing. Journal of Computing Sciences in Colleges, 34(1), 180-188.
  • [14] Hamouda, S., Edwards, S. H., Elmongui, H. G., Ernst, J. V., & Shaffer, C. A. (2018). RecurTutor: An interactive tutorial for learning recursion. ACM Transactions on Computing Education (TOCE), 19(1), 1-25.
  • [15] Birster, C. A. (2017). Engagement in Foundational Computer Science Courses Through Supplementary Content for Algorithms. arXiv preprint arXiv:1801.06047.
  • [16] Applications of Algorithm Design Approaches to Computer Science Problems Presented via Interactive Jupyter Notebook Pages, https://sites.google.com/view/algorithm-design-approaches/ (accessed June 17, 2023)
There are 16 citations in total.

Details

Primary Language English
Subjects Computer Software, Software Engineering (Other)
Journal Section Research Article
Authors

Oguzhan Topsakal 0000-0002-9731-6946

Early Pub Date June 30, 2023
Publication Date June 30, 2023
Published in Issue Year 2023

Cite

APA Topsakal, O. (2023). Teaching Algorithms Design Approaches via Interactive Jupyter Notebooks. European Journal of Technique (EJT), 13(1), 1-6. https://doi.org/10.36222/ejt.1320404

All articles published by EJT are licensed under the Creative Commons Attribution 4.0 International License. This permits anyone to copy, redistribute, remix, transmit and adapt the work provided the original work and source is appropriately cited.Creative Commons Lisansı