Literature Review

Project Learning: The ABC Coding Initiative 

A Literature Review 

Jarrett Lindsey 

Lamar University 

EDLD 5305:  

Dr. Dwayne Harapnuik 

Abstract 

Computer Science opens the doors to infinite possibilities of learning and career exploration into the lives of students. Several studies have found a positive correlation between computer programming and improved cognitive skills.  Computer Science is a building block that allows students to hone their critical thinking skills and promotes productivity.  Students exposed to computer programming are typically said to score higher on various cognitive ability tests than students who do not have programming experiences. The art of computer programming is about digging deeper into the consciousness of creativity, art, history, English, and most importantly, mathematics. Programming then becomes a multidisciplinary and multifaceted approach to student learning. This literature review aims to explore the ideas of project-based learning in education using programming as a tool to explore computational thinking, creativity, and personal growth within our students. 

Project-Based Learning 

Students are not challenged to a standard that allows them to explore their individuality and thinking. Most of their daily assignments can be described as meaningless and non-applicable to any of their future goals. Students often feel that there is not enough real-world application to the information they learned in high school. Project-based learning gives students a chance to be held accountable for their education. According to Thomas Markham, project-based learning integrates knowing and doing whereby students can apply curriculum understanding to find solutions to a problem. (Mang’eni, 2020). Allan M. from LinkedIn describes the steps to take in a computer project-based learning: 1) Produce a project, 2) Research on the best programming language to use, 3) Start learning the language, 4) Choose a project management methodology and 5) Deploy your project (Mang’eni, 2020).  

 Project-based learning focuses on helping students explore real-world problems and challenges in a dynamic, engaged, active way. The intent is to inspire students to understand the subjects they are studying (Horn et al., 2014, pp. 55). Also, project-based learning allows students to focus more on the skills they feel are more applicable to their future endeavors. “Project-based learning will best develop students’ deeper-thinking and cognitive skills and fulfill their “job to be done” of feeling successful.” (Horn et al., 2014, pp. 269). 

PBLWorks provides a gold standard topology to garner a better understanding of how project-based learning should look like in the classroom (What Is PBL?, n.d.): 

Computational Thinking 

One of the main aspects of programming is the idea of computational thinking. There is a unique thought process that has to be used to solve programming-based problems. This approach is efficient for working with a great deal of information and then later processing it to define the best possible solution (Wing, 2013). Computational thinking involves designing complex systems, solving logical and mathematical problems, and understanding human behavior’s essence. These computational thinking components have their foundation on concepts fundamental to computer science. (Wing, 2006, p. 33). Students who frequently engage in programming use higher-level thinking skills and can grasp other curriculum concepts, particularly math, at a higher rate (Papert, 1980). 

Computational thinking contains four fundamental cornerstones to its pathology. The first is decomposition, which involves breaking down a complex problem or system of problems into smaller, more manageable parts. Next is pattern recognition, where you are looking for similarities both among and within trials. The third is an abstraction that focuses on the vital information only and ignoring irrelevant details. Lastly is algorithms where you develop a step-by-step solution to the problem (DIMACS, 2020). These steps can be utilized in many grade levels as early as kindergarten and other curriculum areas (Wing, 2011). Computational thinking can redefine the way we teach all disciplines by empowering students to use technology to explore and create while solving problems (Angeli et al., 2016) 

Computer Science Programs in FBISD 

Using coding and other forms of technology allows students to express themselves in innovative ways. Through the Career and Technical Education (CTE) department of Fort Bend ISD, computer science courses are offered at the middle and high school level as an endorsement pathway for students to earn various career credits throughout their four years of high school. Students can presently take the following courses in succession: (Fort Bend ISD – Career Technical Education, n.d.) 

  1. Fundamentals of Computer Science (Middle & High School) 
  2. Pre-AP Computer Science  
  3. AP Computer Science A  
  4. AP Computer Science Principles 
  5. Computer Science III 

Each course offers diverse computer languages, computational thinking, and post-graduate opportunities such as competitions and AP exam credit. Programs such as “The Technology Student Association (TSA) enhances personal development, leadership, and career opportunities in… (STEM), whereby members apply and integrate these concepts through co-curricular activities, competitions, and related programs.” (Fort Bend ISD – Career Technical Education, n.d.) With added support from the Fort Bend Education Foundation and Schlumberger, “Fort Bend ISD provides opportunities for elementary and middle school students to learn the principles of computer science using Turtle Art, Scratch, and Robotic applications.” (Fort Bend ISD: STEM – Curriculum and Instruction, n.d.) 

App Design 

Developing a mobile application to solve problems is an effective method of combining project-based learning with computational thinking. There are so many differentiated ways to build a mobile application that allows students to touch areas outside of computer science, such as English, science, and mathematics. Allowing students to research, design, debug, and test what works with real-life implementation (Chui, 2020). Most visual-based programming languages are more comprehensive and less complicated yet still allow for various complex projects (Chui, 2020). Students can learn early on using simple application developing tools such as Scratch, which uses a fun graphics-based programming structure. (Maloney, Peppler, Kafai, Resnick, and Rusk, 2008).

Swift Coding 

Swift is Apple’s coding language of choice since its initial introduction in 2014. Earlier Apple applications were developed under the coding language Objective-C. It was the language of choice for Apple products before, and multiple legacy codebases still use it. Before being named Swift, it was called Shiny. A significant component of any C-like language is its memory management system. Hence why it was dubbed as “Objective-C without C.” Swift suffered incompatibility with newer methods and reverse compatibility with older structures in the language’s early days.  

Presently, individuals can code Swift for iOS, macOS, tvOS, iPadOS, watchOS, and even server-side Swift. In 2019, Apple launched an incredibly innovative technology to build UIs called SwiftUI. There is an increased demand for people who can program with swift language. Simply put, there is an open job market for application developers within the iOS family.  

Swift Education – Xcode & Swift Playgrounds 

  Learning Swift has been made more accessible with free downloads. “Apple has worked alongside educators for 40 years, and we’re especially proud to see how to Develop in Swift and “Everyone Can Code” having been instrumental in helping teachers and students make an impact in their communities,” (Apple, 2021). The most straightforward way to code Swift is with a Mac and Xcode. You will need a Mac computer to install Xcode, like a MacBook, or you can try to install macOS on a PC. You can download and install Xcode on your Mac via the App Store. You can also download Xcode via developer.apple.com. Another way you can learn to code in Swift is via the Swift Playgrounds app for iPad. It is a game-based, playful, and fun way to get started with Swift programming. Apple has introduced free online courses for teachers to learn swift to give teachers the tools to support students because of remote classroom environments (Tung, 2020).  

Conclusion 

Technological innovation is the key to our evolution as human beings. So why shouldn’t our educational system evolve with it? The students of today are hungry for the next level in their academic lives. It is critical that as we integrate technology into education, we take full advantage of the next generation’s innovativeness. Computational thinking skills can be used across various ideas to deepen students’ problem-solving abilities and analytical skills. Project-based learning is a powerful resource that encourages systematic approaches to problem-solving while encouraging student’s critical thinking and collaborative spirit. Developing mobile applications would be learning various computer science principles, including computational thinking, user interface, and the development cycle to create something that reflects the student’s genuine interest and personal goals. 

References 

Angeli, C., Voogt, J., Fluck, A., Webb, M., Cox, M., Malyn-Smith, J., & Zagami, J. (2016). A K-6 computational thinking curriculum framework: Implications for teacher knowledge. Educational Technology & Society, 19(3), 47+. Retrieved from https://link.gale.com/apps/doc/A461608113/AONE?u=j101913008&sid=AONE&xid=9c040456 

Apple. (2021, March 2). Apple updates coding programs and resources for educators and students. Apple Newsroom. https://www.apple.com/newsroom/2020/07/apple-updates-coding-programs-and-resources-for-educators-and-students/

Chiu, C. (2020). Facilitating K-12 teachers in creating apps by visual programming and project-based learning. International Journal of Emerging Technologies in Learning (iJET), 15(01), 103. doi:10.3991/ijet.v15i01.11013 

DIMACS. (2020, May 22). What Is Computational Thinking? Computational Thinking for High School Teachers. https://ctpdonline.org/computational-thinking/ 

Fort Bend ISD – Career Technical Education. (n.d.). Career & Technical Education / Science, Technology, Engineering & Mathematics (STEM). Fort Bend ISD. Retrieved February 20, 2021, from https://www.fortbendisd.com/Page/999 

Fort Bend ISD: STEM – Curriculum and Instruction. (n.d.). Teaching and Learning / Computer Coding Clubs. Fort Bend ISD. Retrieved February 20, 2021, from https://www.fortbendisd.com/Page/92226 

Horn, M. B., Staker, H., & Christensen, C. M. (2014). Blended: Using Disruptive Innovation to Improve Schools (1st ed.). Jossey-Bass. 

Maloney, J., Peppler, K., Kafai, Y. B., Resnick, M., & Rusk, N. (2008, March 12). Programming by Choice: Urban Youth Learning Programming with Scratch. Research Gate. https://www.researchgate.net/publication/221537160_Programming_by_Choice_Urban_Youth_Learning_Programming_with_Scratch

Mang’eni, A. (2020, May 24). What Is Project-Based Learning Method for Self-Taught Developers | Hacker Noon. Hackernoon. https://hackernoon.com/what-is-project-based-learning-method-for-self-taught-developers-97gi3vey 

Reeves, J., & Vanderhorst, D. (2021, January 22). Apple updates coding programs and resources for educators and students. Apple Newsroom. https://www.apple.com/newsroom/2020/07/apple-updates-coding-programs-and-resources-for-educators-and-students/

Sheromova, V. (2020, November 20). Introduction to Swift. Exyte. https://exyte.com/blog/introduciton-to-swift 

Tung, L. (2020, July 10). Apple offers free Swift, Xcode coding courses for teachers. ZDNet. https://www.zdnet.com/article/apple-offers-free-swift-xcode-coding-courses-for-teachers/ 

Vries, R. (2021, January 28). Learn Swift Programming The Simple Way. LearnAppMaking. https://learnappmaking.com/learn-swift-programming/ 

What is PBL? (n.d.). PBLWorks. Retrieved February 20, 2021, from https://www.pblworks.org/what-is-pbl 

Wing, J. (2013, September 27). Research Notebook: Computational Thinking–What and Why? Carnegie Mellon School of Computer Science. https://www.cs.cmu.edu/link/research-notebook-computational-thinking-what-and-why 

Wing, J. (2006, March). Computational thinking. Communications of the ACM, 49(3), 33-35. https://doi.org/10.1145/1118178.1118215