1相关工作的探索
在学术教育背景下,Androi的教学概念包含了Android应用编程和设计。我这篇dissertation的偏向于思考如何向那些不甚了解编程和系统开发的观众传授Android知识。
这份essay探讨的是在一个学术环境中教育和学习电脑技术,包过学习设计原则并制作出可用的真实的Android应用程序。接下来的两部分将探讨信息技术的教学和Android教学的相关工作。
1.1电脑技术教学
因为越来越多的人使用电脑和计算机程序的现实的影响力,信息技术已经变得非常重要以致中学生就已经开始学习了。越是高的学历,就越要掌握电脑编程的知识。信息技术使我们的生活更加便捷,为了进一步的发展并更充分的享受软件创新发明,可以鼓励每个人都了解这些发明和技术创新背后的规律。
自从在2007年谷歌安卓系统的第一个版本并伴随开放手机源,安卓手机开发已经成为软件市场最热门的学科之一。日常生活中,智能手机已经开始取代个人电脑,350000多个Android应用程序的发展显示了手机革新的效果。
1 Related Work Exploration相关工作的探索
Android in Contextual Education involves applying Android programming and design concepts to an educational setting. My thesis will likely involve teaching Android to an audience with little knowledge of programming and object-oriented development.
This assignment explores teaching and learning Computer Science in an academic setting, as well as learning design principles of and creating useful real-world applications for Android. The next two sections will explore related work in teaching Computer Science and Android in education.
1.1 Teaching Computer Science电脑技术教学
Because of a growing use of and real-world impact of computers and computer programs, Computer Science has become an important enough topic to teach as early as middle school. The further up the educational system, the more in-depth Computer Science programs become. Computer Science helps make our lives more convenient, and in order to further progress and make the most of innovative software inventions, everyone is encouraged to learn about the discipline behind these inventions and technological innovation.
The Association for Computing Machinery (ACM) has organized the Computer Science Teachers Association (CSTA), which works at many levels of education to support \computing education". [2] At the middle school level, CSTA promotes problem solving and algorithmic thinking. In high school, it emphasizes computing and computer science. At the college and university level, it supports enrollment and transition. Of significant importance is its mission to \Create opportunities to make computer science education more equitable." [2] The organization has drafted up several public curriculums and guidelines for teaching Computer Science with the goal of introducing the principles and methodologies of computer science to all students, whether they are college bound or workplace bound." [2]
An important characteristic of teaching Computer Science is the definition by which it is taught. CSTA defines Computer Science as the study of computers and algorithmic processes, including their principles, their hardware and software designs, their applications, and their impact on society. [2]#p#分页标题#e#
CSTA has been around since 2005, but most of its supporting educational facilities are at the college and university level. A problem that is slowly being addressed is the lack of Computer Science teaching curriculums, resources such as Computer Science-oriented computer labs and qualied teachers in lower education.
The advent of a new Advanced Placement Computer Science: Principles course for high school and college motions for an increased focus on the importance and real-world impact of the Computer Science discipline. [4] Invoked by CollegeBoard and granted by the National Science Foundation, this course attempts to help students make the transition from grade school to college-level studies with a greater undefirstanding of Computer Science. The course was piloted during the 2010-2011 academic year in participating high schools, and will be piloted again in phase II during the 2011-2012 academic year.
This AP CS: Principles course is a follow-up course to the AP CS: A course. The driving force behind the Principles course are what are called Annotated Big Ideas. Some examples follow:
Data and information facilitate the creation of knowledge.
Algorithms are tools for developing and expressing solutions to computational problems.
Programming is a creative process that produces computational artifacts. The primary themes of the Principles course are as follows:
Creativity - Students get to ex their creative sides and create applications and work on projects that they want to show off to others. One large draw to Computer Science applications are the innovation and creativity which drive further learning and analytical, practical thinking.
Problem solving & exploration - Students get hands-on experience with programming and solving problems that reflect on real-world situations.
Focus on people & society - By operating a learning environment with the above two themes, the curriculum gets developed further and can contribute more to education. Secondly, this program allows instructors to enter the curriculum and learn effective teaching tools to further the program and the education of students.
Additionally, one of the driving factors of Computer Science is the cool, practical factor. This goes hand-in-hand with the Creativity theme. Students love making projects that they can show off or that they consider cool, nifty, convenient or special in some way. Right now, one such popular Computer Science design process is Android.
1.1.1 Test-Driven Development & Learning测试驱动的开发和学习
Test-Driven Development is a disciplined development approach that involves writing automated unit tests before writing the corresponding functional software units in short, rapid iterations. [6] More importantly, Test-Driven Learning, proposed in 2006, suggested the use of automated unit tests in lecture, lab, and exercise examples. [6] This type of teaching is used as a teaching design in and of itself and to verify lab exercises in Computer Science-oriented courses. Dr. David Janzen uses this technique in his courses at Cal Poly, San Luis Obispo.#p#分页标题#e#
1.2 Android in Education Android教学
Android development has only recently caught on in educational and non-educational settings over the past few years. James Reed, a former Master's student at Cal Poly, created a set of Android development labs as a part of his Master's thesis. [9] These labs are currently used in the CPE 409 course, Android Application Development.
1.2.1 App Inventor 应用程序发明者
Since Google's first release of Android in 2007 and the advent of the Open Handset Alliance, Android mobile development has become one of the hottest subjects in the software market. [1] Smartphones are starting to take the place of personal computers in our daily lives, and the development of over 350,000 Android apps shows this explosive mobile movement.
Google has since encouraged Android application development, particularly with its equal treatment of third-party applications. To promote the ease of application creation, Google released the online service called App Inventor. [5] App Inventor allows any passionate designer with a computer and internet connection to design, create and run an Android application using only Google's online services.
The App Inventor forum contains a special sub-forum called App Inventor in Education. This sub-forum mostly discusses App Inventor in an educational context, including educational apps and information and advice for students and teachers. Many teachers who incorporate App Inventor in the classroom frequent this sub-forum and even link to their own blogs and resources in regards to teaching with App Inventor.
Of important note is the introduction of Java Bridge on May 27th, 2011, which helps incorporate App Inventor components in apps created in Java with the traditional Android SDK. While in its early stages, Java Bridge promises to be an abstract layer between the Android App Inventor and Android Java SDK with actual Java code.
1.2.2 App Inventor Influences应用程序发明者的影响力
App Inventor has succeeded several education-based learning environments on the computer. This section will discuss two preceding environments similar to Google's Android App Inventor: Scratch and Alice.
Scratch is a programming language that works behind a graphical user interface, first released in 2007 by MIT. [7] The Scratch website provides the following information about Scratch:
Scratch is designed with learning and education in mind. As young people create and share projects in Scratch, they develop important design and problem-solving skills, learning how to think creatively, reason systematically, and work collaboratively.
Scratch can be used in many different settings: schools, museums, community centers, and homes. It is intended especially for 8- to 16-year-olds, but younger children can work on Scratch projects with their parents or older siblings, and college students use Scratch in some introductory computer science classes. [7]
The Scratch IDE interface is similar to the Designer part of App Inventor. The primary similarity is the puzzle piece style of programming, which emulates object-oriented programming. Scratch lets the user draw and place their own sprites in the project space, as well as add logical components to them to tell each sprite what to do. App Inventor drew much inspiration from Scratch, it even uses the Open Blocks Java library published by MIT, a library closely related to Scratch. [8]
However, Scratch does not reveal any code, so this is a high-level object-oriented style of learning. Like App Inventor, Scratch is well-documented and features an active community. Its simple design is very intuitive, but projects created in Scratch cannot run on most external devices. It is also limited to 2D development.
Like Scratch, Alice is a programming language that works behind a graphical user interface, first released in 1999 by Carnegie Mellon. [3] The Alice website provides the following information about Alice:
Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a freely available teaching tool designed to be a student's first exposure to object-oriented programming. It allows students to learn fundamental programming concepts in the context of creating animated movies and simple video games. In Alice, 3-D objects (e.g., people, animals, and vehicles) populate a virtual world and students create a program to animate the objects. [3]
Unlike Scratch, Alice is a 3D environment. The user is allowed to click and drag any objects and move them in the world, as well as instantiate new instances of objects and change the camera. Alice's functionality is primarily dened through methods instead of puzzle-piece-style logical components. Also unlike Scratch, Alice features a code-oriented interface, as shown below.
Figure 3: The Alice IDE environment, in Java mode.
This mode allows users to see real Java code that defines how the objects in the world function. Other functionality of the Alice environment does not change. Alice is very flexible and allows for more diversity in learning than Scratch.
However, all objects in Alice are prebuilt; in Scratch, the user was able to draw his or her own sprites and attach functionality to them, but Alice only allows for a set variety of objects. Since it is a 3D environment, Alice is more complex and adds a camera and a whole extra dimension of complexity to the scene.
App Inventor builds o of Scratch and Alice and has proven itself as a valuable teaching tool.
References
[1] Industry leaders announce open platform for mobile devices, November 2007.#p#分页标题#e#
[2] ACM. Csta: The voice for k-12 computer science education and its educators. Website, 2005. csta. acm.org.
[3] CMU. What is alice? Website, 1999. http://www.alice.org/index.php?page=what_is_alice/what_ is_alice.
[4] CollegeBoard. Cs principles, a new first course in computing. Website, 2010. http://csprinciples. org.
[5] Google. App inventor for android: Create apps for your phone! Website, 2011. http://appinventor. googlelabs.com/about.
[6] Janzen, D., and Saiedian, H. Test-driven learning in early programming courses. SIGCSE Bull. 40 (March 2008), 532{536.
[7] MIT. About scratch. Website, 2007. http://info.scratch.mit.edu/About_Scratch.
[8] MIT. Openblocks : an extendable framework for graphical block programming systems. Website, 2007. http://dspace.mit.edu/handle/1721.1/41550.
[9] Reed, J. Contextual android education. Thesis, 2010. http://digitalcommons.calpoly.edu/theses/ 441/.