|
1 | 1 | ---
|
2 |
| -title: 'FDS Python: Fundamentals and Data Structures with Python' |
| 2 | +title: "FDS Python: Fundamentals and Data Structures with Python" |
3 | 3 | tags:
|
4 |
| -- python programming |
5 |
| -- think python3 |
6 |
| -- beginning programming |
7 |
| -- data structures |
8 |
| -- interactive python |
| 4 | + - python programming |
| 5 | + - think python3 |
| 6 | + - beginning programming |
| 7 | + - data structures |
| 8 | + - interactive python |
9 | 9 | authors:
|
10 |
| -- name: Ram B. Basnet |
11 |
| - orcid: 0000-0001-6864-6893 |
12 |
| - affiliation: 1 |
13 |
| -- name: Tenzin Doleck |
14 |
| - affiliation: 2 |
| 10 | + - name: Ram B. Basnet |
| 11 | + orcid: 0000-0001-6864-6893 |
| 12 | + affiliation: 1 |
| 13 | + - name: Tenzin Doleck |
| 14 | + affiliation: 2 |
15 | 15 | affiliations:
|
16 |
| -- name: Colorado Mesa University |
17 |
| - index: 1 |
18 |
| -- name: McGill University |
19 |
| - index: 2 |
| 16 | + - name: Colorado Mesa University |
| 17 | + index: 1 |
| 18 | + - name: McGill University |
| 19 | + index: 2 |
20 | 20 | date: 4 Februrary 2019
|
| 21 | +bibliography: paper.bib |
21 | 22 | ---
|
22 | 23 |
|
23 | 24 | # Summary
|
24 | 25 |
|
25 |
| -FDS Python is a set of Jupyter notebooks that covers fundamental concepts of programming and data structures using Python. These interactive notebooks are based on the open-source textbook: Think Python: How to Think Like a Computer Scientist (http://openbookproject.net/thinkcs/python/english3e/index.html#) (Wentworth, Elkner, Downey, & Meyers, 2012). The notebooks consist of a summary of the theory/lecture notes and syntax of concepts along with interactive code examples. The notebooks provide coverage from the basic programming concepts to data structures and popular libraries such as turtle, pygame, sqlite3, etc. The mapping of notebook chapters with the textbook chapters is provided in the README.md file. |
26 |
| - |
27 |
| -These notebooks are designed to accommodate beginners as well as experienced programmers who are interested in learning to code in Python. More importantly, the interactive nature of these notebooks force students to code to learn and not learn to code. Pythontutor (http://pythontutor.com) (Guo, 2013) is used to help students visualize and understand the concepts better by working on problems from open.kattis.com (https://open.kattis.com/) (Basnet, Doleck, Lemay, & Bazelais, 2018) where appropriate. |
| 26 | +FDS Python is a set of Jupyter notebooks that covers fundamental concepts of programming and data structures using Python. These interactive notebooks are based on the open-source textbook: Think Python: How to Think Like a Computer Scientist (http://openbookproject.net/thinkcs/python/english3e/index.html#) [@Wentworth2012]. The notebooks consist of a summary of the theory/lecture notes and syntax of concepts along with interactive code examples. The notebooks provide coverage from the basic programming concepts to data structures and popular libraries such as turtle, pygame, sqlite3, etc. The mapping of notebook chapters with the textbook chapters is provided in the README.md file. |
28 | 27 |
|
| 28 | +These notebooks are designed to accommodate beginners as well as experienced programmers who are interested in learning to code in Python. More importantly, the interactive nature of these notebooks force students to code to learn and not learn to code. Pythontutor (http://pythontutor.com) [@Guo2013]) is used to help students visualize and understand the concepts better by working on problems from open.kattis.com (https://open.kattis.com/) [@Basnet2018] where appropriate. |
29 | 29 |
|
30 | 30 | # Statement of need
|
31 | 31 |
|
32 |
| -It is well acknowledged that programming is a challenging endeavor (Robins, Rountree, & Rountree, 2003). As such, considerations of the suitability of programming languages, such as Python, for teaching and learning programming have received growing interest (Mannila, Peltomäki, & Salakoski, 2006). In fact, among programming languages, Python is the most popular language for introductory computer science courses among US universities (Guo, 2014). |
33 |
| - |
34 |
| -Textbooks are commonly used for delivering course content in programming courses; however, “a majority of university students do not regularly read course textbooks” (Rockinson-Szapkiw, Wendt, & Lunde, 2013, p. 179). To ameliorate this situation, educators have suggested the use of computational notebooks, such as the Jupyter computational notebook project, for offering both new ways of instruction and making interactive curricula (O’Hara, Blank, & Marshall, 2015; Shen, 2014). |
| 32 | +It is well acknowledged that programming is a challenging endeavor [@Robins2003]. As such, considerations of the suitability of programming languages, such as Python, for teaching and learning programming have received growing interest [@Mannila2006]. In fact, among programming languages, Python is the most popular language for introductory computer science courses among US universities [@Guo2014]. |
35 | 33 |
|
36 |
| -Although Python provides a way to quickly write and test code and concepts in the interactive "chevron prompt" mode, the codes and results vanish and cannot be reproduced once the session is terminated. Moreover, writing multiple line of codes or functions is not intuitive because of the language's strict syntactic rules on enforcing whitespaces to represent block of codes. Jupyter notebooks can easily overcome these drawbacks as one can quickly and interactively write single to many lines of codes and at the same time keep track of the output results as part of the notes. Furthermore, students can refer to what they have done and manage all their notes in one convenient location. |
| 34 | +Textbooks are commonly used for delivering course content in programming courses; however, "a majority of university students do not regularly read course textbooks" [@Rockinson-Szapkiw2013]. To ameliorate this situation, educators have suggested the use of computational notebooks, such as the Jupyter computational notebook project, for offering both new ways of instruction and making interactive curricula [@OHara2015],[@Shen2014]. |
37 | 35 |
|
38 |
| -The notebooks are complete and can be easily adopted by other instructors who wish to teach Python using a practical, follow-along live coding approach. These notebooks have been used in university courses (Beginning and Advanced Programming courses) for two years in a row at Colorado Mesa University (2017-2019). Depending on the need and the audience, instructors in introductory programming course can spend more time demonstrating the concepts with many examples; in contrast, in advanced or intensive boot camp like courses, instructors can skip the theoretical portions and instead focus on the syntax and spend more time on advanced topics and concepts. |
| 36 | +Although Python provides a way to quickly write and test code and concepts in the interactive ">>>, chevron prompt" mode, the codes and results vanish and cannot be reproduced once the session is terminated. Moreover, writing multiple line of codes or functions is not intuitive because of the language's strict syntactic rules on enforcing whitespaces to represent block of codes. Jupyter notebooks can easily overcome these drawbacks as one can quickly and interactively write single to many lines of codes and at the same time keep track of the output results as part of the notes. Furthermore, students can refer to what they have done and manage all their notes in one convenient location. |
39 | 37 |
|
| 38 | +The notebooks are complete and can be easily adopted by other instructors who wish to teach Python using a practical, follow-along live coding approach. These notebooks are been used in university courses (Beginning and Advanced Programming courses) for two years in a row at Colorado Mesa University (2017-2019). Depending on the need and the audience, instructors in introductory programming course can spend more time demonstrating the concepts with many examples; in contrast, in advanced or intensive boot camp like courses, instructors can skip the theoretical portions and instead focus on the syntax and spend more time on advanced topics and concepts. |
40 | 39 |
|
41 | 40 | # References
|
42 |
| - |
43 |
| -Basnet, R. B., Doleck, T., Lemay, D. J., & Bazelais, P. (2018). Exploring Computer Science Students’ Continuance Intentions to Use Kattis. Education and Information Technologies, 23(3), 1145–1158. doi:10.1007/s10639-017-9658-2 |
44 |
| - |
45 |
| -Guo, P. J. (2013). Online python tutor: embeddable web-based program visualization for cs education. In Proceeding of the 44th ACM technical symposium on Computer science education (pp. 579-584). ACM. |
46 |
| - |
47 |
| -Guo, P. (2014). Python Is Now the Most Popular Introductory Teaching Language at Top U.S. Universities [Blog]. Retrieved from https://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-u-s-universities/fulltext |
48 |
| - |
49 |
| -O’Hara, K., Blank, D., & Marshall, J. (2015). Computational notebooks for AI education. In Proceedings of the International Florida Artificial Intelligence Research Society Conference (FLAIRS), Hollywood, FL. |
50 |
| - |
51 |
| -Mannila, L., Peltomäki, M., & Salakoski, T. (2006). What about a simple language? Analyzing the difficulties in learning to program. Computer Science Education, 16(3), 211-227. doi: 10.1080/08993400600912384 |
52 |
| - |
53 |
| -Rockinson-Szapkiw, A., Wendt, J., & Lunde, R. (2013). Electronic Versus Print Textbooks: The Influence of Textbook Format on University Students’ Self-Regulated Learning Strategies, Motivation, and Text Anxiety. American Journal of Distance Education, 27(3), 179-188. doi: 10.1080/08923647.2013.796230 |
54 |
| - |
55 |
| -Robins, A., Rountree, J., & Rountree, N. (2003). Learning and teaching programming: A review and discussion. Computer Science Education, 13(2), 137–172. https://doi.org/10.1076/csed.13.2.137.14200 |
56 |
| - |
57 |
| -Shen, H. (2014). Interactive notebooks: Sharing the code. Nature, 515(7525), 151-152. doi: 10.1038/515151a |
58 |
| - |
59 |
| -Wentworth, P., Elkner, J., Downey, A. B., & Meyers, C. (2012). How to Think Like a Computer Scientist: Learning with Python 3 (RLE) [Ebook] (2nd ed.). Retrieved from http://openbookproject.net/thinkcs/python/english3e/ |
60 |
| - |
0 commit comments