skip to main content
US FlagAn official website of the United States government
dot gov icon
Official websites use .gov
A .gov website belongs to an official government organization in the United States.
https lock icon
Secure .gov websites use HTTPS
A lock ( lock ) or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.


Title: Phenomenological programming: a novel approach to designing domain specific programming environments for science learning
There has been a growing interest in the use of computer-based models of scientific phenomena as part of classroom curricula, especially models that learners create for themselves. However, while studies show that constructing computational models of phenomena can serve as a powerful foundation for learning science, this approach has struggled to gain widespread adoption in classrooms because it not only requires teachers to learn sophisticated technological tools (such as computer programming), but it also requires precious instructional time to introduce these tools to students. Moreover, many core scientific topics such as the kinetic molecular theory, natural selection, and electricity are difficult to model even with novice-friendly environments. To address these limitations, we present a novel design approach called phenomenological programming that builds on students' intuitive understanding of real-world objects, patterns, and events to support the construction of agent-based computational models. We present preliminary case studies and discuss their implications for STEM content learning and the learnability and expressive power of phenomenological programming.  more » « less
Award ID(s):
1842374 1640201
PAR ID:
10199103
Author(s) / Creator(s):
; ; ;
Date Published:
Journal Name:
ACM Interaction Design and Children (IDC) conference
Page Range / eLocation ID:
299 to 310
Format(s):
Medium: X
Sponsoring Org:
National Science Foundation
More Like this
  1. null (Ed.)
    Code-first learning entails the use of computer code to learn a concept, and creating computational models is one such effective method for learning about scientific phenomena. Many code-first learning approaches employ the visual block-based programming paradigm in order to be accessible to school children with no prior programming experience, providing them with high-level domain-specific code-blocks that encapsulate the underlying complex programming logic. However, even with the aid of visual clues and the benefit of simpler primitives like “forward” and “repeat,” many phenomena studied in classrooms such as the behavior of gas particles in Kinetic Molecular Theory (KMT) are challenging to describe in code. We hypothesized that code blocks designed from a phenomenological perspective to model the behavior of familiar objects and events would both promote students’ authoring of computational models and their ability to encode and test their beliefs within their models. We created these phenomenological blocks within a code-first gas particle sandbox and integrated it into a KMT lesson plan.Two high school teachers taught this curriculum to 121 students, from which we gathered and analyzed video footage from lesson activities and student focus groups. We found that the phenomenological blocks gave students the ability to start programming right away and to express their intuitive understanding of KMT through computational models. This exploratory study demonstrates the potential for phenomenological programming to broaden the application and accessibility of code-first computational modeling for learning scientific phenomena. 
    more » « less
  2. null (Ed.)
    Code-first learning entails the use of computer code to learn a concept, and creating computational models is one such effective method for learning about scientific phenomena. Many code-first learning approaches employ the visual block-based programming paradigm in order to be accessible to school children with no prior programming experience, providing them with high- level domain-specific code-blocks that encapsulate the underlying complex programming logic. However, even with the aid of visual clues and the benefit of simpler primitives like “forward” and “repeat,” many phenomena studied in classrooms such as the behavior of gas particles in Kinetic Molecular Theory (KMT) are challenging to describe in code. We hypothesized that code blocks designed from a phenomenological perspective to model the behavior of familiar objects and events would both promote students’ authoring of computational models and their ability to encode and test their beliefs within their models. We created these phenomenological blocks within a code-first gas particle sandbox and integrated it into a KMT lesson plan. Two high school teachers taught this curriculum to 121 students, from which we gathered and analyzed video footage from lesson activities and student focus groups. We found that the phenomenological blocks gave students the ability to start programming right away and to express their intuitive understanding of KMT through computational models. This exploratory study demonstrates the potential for phenomenological programming to broaden the application and accessibility of code-first computational modeling for learning scientific phenomena. 
    more » « less
  3. As schools and districts across the United States adopt computer science standards and curriculum for K-12 computer science education, they look to integrate the foundational concepts of computational thinking (CT) into existing core subjects of elementary-age students. Research has shown the effectiveness of teaching CT elements (abstraction, generalization, decomposition, algorithmic thinking, debugging) using non-programming, unplugged approaches. These approaches address common barriers teachers face with lack of knowledge, familiarity, or technology tools. Picture books and graphic novels present an unexplored non-programming, unplugged resource for teachers to integrate computational thinking into their CT or CT-integrated lessons. This analysis examines 27 picture books and graphic novels published between 2015 and 2020 targeted to K-6 students for representation of computational thinking elements. Using the computational thinking curriculum framework for K-6, we identify the grade-level competencies of the CT elements featured in the books compared to the books’ target age groups. We compare grade-level competencies to interest level to identify each CT element representation as “foundational,” “on-target,” or “advanced.” We conclude that literature offers teachers a non-programming unplugged resource to expose students to CT and enhance CT and CT-integrated lessons, while also personalizing learning based on CT readiness and interest level. 
    more » « less
  4. Computational thinking can be deemed as thinking in algorithmic way, with which one can transpose given problems into computer algorithms. Since computational thinking requires abstract reasoning, it should not depend on particular programming languages. Unfortunately, introductory programming courses (CS1) often give students false impression that their goals are to teach a particular programming language. This study shares the design of new pedagogy for CS1 that removes dependency on a particular language and promotes computational thinking by teaching multiple programming languages simultaneously. Specifically, chosen programming languages range from low-level to high-level to expose students to different levels of abstraction from the details of computer architecture. Initial student survey responses from both trial and control groups show that there are significant improvements for the trial groups. 
    more » « less
  5. Often, security topics are only taught in advanced computer science (CS) courses. However, most US R1 universities do not require students to take these courses to complete an undergraduate CS degree. As a result, students can graduate without learning about computer security and secure programming practices. To gauge students’ knowledge and skills of secure programming, we conducted a coding interview with 21 students from two R1 universities in the United States. All the students in our study had at least taken Computer Systems or an equivalent course. We then analyzed the students’ approach to safe programming practices, such as avoiding unsafe functions like gets and strcpy, and basic security knowledge, such as writing code that assumes user inputs can be malicious. Our results suggest that students lack the key fundamental skills to write secure programs. For example, students rarely pay attention to details, such as compiler warnings, and often do not read programming language documentation with care. Moreover, some students’ understanding of memory layout is cursory, which is crucial for writing secure programs. We also found that some students are struggling with even the basics of C programming, even though it is the main language taught in Computer Systems courses. 
    more » « less