1相關(guān)工作的探索
在學(xué)術(shù)教育背景下,Androi的教學(xué)概念包含了Android應(yīng)用編程和設(shè)計。我這篇dissertation的偏向于思考如何向那些不甚了解編程和系統(tǒng)開發(fā)的觀眾傳授Android知識。
這份essay探討的是在一個學(xué)術(shù)環(huán)境中教育和學(xué)習(xí)電腦技術(shù),包過學(xué)習(xí)設(shè)計原則并制作出可用的真實的Android應(yīng)用程序。接下來的兩部分將探討信息技術(shù)的教學(xué)和Android教學(xué)的相關(guān)工作。
1.1電腦技術(shù)教學(xué)
因為越來越多的人使用電腦和計算機程序的現(xiàn)實的影響力,信息技術(shù)已經(jīng)變得非常重要以致中學(xué)生就已經(jīng)開始學(xué)習(xí)了。越是高的學(xué)歷,就越要掌握電腦編程的知識。信息技術(shù)使我們的生活更加便捷,為了進一步的發(fā)展并更充分的享受軟件創(chuàng)新發(fā)明,可以鼓勵每個人都了解這些發(fā)明和技術(shù)創(chuàng)新背后的規(guī)律。
自從在2007年谷歌安卓系統(tǒng)的第一個版本并伴隨開放手機源,安卓手機開發(fā)已經(jīng)成為軟件市場最熱門的學(xué)科之一。日常生活中,智能手機已經(jīng)開始取代個人電腦,350000多個Android應(yīng)用程序的發(fā)展顯示了手機革新的效果。
1 Related Work Exploration相關(guān)工作的探索
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電腦技術(shù)教學(xué)
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測試驅(qū)動的開發(fā)和學(xué)習(xí)
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教學(xué)
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 應(yīng)用程序發(fā)明者
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應(yīng)用程序發(fā)明者的影響力
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/.