java编程概念_使用漫画设计教编程概念

java编程概念

Computing literacy has become an important skill for students today. However, programming remains difficult to master because it involves concepts and procedures that are abstract.

çomputing素养已成为当今大学生的一项重要技能。 但是,编程仍然很难掌握,因为它涉及抽象的 概念过程

When learning programming, students “need to imagine … many abstract terms that do not have equivalents in real life. For instance, students may struggle to understand how “a variable, a data type, or a memory address relate to a real-life object.” [2]

在学习程序设计时,学生“ 需要想象 ……许多在现实生活中没有等同物的抽象术语 例如,学生可能难以理解“变量,数据类型或内存地址与现实生活中的对象之间的关系”。 [2]

And procedures in computing are often presented as an abstraction (e.g., loop). That is, steps in the procedures are not shown. This obscures and makes the procedures abstract for novice learners.

并且计算过程通常以抽象(例如循环)的形式呈现。 即,未显示过程中的步骤。 这使过程变得模糊,使过程变得抽象 对于新手学习者。

To address these challenges, my colleagues and I explored how we can leverage the visual language of comics to make abstract concepts and procedures more concrete. We chose comics because the sequential nature of the medium and its ability to express complicated concepts and procedures through visual storytelling provide reasons for us to believe that it can be an effective medium for this task.

为了应对这些挑战,我和我的同事们探索了如何利用漫画的视觉语言来使抽象概念和程序更加具体。 我们之所以选择漫画,是因为该媒介顺序性质及其通过视觉叙事表达复杂概念和程序的能力使我们相信它可以成为完成此任务的有效媒介。

编码条 (Coding Strip)

Image for post
Popular comic books on coding
流行的编码漫画书

While there have been several comic books for CS education, these comics are typically formatted as storybooks without any correspondence to code, which, unfortunately, misses out on the opportunity for students to transfer what they have learned to traditional text-based programming.

尽管有几本漫画书用于CS教育,但是这些漫画通常被格式化为故事书, 而与代码没有任何对应关系 ,不幸的是,这些漫画错过了让学生将所学知识转移到传统的基于文本的编程中的机会。

Thus, we were particularly interested in coding strip, which we define as a form of comic strip that is accompanied by its corresponding code, so that students can see how a line of code can map to a meaningful action in real-life presented in the medium of comics.

因此,我们对coding strip特别感兴趣,我们将coding strip定义为带有相应代码的漫画形式 ,以便学生可以看到代码行如何映射到现实生活中有意义的动作中。漫画的媒介。

Image for post
Coding strip: a form fo comic strip with its corresponding code [3]
编码条:带有相应代码[3]的漫画条形式

But since this is a new idea, we do not know how we should design it and in what ways it can be used to support teaching and learning of programming concepts. Thus, we conducted research to answer these two questions.

但是由于这是一个新的想法,我们不知道我们应该如何设计它以及如何将其用于支持编程概念的教学 。 因此,我们进行了研究以回答这两个问题。

We developed design process & tools, and then conducted two design workshops, one with students and the other with teachers, in order to (1) test whether our design process & tools are effective at supporting the design of coding strip and (2) in what ways students and teachers would like to use it for their learning and teaching.

我们开发了设计过程和工具,然后举办了两个设计研讨会,一个与学生一起,另一个与老师一起,以(1)测试我们的设计过程和工具是否有效地支持编码条的设计,以及(2)学生和老师想用什么方式进行学习和教学。

we were particularly interested in coding strip, which we define as a form of comic strip that is accompanied by its corresponding code, so that students can see how a line of code can map to a meaningful action in real-life

我们对代码条特别感兴趣 ,我们将代码条定义为带有相应代码的漫画形式 ,以便学生了解代码行如何映射到现实生活中有意义的动作

设计过程 (Design Process)

Image for post
Three high-level stages in the design process, with trigger & scenario cards supporting transition from concept to story and design cards from story to coding strip
设计过程中的三个高级阶段,触发器和方案卡支持从概念到故事的过渡,设计卡从故事到编码条

We found that designing for coding strip involves three high-level stages:

我们发现编码条的设计涉及三个高级阶段:

concept formulation -> story development -> comic illustration

概念表述->故事发展->漫画插图

In concept formulation, we need to brainstorm what ideas (or aspect of a concept) we can talk about for a given concept. For instance, if a given concept is loop, we can talk about what it is used to do: “loop is used to repeat sth. while certain condition is satisfied.”

概念表述中 ,我们需要集思广益,针对给定的概念可以谈论哪些想法(或概念的某个方面)。 例如,如果给定的概念是loop ,我们可以讨论它的用途 :“ loop用于重复sth。 同时满足某些条件。”

Then, we come up with a story to illustrate this particular idea (story development); the story could be, “Henry had Capt’n Cruch cereal every day for 100 days as a challenge.”

然后,我们提出一个故事来说明这个特定的想法( 故事发展 ); 故事可能是,“亨利每天要接受100天的Capt'n Cruch谷物作为挑战。”

In the final stage (comic illustration), you sketch out the story in the form of a comic.

在最后阶段( 漫画插图 ),您以漫画的形式勾勒出故事的轮廓。

Image for post
Coding strip example on for loop. It illustrates the idea that “loop is used to repeat something while certain condition is satisfied.” Something here is “eating captain crunch,” and the condition is “day ≤ 100.”
for循环上的编码条示例。 它说明了“在满足某些条件时使用循环来重复某件事”的想法。 这里的情况是“吃船长紧缩”,条件是“天≤100”。

设计工具:触发器/场景/设计卡和设计板 (Design Tools: Trigger/Scenario/Design Cards and Design Board)

Each stage requires us to brainstorm ideas related to concept (concept formulation), story (story development), and comic design (comic illustration). Thus we developed ideation cards to support ideation tasks in each stage: 16 trigger cards for concept formulation, 19 scenario cards for story development, and 30 design cards for comic illustration. Some of them are shown below— a full list of the cards and its print version can be found at our coding strip website.

每个阶段都需要我们集思广益,与概念(概念表述),故事(故事发展)和漫画设计(漫画插图)相关。 因此,我们开发了构想卡来支持每个阶段的构想任务:用于概念制定的16个触发卡 ,用于故事开发的19个场景卡和用于漫画插图的30个设计卡 。 其中一些显示如下-卡的完整列表及其打印版本可以在我们的编码条网站上找到

Image for post
Trigger cards
触发卡
Image for post
Scenario cards
场景卡
Image for post
Design cards
设计卡

We also developed a design board to scaffold the design stages.

我们还开发了一个设计板来支撑设计阶段。

Image for post
Design board
设计板

简化设计流程 (Ease of Design Process)

Image for post
An example of a design work by a group of teacher participants
一组教师参与者的设计工作示例

After participants engaged in our design process, they stated that our design process and tools are useful and that the process of designing coding strip is very engaging — one of the teacher participants even suggested using it as a learning activity (e.g., as a part of learning activity in a vertical classroom setting).

在参与者参与我们的设计过程之后,他们说我们的设计过程和工具很有用,并且设计编码条的过程非常吸引人 -一位教师参与者甚至建议将其用作学习活动(例如,作为学习活动的一部分)在垂直教室中的学习活动)。

Also, to our surprise, participants were mostly able to illustrate the comics by themselves. (We hired 2 artists for each workshop in case participants needed help with the comic illustration but they weren’t really needed, after all). This may be in part because we provided them with design cards and also because participants engaged in several iterations of sketching out comics with simple stick figures (as a part of warm-up activity) prior to starting the design process. In any case, this was a nice finding because it meant that our design process and tools could help just about anyone to design coding strips.

另外,令我们惊讶的是,参与者大多能够自己画出漫画。 (如果每个参加者需要漫画插图的帮助,但我们并不需要,毕竟我们为每个工作坊雇用了2位艺术家)。 这可能部分是因为我们为他们提供了设计卡,还因为参与者在开始设计过程之前参与了几次简单的草图绘制漫画(作为预热活动的一部分)。 无论如何,这都是一个不错的发现,因为这意味着我们的设计过程和工具可以帮助几乎任何人设计编码条。

编码条的设计模式 (Design Patterns for Coding Strips)

Analysis of generated coding strips revealed that there can be 3 panel-to-execution mapping patterns in coding strips.

对生成的编码条的分析表明,在编码条中可以有3种面板到执行的映射模式。

Image for post
3 design patterns that can support the design of coding strips
3种可以支持编码条设计的设计模式

What are these patterns? 1-to-1 pattern means that 1 panel maps to 1 execution step, 1-to-many 1 panel to many steps, and many-to-1 many panels to a single execution step.

这些模式是什么? 1对1的模式的装置一个1个面板映射到1个执行步骤,1对多的 1面板许多步骤,并且多对1 面板单次执行步骤。

What can we do with these patterns? It can inform, based on our goal, how we should design coding strips. In general, 1-to-1 mapping may be appropriate if you want to spell out the action step by step to asssist students’ procedural understanding. 1-to-many mapping may be useful when you want to help learners better grasp high-level concepts by creating meaningful, comprehensible abstractions for execution steps (notice how 3 panels illustrate just the beginning, middle, and final step of the loop instead of highlighting every step in the above 1-to-many example). Finally, many-to-1 mapping may be the right design if you want to highlight concept’s specific properties by using multiple panels in a single execution step.

我们可以用这些模式做什么? 它可以根据我们的目标告知我们如何设计编码条。 在一般情况下,如果你想拼出行动一步一步asssist学生的程序理解 1对1的映射可能是合适的 当想要通过创建有意义,可理解的执行步骤抽象来帮助学习者更好地掌握高级概念时, 一对多映射可能会很有用(注意3个面板如何仅显示循环的开始,中间和最后一步,而不是突出显示上述一对多示例中的每个步骤)。 最后,如果要在单个执行步骤中使用多个面板来突出显示概念的特定属性,则多对一映射可能是正确的设计。

使用编码条 (Using Coding Strips)

Several use case scenarios were suggested by students and teachers, including, but not limited to:

学生和老师提出了几种用例场景,包括但不限于:

  • Using the design activity to get students to plan the design of the program before engaging in writing

    使用设计活动让学生在参与写作之前计划程序的设计
  • Using coding strips to introduce concepts/code

    使用编码条介绍概念/代码
  • Including them as a complementary resource in textbooks (“for explaining abstract data structures and algorithms [that] are hard to visualize through code”)

    将它们作为教科书中的补充资源使用(“用于解释难以通过代码可视化的抽象数据结构和算法”)
  • Using them to assess students’ learning (e.g., by testing whether they can guess/write the coding strips’ underlying algorithm and code)

    用他们来评估学生的学习(例如,通过测试他们是否可以猜测/编写编码带的基础算法和代码)

下一步 (Next Steps)

There are so many exciting things to do to build on this work, such as developing an authoring tool to facilitate the creation of coding strips. Also, I am confident that this design process and tools (after some customizations) can be used to design comics for concepts in other domains (e.g., machine learning, data science, etc.). I already started working on them and can’t wait to share the work once I am done!

在这项工作的基础上,有许多令人兴奋的事情要做,例如开发一种创作工具来促进编码条的创建。 另外,我有信心,该设计过程和工具(在进行一些自定义之后)可用于为其他领域(例如,机器学习,数据科学等)中的概念设计漫画。 我已经开始研究它们了,等不及了!

To learn more about the work, please find the paper here.

要了解有关这项工作的更多信息,请在这里找到论文。

致谢 (Acknowledgement)

I would like to thank my collaborators as well as Center for Teaching Excellence at the University of Waterloo for funding this research.

我要感谢我的合作者以及滑铁卢大学卓越教学中心的资助。

[1] S. Suh, M. Lee, G. Xia, and E. Law, “Coding Strip: A Pedagogical Tool for Teaching and Learning Programming Concepts through Comics

[1] S. Suh,M。Lee,G。Xia和E. Law,“ 编码带:通过漫画教与学编程概念的教学工具

[2] L. M. Giraffa, M. C. Moraes, and L. Uden, “Teaching object-oriented programming in first-year undergraduate courses supported by virtual classrooms”

[2] LM Giraffa,MC Moraes和L. Uden,“在虚拟教室支持的一年级本科课程中教授面向对象的编程”

[3] S. Suh, “Promoting Meaningful Learning by Supporting Interplay within Abstraction Ladder”

[3] S. Suh,“通过支持抽象阶梯中的交互作用来促进有意义的学习”

翻译自: https://medium.com/@sanghosuh/designing-using-comic-strips-to-teach-programming-concepts-bc706956b1a8

java编程概念

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值