Conference Paper

Teaching Android App Development to First Year Undergraduates: Textual Programming or Visual Programming?

Authors:
  • Kyoto University of Advanced Science
  • Kyoto University of Advanced Science
To read the full-text of this research, you can request a copy directly from the authors.

Abstract

While the benefits of using visual programming environments at the level of K-12 education have been well-studied, little is known about the plausibility of using visual programming in higher education settings. This empirical study compares the merits and demerits of using textual programming environments (e.g., Android Studio) and visual programming environments (e.g., MIT App Inventor) in an Android app development course targeting first year university students in a faculty of engineering. The analysis is based on instructors’ reflection as well as feedback from students. Our findings show that a visual programming environment was useful even for university students. It allowed beginners to focus on the logic of apps without facing the barrier of too many technical details. They could quickly develop functional apps with complex features. On the other hand, textual programming takes an upper hand when it comes to providing an authentic learning experience as well as supporting efficient source code management in collaborative development. We discuss the implications of the findings within the framework of the distributed cognition theory and point out directions for future research.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the authors.

... First, as a cloud-based web app, the AI2 can be used on a web browser, thus freeing students from the tedious process of software installation and configuration. Second, the AI2 allows users to build the frontend and backend of an app by assembling blocks of various user interface components (e.g., labels, buttons, text boxes) and logical components (e.g., variable declaration, click handler), and has been shown to reduce the hurdle of learning to build apps and has been used in this course to reduce intrinsic cognitive load [21]. ...
Conference Paper
This paper presents an experience report of an introductory app development course that uses a context-based approach to teach app development to first-year engineering students in university. This course uses MIT App Inventor as the development environment to teach how to make apps in a variety of contexts (e.g., quiz app, painting app, speech translator app). Pre-course survey showed that many students were motivated to learn app development because they considered it a useful skill in real life. App development attitudes survey shows that a small portion of students had a fallacy of app development and view it as disconnected to the real world. This justifies the importance of contextualizing the learning to help students develop a correct mental model of app development. The quantitative and qualitative results of the course assessment questionnaire demonstrated the effectiveness of the learning design. Overall, this course received positive appraisal from students, and animation, machine learning/AI, and location sensing were perceived as the most attractive and useful contexts.
Article
Full-text available
This study implemented an intervention using a visual programming language (VPL) to improve students’ understanding of basic programming concepts. The VPL learning environment may reduce the difficulties in programming language learning and is suitable for teaching students who are not computer science majors. Meanwhile, the difference in learning performance of students with different levels of self-efficacy was explored. The basic programming concepts included sequence, condition, and loop. A quasi-experimental design was employed in this study. The participants consisted of 180 students taking general courses at a university in southern Taiwan. Instruments included the Test of Basic Programming Concept and a self-efficacy questionnaire. The results indicated that the VPL teaching improved learners’ understanding of basic programming concepts in the experimental group. The effect on basic programming concepts was especially large in students with moderate and low self-efficacy. The implication is that the VPL has extensive potential for programming courses in the general education of universities.
Article
Full-text available
It is well documented, and has been the topic of much research, that Computer Science courses tend to have higher than average drop out rates at third level. This is a problem that needs to be addressed with urgency but also caution. The required number of Computer Science graduates is growing every year but the number of graduates is not meeting this demand and one way that this problem can be alleviated is to encourage students at an early age towards studying Computer Science courses. This paper presents a systematic literature review on the role of visual and textual programming languages when learning to program, particularly as a first programming language. The approach is systematic, in that a structured search of electronic resources has been conducted, and the results are presented and quantitatively analysed. This study will give insight into whether or not the current approaches to teaching young learners programming are viable, and examines what we can do to increase the interest and retention of these students as they progress through their education.
Article
Full-text available
In recent years, research on embodied cognition has inspired a number of studies on multimedia learning and instructional psychology. However, in contrast to traditional research on education and multimedia learning, studies on embodied learning (i.e., focusing on bodily action and perception in the context of education) in some cases pose new problems for the measurement of cognitive load. This review provides an overview over recent studies on embodied learning in which cognitive load was measured using surveys, behavioral data, or physiological measures. The different methods are assessed in terms of their success in finding differences of cognitive load in embodied learning scenarios. At the same time, we highlight the most important challenges for researchers aiming to include these measures into their study designs. The main issues we identified are: (1) Subjective measures must be appropriately phrased to be useful for embodied learning; (2) recent findings indicate potentials as well as problematic aspects of dual-task measures; (3) the use of physiological measures offers great potential, but may require mobile equipment in the context of embodied scenarios; (4) meta-cognitive measures can be useful extensions of cognitive load measurement for embodied learning.
Article
Full-text available
Given the current focus on teaching computational concepts to all from an early age, combined with the growing trend to empower end users to become producers of technology rather than mere consumers, we consider the issue of “computational notation”. Specifically, where the goal is to help individuals develop their understanding of computation and/or use computation in real world settings, we question whether natural language might be a preferred notation to traditional programming languages, given its familiarity and ubiquity. We describe three empirical studies investigating the use of natural language for computation in which we found that although natural language provides support for understanding computational concepts, it introduces additional difficulties when used for coding. We distilled our findings into a set of design guidelines for novice programming environments which consider the ways in which different notations, including natural language, can best support the various activities that comprise programming. These guidelines were embodied in Flip, a bi-modal programming language used in conjunction with the Electron toolset, which allows young people to create their own commercial quality, narrative based role playing games. Two empirical studies on the use of Flip in three different real world contexts considered the extent to which the design guidelines support ease of use and an understanding of computation. The guidelines have potential to be of use both in analysing the use of natural language in existing novice programming environments, and in the design of new ones.
Article
Full-text available
A number of researchers have documented several difficulties faced by learners of basic programming concepts. Among the suggested pedagogical solutions to overcome these difficulties is the use of serious games inthe learning process. In fact, these games are more likely to boost the motivation of students and allow them to develop their knowledge efficiently. Our studyfocuses on evaluating such usage and the resulting students’ motivation towards programming. We’ve made students create simple games using the Scratch game environment in order for them to learn programming basics. The experiment was conducted with a group of 69 high school science major students. This group of students was arbitrarily chosen and divided into three sub-groups. With the first sub-groupwe experimented with our pedagogical method based on the creation of simple games using Scratch environment. With the other sub-groups we used a conventional method based on Pascal programming language. Twosurveys were distributed at the beginning and at the end of the experimentation in order to identify the programming level of students, their gaming habits, their motivation and interest for programming in the future. The analysis of the surveysshows that using an environment for learning programming such as Scratch highly motivate students and empower them to pursue their studies in programming. In fact, when learners were asked about their desire to continue their studies in programming, 65% of students who have experienced with Scratch environment consider continuing their studies in programming whereas only 10.3% of students who used a standard programming environment showed some interest.
Article
Full-text available
MIT App Inventor is a drag-and-drop visual programming tool for designing and building fully functional mobile apps for Android. App Inventor promotes a new era of personal mobile computing in which people are empowered to design, create, and use personally meaningful mobile technology solutions for their daily lives, in endlessly unique situations. App Inventor's intuitive programming metaphor and incremental development capabilities allow the developer to focus on the logic for programming an app rather than the syntax of the coding language, fostering digital literacy for all. Since it was moved from Google to MIT, a number of improvements have been added, and research projects are underway.
Article
Full-text available
Identifying and correcting syntax errors is a challenge all novice programmers confront. As educators, the more we understand about the nature of these errors and how students respond to them, the more effective our teaching can be. It is well known that just a few types of errors are far more frequently encountered by students learning to program than most. In this paper, we examine how long students spend resolving the most common syntax errors, and discover that certain types of errors are not solved any more quickly by the higher ability students. Moreover, we note that these errors consume a large amount of student time, suggesting that targeted teaching interventions may yield a significant payoff in terms of increasing student productivity.
Article
Full-text available
Scratch is a visual programming environment that allows users (primarily ages 8 to 16) to learn computer programming while working on personally meaningful projects such as animated stories and games. A key design goal of Scratch is to support self-directed learning through tinkering and collaboration with peers. This article explores how the Scratch programming language and environment support this goal.
Article
Full-text available
We are quickly passing through the historical moment when people work in front of a single computer, dominated by a small CRT and focused on tasks involving only local information. Networked computers are becoming ubiquitous and are playing increasingly significant roles in our lives and in the basic infrastructures of science, business, and social interaction. For human-computer interaction to advance in the new millennium we need to better understand the emerging dynamic of interaction in which the focus task is no longer confined to the desktop but reaches into a complex networked world of information and computer-mediated interactions. We think the theory of distributed cognition has a special role to play in understanding interactions between people and technologies, for its focus has always been on whole environments: what we really do in them and how we coordinate our activity in them. Distributed cognition provides a radical reorientation of how to think about designing and supporting human-computer interaction. As a theory it is specifically tailored to understanding interactions among people and technologies. In this article we propose distributed cognition as a new foundation for human-computer interaction, sketch an integrated research framework, and use selections from our earlier work to suggest how this framework can provide new opportunities in the design of digital work materials.
Article
Full-text available
App Inventor for Android is a new visual programming plat-form for creating mobile applications for Android-based smart phones. This paper reports on the summer component of an ongoing project aimed at addressing whether App Inven-tor would be a suitable platform for bringing computational thinking to K-12 students. The project brought together a team consisting of two high school CS teachers, two novice undergraduate computing students, a community outreach leader, and a college CS instructor. The students were eas-ily able to develop complex mobile apps completely on their own initiative. Overall, the team found App Inventor to be an accessible and powerful platform that could well support introductory level courses at the college and K-12 levels.
Conference Paper
Full-text available
This descriptive study discusses two conceptual difficulties encountered by students in introductory programming courses regardless of the chosen language or pedagogical approach (e.g. objects, classes or fundamentals first). Firstly, students tend to learn programming by memorizing correct code examples instead of acquiring the programming thought process. Secondly, they tend to read code by "flying" over it at a comfortable altitude while thinking to its assumed intent. While relaxing, this practice fails to train students to develop the rigor to catch bugs in others' or their own code. Both trends result in an almost complete loss of intentionality in the programming activity; un-innovative code is generated by analogy with (or cut and paste from) existing solutions and is then almost randomly modified until "it fits" the minimal tests requirements without real analysis of its flaws. We review and evaluate pedagogical strategies which can be leveraged by instructors to address the above mentioned issues. Namely, we discuss the benefits of various forms of "Live coding" and test-driven pair programming active learning practices.
Article
Full-text available
Deciding what to teach novices about programming and what programming language to use is a common topic for debate. Should an industry relevant programming language be taught, or should a language designed for teaching novices be used? Typically, these questions are raised at university level, but in this paper we address them from a high school perspective. We present a case study with a twofold goal: (1) examining how programming can be introduced at high school level, and (2) evaluating how suitable the programming language Python is to support both teachers and learners in this process. During the school year 2004/2005, an introductory programming course was given to four student groups in two different high schools. The students enjoyed programming and learnt to think in terms of re-use and interfaces. In addition, we found that many features of Python facilitated both teaching and learning (for instance, a simple and flexible syntax, immediate feedback, easytouse modules and strict requirements on proper indentation). Our findings support results from previous studies in that students have diffculties in dealing with abstract concepts - even though the syntax for implementing these is simple. In addition, compared to university students, high school students are young and have necessarily not yet developed the writing skills required for producing proper documentation. The course was designed to be well suited for highschool students in general, but still all participants were boys. Since high schools should provide allround learning to all students, we, as do all computer science teachers, face the challenge of making programming more appealing to girls.
Conference Paper
The COVID-19 pandemic triggered unprecedented adoption of online education in universities and digital technologies are increasingly becoming an essential part of the learning and teaching experience. From within an ongoing pandemic 'lockdown', this study investigates the current landscape of online education with a focus on the authenticity of the learning and teaching experience in virtual classrooms compared to physical classrooms. We found that instructors typically combine multiple technologies to create a holistic learning experience for students. The benefits of virtual classrooms included self-paced learning, increased opportunities to gain procedural knowledge, diversified communication channels, and greater opportunities for learning analytics. Compared to physical classrooms, the drawbacks of virtual classrooms included the lack of both timely access to all information through a single interface and natural interpersonal interaction. Based on our findings we recommend instructors to remain flexible when selecting technologies and to adapt the level of offline learning to fit their students' learning styles and abilities. We also identified opportunities for virtual reality technology to mitigate the drawbacks of online education by helping to translate in-class experience to virtual spaces.
Conference Paper
Active learning has been considered effective in enhancing students' engagement and improving learning achievement. Nevertheless, the implementation of active learning in web development education is limited especially in teacher-centered lectures and tutorials. In this paper, we propose an approach to encourage students' active participation into the learning process in web development lectures. This approach involves injecting a pair of quizzes at the beginning and the end of each lecture. The pre-lecture quiz drives students to reflect on their prior knowledge and assumptions of the topics associated to the learning content, as well as serving as a cognitive hook that triggers interest and motivation in learning. The post-lecture quiz raises students' awareness of the learning process and enhances metacognitive activities. Instead of using quizzes as an assessment tool, the proposed approach leverages pairwise quizzes in each lecture to promote metacognitive activities in students' mind and raise their consciousness of the learning process. In the meantime, this approach allows teachers to track the changes in students' mental model of the topics and to evaluate teaching outcomes. We share our experience on implementing this approach in the tutorial phase of a web development course. A comparison between students' responses to the pre-lecture and post-lecture quizzes demonstrated how students' mental model on the key learning topics evolved in each lecture. This experience report provides rich implications to educators of web development or software engineering in general.
Conference Paper
People from nearly every country are now learning computer programming, yet the majority of programming languages, libraries, documentation, and instructional materials are in English. What barriers do non-native English speakers face when learning from English-based resources? What desires do they have for improving instructional materials? We investigate these questions by deploying a survey to a programming education website and analyzing 840 responses spanning 86 countries and 74 native languages. We found that non-native English speakers faced barriers with reading instructional materials, technical communication, reading and writing code, and simultaneously learning English and programming. They wanted instructional materials to use simplified English without culturally-specific slang, to use more visuals and multimedia, to use more culturally-agnostic code examples, and to embed inline dictionaries. Programming also motivated some to learn English better and helped clarify logical thinking about natural languages. Based on these findings, we recommend learner-centered design improvements to programming-related instructional resources and tools to make them more accessible to people around the world.
Article
The number of students taking high school computer science classes is growing. Increasingly, these students are learning with graphical, block-based programming environments either in place of or prior to traditional text-based programming languages. Despite their growing use in formal settings, relatively little empirical work has been done to understand the impacts of using block-based programming environments in high school classrooms. In this article, we present the results of a 5-week, quasi-experimental study comparing isomorphic block-based and text-based programming environments in an introductory high school programming class. The findings from this study show students in both conditions improved their scores between pre- and postassessments; however, students in the blocks condition showed greater learning gains and a higher level of interest in future computing courses. Students in the text condition viewed their programming experience as more similar to what professional programmers do and as more effective at improving their programming ability. No difference was found between students in the two conditions with respect to confidence or enjoyment. The implications of these findings with respect to pedagogy and design are discussed, along with directions for future work.
Article
Aim/Purpose: When learning to program, both text-based and visual-based input methods are common. However, it is unclear which method is more appropriate for first-time learners (first learners). Background: The differences in the learning effect between text-based and visual-based input methods for first learners are compared the using a questionnaire and problems to assess first learners’ understanding of programming. In addition, we study the benefits and feasibility of both methods. Methodology: In this research, we used the sandbox game Minecraft and the extended function ComputerCraftEdu (CCEdu). CCEdu provides a Lua programming environments for the two (text and visual) methods inside Minecraft. We conducted a lecture course on both methods for first learners in Japan ranging in age from 6 to about 15 years old. The lecture taught the basics and concepts of programming. Furthermore, we implemented a questionnaire about the attitude of programming before and after the lecture. Contribution: This research is more than a comparison between the visual method and the text method. It compares visual input and text input methods in the same environment. It clearly shows the difference between the programming learning effects of visual input and text input for first learners. In addition, it shows the more suitable input method for introductory education of first learners in programming learning. Findings: The following results are revealed: (1) The visual input method induces a larger change in attitude toward programming; (2) The number of operations and input quantity influence both groups; (3) The overall results suggest that a visual input is advantageous in a programming implementation environment for first learners. Impact on Society: A visual input method is better suited for first learners as it improves the attitude toward programming. Future Research: In the future, we plan to collect and analyze additional data as well as elucidate the correlation between attitudes and understanding of programming.
Conference Paper
The purpose of this research is to compare textual programming languages and visual programming languages from the aspect of motivation. As a textual programming language, Processing programming language was used, and as visual programming languages, Scratch, a derivation of Scratch, Teaching materials offered by code.org, and LEGO Mindstorms EV3 were used. Teaching materials using the textual programming language, and those using the visual programming languages were developed separately. A trial experiment of programming education with the textual programming language was conducted to a cohort of seven primary schoolchildren. Trial experiments with the visual programming languages were conducted twice. In each of them, a cohort of eight primary schoolchildren participated. The motivation of the children was assessed using the questionnaire based on the ARCS (Attention, Relevance, Confidence, and Satisfaction) motivation model. The results with the visual programming languages suggested that the motivation scores of the children increased as the class progressed when visual programming languages were used. On the other hand, the results with Processing suggested that the variance of Satisfaction factor increased as the class progressed when textual programming languages were used, which further suggested that the Satisfaction scores of the children spread as the class progressed when textual programming languages were used.
Article
Scratch is a visual programming environment that is widely used by young people. We investigated if Scratch can be used to teach concepts of computer science (CS). We developed learning materials for middle-school students that were designed according to the constructionist philosophy of Scratch and evaluated them in a few schools during two years. Tests were constructed based upon a novel combination of the revised Bloom taxonomy and the Structure of the Observed Learning Scratch is a visual programming environment that is widely used by young people. We investigated if Scratch can be used to teach concepts of computer science (CS). We developed learning materials for middle-school students that were designed according to the constructionist philosophy of Scratch and evaluated them in a few schools during two years. Tests were constructed based upon a novel combination of the revised Bloom taxonomy and the Structure of the Observed Learning Outcome taxonomy. These instruments were augmented with qualitative tools, such as observations and interviews. The results showed that students could successfully learn important concepts of CS, although there were problems with some concepts such as repeated execution, variables, and concurrency. We believe that these problems can be overcome by modifications to the teaching process that we suggest. Outcome taxonomy. These instruments were augmented with qualitative tools, such as observations and interviews. The results showed that students could successfully learn important concepts of CS, although there were problems with some concepts such as repeated execution, variables, and concurrency. We believe that these problems can be overcome by modifications to the teaching process that we suggest.
Article
Several authors and studies highlight the benefits of the integration of Computer Science into K-12 education. Applications such as Scratch have been demonstrated to be effective in educational environments. The aim of this study is to assess the use of a Visual Programming Language using Scratch in classroom practice, analyzing the outcomes and attitudes of 107 primary school students from 5th to 6th grade in five different schools in Spain. The intervention takes place in two academic years analyzing the practice of integrating coding and visual blocks programming in sciences and arts. The “Computational concepts and computational practices” dimension details a quasi-experimental approach, which showed significant improvement regarding learning programming concepts, logic, and computational practices with an active approach. The “Learning processes and coding in primary education” dimension analyzes the practice of the experimental group through questionnaires and structured observation. In this pedagogical design, students interact and create their own content related to curricular areas with several advantages, such as motivation, fun, commitment, and enthusiasm, showing improvements related to computational thinking and computational practices. Understanding of computational concepts through an active approach, Project Based Learning, usefulness, motivation, and commitment underline the importance and effectiveness of implementing a Visual Programming Language from active methodologies in primary education. Due to the aforementioned benefits and positive results obtained in this research, it is recommended to implement a Visual Programming Language in educational settings in 5th and 6th grade in primary education through a cross-curricular implementation.
Article
This study aims to advocate that a visual programming environment offering graphical items and states of a computational problem could be helpful in supporting programming learning with computational problem-solving. A visual problem-solving environment for programming learning was developed, and 158 college students were conducted in a computational problem-solving activity. The students’ activities of designing, composing, and testing solutions were recorded by log data for later analysis. To initially unveil the students’ practice and strategies exhibited in the visual problem-solving environment, this study proposed several indicators to quantitatively represent students’ computational practice (Sequence, Selection, Simple iteration, Nested iteration, and Testing), computational design (Problem decomposition, Abutment composition, and Nesting composition), and computational performance (Goal attainment and Program size). By the method of cluster analysis, some empirical patterns regarding the students’ programming learning with computational problem-solving were identified. Furthermore, comparisons of computational design and computational performance among the different patterns of computational practice were conducted. Considering the relations of students’ computational practice to computational design and performance, evidence-based suggestions on the design of supportive programming environments for novice programmers are discussed.
Article
This paper describes a project designed to promote problem solving and critical thinking skills in a general education, computing course at an open access institution. A visual programming tool, GameSalad, was used to enable students to create educational apps for mobile platforms. The students worked on a game development project for the entire semester, incorporating various skills learned throughout the semester. Pre and post quiz analysis showed a significant improvement in students' ability to design comprehensive solutions to a given problem. Survey results also showed increased student engagement, high interest in computing and a "better" understanding of information technology.
Conference Paper
Blocks-based programming tools are becoming increasingly common in high-school introductory computer science classes. Such contexts are quite different than the younger audience and informal settings where these tools are more often used. This paper reports findings from a study looking at how high school students view blocks-based programming tools, what they identify as contributing to the perceived ease-of-use of such tools, and what they see as the most salient differences between blocks-based and text-based programming. Students report that numerous factors contribute to making blocks-based programming easy, including the natural language description of blocks, the drag-and-drop composition interaction, and the ease of browsing the language. Students also identify drawbacks to blocks-based programming compared to the conventional text-based approach, including a perceived lack of authenticity and being less powerful. These findings, along with the identified differences between blocks-based and text-based programming, contribute to our understanding of the suitability of using such tools in formal high school settings and can be used to inform the design of new, and revision of existing, introductory programming tools.
Article
Computer science (CS) activities for young students are widely used, particularly visual programming environments. We investigated the use of the Scratch environment for teaching CS concepts to middle school students. In a previous article [Meerbaum-Salant et al. 2013], we reported on the extent to which the CS concepts were successfully learned. In this article, we look at the transition from studying CS with the visual Scratch environment in middle school to studying CS with a professional textual programming language (C# or Java) in secondary school. We found that the programming knowledge and experience of students who had learned Scratch greatly facilitated learning the more advanced material in secondary school: less time was needed to learn new topics, there were fewer learning difficulties, and they achieved higher cognitive levels of understanding of most concepts (although at the end of the teaching process, there were no significant differences in achievements compared to students who had not studied Scratch). Furthermore, there was increased enrollment in CS classes, and students were observed to display higher levels of motivation and self-efficacy. This research justifies teaching CS in general and visual programming in particular in middle schools.
Conference Paper
Visual programming tools and mobile device applications are a natural tool to engage university students; but, are they effective in teaching quantitative thinking skills to non computer science majors? Answering this question can be based on careful assessment of the learning outcomes. This paper reports the results from teaching over 100 students mobile app development with App Inventor in a university core course. Results were measured using an assessment process motivated by Bloom's Taxonomy that included student self assessment, ratings by instructors, and comparisons of the two results. The categories in the assessment were mapped to specific levels of skills with various App Inventor components. Results presented here confirm App Inventor's effectiveness and ability to motivate students. App Inventor features and components that most impacted the student learning are noted. The assessment results show the course was very successful particularly in the three assessment categories of Remembering, Understanding, and Application (Lower Order Thinking Skills) and acceptably successful in Analysis, Evaluating, and Creating (Higher Order Thinking Skills). The paper concludes with suggestions on continued improvement of the course content and additional App Inventor features that should become part of the assessment process.
Article
Due to the time constraints of intensive online courses, instructional design strategies should be modified in order to retain the quality of learning without reducing the quantity of the course content. This paper presents how a blended approach combining objectivist and constructivist instructional strategies was used in the design of an intensive summer online course in the context of a support-based online learning environment. The implementation results revealed that students had a positive learning experience in the course and were highly satisfied with their learning outcomes.
Article
App Inventor is a visual "blocks" language for creating mobile apps. As part of a Google pilot program, App Inventor was taught to university students in a core curriculum course at the University of San Francisco. This paper introduces App Inventor and the course, focusing on how the language facilitated interactions with the world outside of the classroom.
Article
This paper responds to David Elkind's article “The Problem with Constructivism,” published in the Summer 2004 issue of The Educational Forum. It argues that Elkind's thesis—teacher, curricular, and societal readiness lead to the implementation of constructivism—is conceptually problematic. This paper also critiques constructivism and supports objectivism as a viable philosophy of education.
Article
From 1999 to 2002, the author was the principal investigator and one of three architects of an alternative learning environment operated inside The Maine Youth Center, the state's troubled juvenile detention facility. Guided by the learning theory of constructionism, a multi-age, interdisciplinary technology-rich learning environment was created to support the development of personally meaningful projects based on student interest, talent and experience. Students in the Constructionist Learning Laboratory (CLL) often classified as learning disabled, engaged in rigorous learning adventures and developed positive personal behaviours in a context free from traditional curricula, behaviourism or other aspects of coercion. Personal and collaborative long-range student projects incorporated powerful ideas from mathematics, science, computer science, engineering and the arts. Sophisticated projects resulted from a more expansive view of technology that included programming, robotics, woodworking and communications via a variety of media. Completed projects and detailed explanations of both product and process demonstrate evidence of the construction of knowledge. Unlike many school projects, CLL students had to contend with what Seymour Papert calls the "resistance of reality." In other words, their projects had to work, not just pass. The intrinsic motivation and rigorous engagement at the heart of this process is of critical importance. Technology played an enormous role in not just improving self-esteem, but in affording students the chance to be mathematicians, scientists and engineers. This research suggests the viability of Papert's constructionism as a foundation for designing productive learning environments, not only for a transient population of at-risk teens, but the broader learning community. This paper will also document new constructionist approaches to teaching and learning with computational materials. Future research might investigate if similar approaches to teaching and learning not only reverses the effects of school on at-risk learners, but may be used to design learning environments that place fewer students at-risk in the first place.
Conference Paper
Statistics for underrepresented minority groups and women continue to show low numbers in enrollment and rates of retention in academic computer science programs. A new approach to increase student interest in computer science in a first year program is introduced. Laboratory modules for an introductory programming course have been developed at the University of Alabama with the goal to increase student motivation and understanding of fundamental programming concepts. The course utilizes robots and Alice, a 3D graphical programming environment. The drag and drop interface of Alice allows students to program real robots using instructions that correspond to statements of programming languages such as Java, C++, and C#. Students gain programming experience that is transferable to upper level courses by engaging in a stimulating and less frustrating environment using Alice interfaced with robots.
Article
Using LEGO Mindstorms robots to support the ACM Computing Curriculum 2001 in lab exercises and projects from the beginner courses in programming to advanced courses in operating systems, compilers, networks, and artificial intelligence.
Comparing Three Free to Use Visual Programming Environments for Novice Programmers
  • K Y Kaya
  • I Yildiz
K. Y. Kaya and I. Yildiz, "Comparing Three Free to Use Visual Programming Environments for Novice Programmers," 27, vol. 6, pp. 2701-2712, 2019.
Beyond writing code: a new pedagogical model for teaching app development
  • Z Liang
Z. Liang and e. al, "Beyond writing code: a new pedagogical model for teaching app development," JSEE Annual Conference International Session Proceedings, pp. 10-15, 2018.