




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
九个月学编程窗体顶端在过去的一年中,许多CS教授和教育专家们写了关于如何MOOCs CS教育扩大到几百名学生。我在这里要采取不同的方法,告诉的故事如何,我花了9个月的一个学生教授计算机编程。2011年7月至2012年3月,我教基本的编程布赖恩Goler,一位资深的旧金山湾地区的企业家,市场营销,销售和产品开发的一个广泛的背景。布赖恩开始之前没有编程经验,但在短短几个月内,他能够,建立SwearBuy,一个免费的网络应用程序,人们可以分享的产品,他们的爱的评论。更重要的是,布莱恩获得了去寻找和学习更先进的技术资料,对自己的能力。我最大的贡献是引导他对士气低落的障碍,通常初学者。背景布赖恩了解我,从我的个人网站,因为它包含了一些文章,计算机科学教育。下面是一个从2011年7月,他送给我的第一封电子邮件的摘录:我们未曾谋面,但我看,如果你有我的一些建议。我发现你的网站,在网上搜索的导师谁可以帮助我学习更多关于计算机编程。具体来说,我正在寻找的人谁能够跟我见面1-2次/周,短,1个小时的辅导课,而我的工作我的方式,通过一个CS课程的早期阶段,。我开始与麻省理工学院的“开放式课程网页”6.00课程。虽然“开放式课程网页”和其他在线资源是巨大的,我想我可以更迅速地前进和提高我的理解,如果有一个人我可以把问题和可以审查我的工作,给我反馈的概念。鉴于你在麻省理工学院和斯坦福大学的历史,我想你可能知道的人可能感兴趣的一个不错的选择吗?或者,我应该吗?当然,我会付出他们的时间。由于我是不是太忙碌的时候,我给导师布莱恩自己。在他的家和第二届会议在附近的咖啡馆,我们有我们的第一个一小时的会议。我去了一些学术会议,所以我们做了我们第三次辅导会议上的Skype网络视频电话服务。我们使用Skype的屏幕共享功能,这样我就可以看到他的电脑屏幕上的内容,我们聊了聊。这种格式的工作这么好,我们决定做所有的后续会议上通过Skype。我只有两次亲自辅导布赖恩,但我们做了超过50小时的Skype视频通话(跨越40节)。起初,我们都惊讶于如何在网上只有Skype格式的工作为我们的会议。它甚至比我们会议的人一个响亮的咖啡厅和一个小笔记本电脑的屏幕周围紧紧地团结在一起。使用Skype的屏幕共享功能,我可以查看自己的公寓舒适的布赖恩的电脑屏幕上,并与他互动,实时。如果我需要做草图,然后我和他一起分享我的电脑屏幕上,并提请使用数字手写板。 (萨尔曼汗开始辅导他的堂兄弟以类似的方式,他现在已经世界著名的教育影片。)基于项目的学习Brian的目标是学习基本的编程技能,为个人发财致富的,他并没有试图找一份工作作为一个专业的程序员或计算机科学研究员。在我们相识之前,布莱恩已经花了几个星期教自己的Python编程语言,从麻省理工学院“开放式课程网页”的课程介绍计算机科学和编程(OCW 6.00)。我们花了我们最初的几个辅导课,在基本的编程概念,立足于课程讲座和作业。不过,我很快就意识到,刚开始学习从学术课程教材的不布赖恩充分参与,尤其是因为他几乎是二十年前从大学毕业。他似乎并不热衷于限制自己学习的唯一的计算机科学术语和做数学难题问题集旨在为大学生。因此,我决定给布莱恩成为一个务实的业余程序员,而不是一个博学多才的计算机科学学者。我鼓励他尝试想一个软件,他很愿意为他自己和他的朋友们建立。我的角色是他的导师,而他建立了自己的软件项目。也正是这样一个简单的想法,但它的工作非常出色。布赖恩提出了一些想法和概念,将最终变成SwearBuy,最终承诺。在接下来的九个月中,他投入了几十个小时,每星期建设SwearBuy,常常工作到深夜。我们计划每星期1到2个Skype的辅导课,每次12小时。我花了我大部分的时间在那些电话,回答Brian的问题,帮助他找到和调试软件缺陷,有时结对编程与他一起编写新的代码。我很少讲授多几分钟的时间。除了对他来说是极具吸引力的,QA-的格式对我来说很方便,因为我很少花时间之前,我们的会议做准备。基于项目的学习是非常有效的,因为布莱恩十分关心自己的羽翼未丰的创作。他的学习指导的必要性,而不是由一些预设的千篇一律的学术课程。因为他是如此充满激情SwearBuy,他会想出很多想法的新功能。他将不可避免地需要学习新的编程技术来实现这些所需的功能。因此,我的角色是:是什么,他想实现的可行性进行评估,如果有必要,引导他走向他的想法实现一个简单的版本,选择子集的编程工具,成语和技巧,最能满足自己的学习需求,找到他合适的资源(如,示例代码,博客文章,在线教程,甚至书籍等),以便他能教自己,回答他的问题时,他努力去理解什么,他已经自学了。有几十个或有时数以百计的方式来完成同样的任务计算机编程;这众多的选择,对于初学者可以瘫痪。由于空间的可能性是如此巨大,他们根本不知道从哪里开始。我的主要工作是空间缩小到一个可管理的概念集到在Brian的项目每个阶段的学习,让他对自己的奋斗与学习,然后回答他的问题时,他被卡住的可能性。我十年的经验,在做教学节目,使我缩小了一套可能的选择,在每个决策点什么,我认为这将是最好的布赖恩的学习。具体而言,我选择了他使用的编程语言,如Python,JavaScript和SQL的基本功能,建立SwearBuy“从零开始”,而不是复杂的Web应用程序框架的基础上。虽然布赖恩不得不写更多的代码来实现所需的功能,“从头开始”(这是一个误导,因为没有什么是真正从头开始),他能有更深入的了解,个别组件如何工作“引擎盖下”。Brian的计划是一个伟大的基础,我们所有的Skype通话,因为我可以教新概念是什么,他想在任何给定的时间来完成他的项目范围内。没有做作课本上的例子可以弥补现实世界的应用程序,其中一个学生的个人投资。斗争为基础的学习布赖恩通常10-15小时,每1-2小时的Skype通话与我对自己的编程之前,所以他总是有很多的迫切问题和新编写的代码,他要我帮他调试或改善。如果我刚给他讲课没有任何上下文的情况下,他会不会有内在的教训彻底。他将有可能点了点头,“嗯,OK,这是有道理的.酷,接下来会发生什么?”相反,因为他通常挣扎的混凝土,代码相关的问题之前,我们的辅导课 - 常点的挫折和沮丧 - 他会回应更像是,“OHHH的,WOW!现在我完全能够理解!”,当我引导他交给他的时候,似乎难以逾越的一些问题。他的喜悦和宽慰的是明白无误的。我不认为有什么更好的方式来内化后的知识点比第一个花费数小时时间越来越情绪烦乱在这样的斗争中,然后才得到帮助的良师益友。为了使布莱恩的经验,痛苦少,我照顾它基础设施的设置和其他“垃圾工作”,并没有直接的贡献,以他的学习。我希望他能努力奋斗的实际规划和建设SwearBuy的,而不是把时间浪费在平庸的无关的问题,如建立一个Web服务器或版本控制系统。 (当然,如果他的目标是学习如何成为一个系统管理员,然后我将让他努力完成这些任务。)有很多时髦的书籍,在线课程和现场研讨会,声称能教你在7天或3周,或任何编程(或其他技能)。很明显,你不能在几个星期内掌握一门新技能,但我不认为没有人真的相信他们可以。与这些各种各样的“熟练快速”计划的真正危险的是,他们不强调可持续发展。这些课程是喜欢时尚的饮食可能让你减掉10磅,但你是不是要保持体重,除非你开发可持续的良好的生活习惯。同样,有没有办法让擅长于编程,除非你不断挣扎多年的,但为了保持动力,不断挣扎,你必须做的事情,你是充满激情的。挣扎是不好玩的,所以没有适当的动机,这一切都太容易过早地放弃。我知道,只要我成功了布莱恩意识到他不再需要我作为他的导师。尽管他承认,它仍然需要数年的奋斗,成为一个熟练的程序员,他就开始看他怎么可能从他目前的技术水平。他的教训还不够,在过去9个月,以可持续的方式继续自己的学习。我很自豪,我给了他足够的知识和智慧,而不是服务另一个“熟练快速的”时尚饮食计划,他继续对自己的。结束语我们的辅导会议结束后,布莱恩反映,虽然他很珍惜这个“学习做”的理念,他仍然认为是很有价值的平衡与传统的计算机科学课程教学项目为基础的工作。建设SwearBuy时,他经常采用临时解决方案“只是把事情的工作”,使用谷歌搜索,很多技术博客阅读,复制和粘贴代码线程。因此,他觉得像他也经常到次优的解决方案,解决或使用的概念,他并没有深刻认识。 Brian的最大向前的精神跨越式来了,当他往回走了一步,从一天到一天的项目研磨,学到了新的概念,在一门课程或一本书,然后想如何把它们应用到SwearBuy。自2012年3月,我们完成了我们的最后一堂课的,我没有听到来自Brian六个月。最近,他给我发了电子邮件提的是,他只写了一个Python脚本,以帮助他的模型个人股票投资:“我感到非常自豪,因为这是我做的第一件事,是既实用又纯粹是为了个人使用该脚本评估股票投资,并希望模拟了一堆的情况下,我开始在电子表格中的场景建模,我才意识到,一个电子表格是行不通的,但是,蟒蛇是完美的。“我爱这封电子邮件,因为它展示了如何编程,使他完成的任务本来单调乏味的或困难的事,否则。我希望学习编程的人,每个人都有自己的“穿越悬崖”的时候,他们开始为自己编程,而不是仅仅在学校或工作分配。“的陈词滥调我要老调重弹的是,动机就是一切。布赖恩的高度出于他自己的项目,所以他几乎自学。所有我需要做的就是不断引导他沿着一条有效途径,使他的斗争大多指向有用的学习。如何做我的经验推广到教学,绝大多数的学生远不如自我激励布赖恩?这个技术的规模超出单对单辅导?我不知道。我所知道的是,如果你能得到学生的真正动机,消除不必要的学习障碍,让他们碰了一下在适当的时候,他们实际上会教自己。评论匿名2012年11月8日10时45分大后菲利普!不同意以项目为基础和斗争的学习方法。这是确切的配方,我们在芝加哥入门联赛中使用。学生谁是在我们的计划是充满干劲的,要解决个人的问题。对于初学者来说是至关重要的,这些成分在编程,以获得一个良好的开端。匿名2012年11月8日10:55真棒!我可以不同意与布赖恩。我一直在努力从Codecademy通过MIT OCW和CodeYear的,这将是非常有帮助的良师益友反弹的问题,不时。鲁道夫Olah新! 点击上方的字词可修改和查看其他翻译。 删除窗体底端Google 翻译(企业版):译者工具包网站翻译器全球商机洞察In the past year, many CS professors and education pundits have written about howMOOCs are scaling up CS education to hundreds of thousands of students. Im going to take a different approach here and tell the story of howI spent nine months teaching computer programming to one student.Between July 2011 and March 2012, I taught basic programming to Brian Goler, a veteran San Francisco Bay Area entrepreneur with an extensive background in marketing, sales, and product development. Brian started out with no prior programming experience, but within a few months, he was able to build SwearBuy, a free web application where people can share reviews of products that they love.More importantly, Brian gained the ability to seek out and learn more advanced technical material on his own. My biggest contribution was guiding him over the hurdles that usually demoralize beginners.BackgroundBrian learned about me from my personal website because it contains a few articles about computer science education. Here is an excerpt from the first email he sent to me in July 2011:We havent met, but Im reaching out to see if you might have some advice for me.I found your website while searching online for a tutor who might be able to help me learn more about computer programming. Specifically, Im looking for someone who would be able to meet with me 1-2 times/week for short, 1-hour tutoring sessions while I work my way through the early phases of a CS curriculum.Im starting with MITs OCW 6.00 course. While OCW and other online resources are great, I think I could advance more quickly and improve my understanding of concepts if there were someone I could turn to with questions and who could review my work and give me feedback.Given your history at MIT and Stanford, I thought you might know someone who may be interested and a good fit? Or, places I should be looking? Of course, Id pay for their time.Since I wasnt too busy at the time, I offered to tutor Brian myself. We had our first one-hour session at his home and the second session at a nearby coffee shop. I then traveled to some academic conferences, so we did our third tutoring session over the Skype online video phone service. We used the screen sharing feature of Skype so that I could see the contents of his computer screen as we chatted. This format worked so well that we decided to do all subsequent sessions over Skype. I tutored Brian only twice in person, but we did over 50 hours of Skype video calls (spanning 40 sessions).At first, we were both surprised by how well the online-only Skype format worked for our sessions. It was even better than us meeting in person at a loud coffee shop and huddling around a small laptop screen. Using Skypes screen sharing features, I could view Brians computer screen from the comfort of my own apartment and interact with him in real time. If I needed to make sketches, then I shared my computer screen with him and drew using a digital pen tablet. (Salman Khan started making his now-world-famous educational videos by tutoring his cousins in a similar way.)Project-Based LearningBrians goal was to learn basic programming skills for personal enrichment; he wasnt trying to get a job as a professional programmer or a computer science researcher. Before we met, Brian had already spent a few weeks teaching himself the Python programming language by following the curriculum of Introduction to Computer Science and Programming (OCW 6.00) from MIT OpenCourseWare. We spent our first few tutoring sessions going over basic programming concepts, grounded in the course lectures and homework.However, I quickly realized that just learning from academic course materials would not keep Brian sufficiently engaged, especially since he graduated from college almost twenty years ago. He did not seem too keen on limiting himself to learning only computer science terminology and doing math-related puzzle problem sets intended for undergraduates.Therefore, I decided to teach Brian to become a pragmatic amateur programmer rather than an erudite computer science scholar.I encouraged him to try to think of a piece of software that he would love to build for himself and his friends. My role would be to mentor him while he built his software project. It was such a simple idea, but it worked remarkably well.Brian came up with a few ideas and ultimately committed to the concept that would eventually turn into SwearBuy. Over the next nine months, he devoted up to dozens of hours per week to building SwearBuy, often working late into the night. We scheduled 1 to 2 Skype tutoring sessions each week, each lasting 1 to 2 hours. I spent most of my time during those calls answering Brians questions, helping him find and debug software bugs, and sometimes pair programming to write new code together with him. I rarely lectured for more than a few minutes at a time. Besides being highly engaging for him, this Q&A-based format was convenient for me as well since I rarely had to spend time preparing before our sessions.Project-based learning was immensely effective since Brian cared deeply about his own fledgling creation. His learning was guided by necessity, not by some preset cookie-cutter academic curriculum. Since he was so passionate about SwearBuy, he would come up with lots of ideas for new features. He would inevitably need to learn new programming techniques to implement those desired features. Thus, my role was to: assess the feasibility of what he wanted to implement and, if necessary, guide him toward implementing a simpler version of his idea, select the subset of programming tools, idioms, and tricks that would best serve his learning needs, find him the proper resources (e.g., sample code, blog posts, online tutorials, or even books) so that he could teach himself, and answer his questions when he struggled to understand or apply what he had taught himself.There are dozens or sometimes hundreds of ways to accomplish the same task in computer programming; this multitude of choices can be paralyzing for beginners. Since the space of possibilities is so vast, they simply have no idea where to start.My main job was to narrow down the space of possibilities into a manageable set of concepts to learn at each stage of Brians project, let him struggle with learning on his own, and then answer his questions when he gets stuck.My decade of experience in both doing and teaching programming enabled me to narrow down the set of possible choices at each decision point to what I felt would be best for Brians learning. Specifically, I chose to have him use the basic features of programming languages such as Python, JavaScript, and SQL to build SwearBuy from scratch rather than building on top of intricate web application frameworks. Although Brian had to write more code to implement desired functionality from scratch (which is a misleading term, since nothing is really made from scratch), he was able to gain a deeper understanding of how individual components worked under the hood.Brians project was a great basis for all of our Skype conversations, since I could teach new concepts within the context of what he wanted to accomplish in his project at any given time. No amount of contrived textbook examples can make up for a real-world application in which a student is personally invested.Struggle-Based LearningBrian usually did 10-15 hours of programming on his own before each 1-2 hour Skype call with me, so he always had plenty of urgent questions and newly-written code that he wanted me to help him debug or improve. If I had just given him lectures without any context, he would not have internalized the lessons as thoroughly. He would have probably nodded his head and been like, uh huh, ok that makes sense . cool. whats next? Instead, because he was usually struggling with concrete, code-related problems before our tutoring sessions - often to the point of frustration and discouragement - he would respond more like, OHHH, WOW! Now I totally get it!, whenever I guided him over some problem that seemed insurmountable to him at the time. His joy and relief were always unmistakable. I dont think there is any better way to internalize knowledge than first spending hours upon hours growing emotionally distraught over such struggles and only then being helped by a mentor.To make Brians experience less painful, I took care of I.T. infrastructure setup and other grunge work that did not directly contribute to his learning. I wanted him to struggle hard on the actual programming and building of SwearBuy, not to waste his time on banal unrelated issues such as setting up a web server or version control system. (Of course, if his goal were to learn to become a system administrator, then I would have let him struggle with those tasks.)There are lots of trendy books, online courses, and live seminars that claim to teach you programming (or other skills) in 7 days or 3 weeks or whatever. Its obvious that you cannot master a new skill in a few weeks, but I dont think anyone actually believes they can. The real danger with these sorts of get skilled quick schemes is that they dont emphasize sustainability. These courses are like fad diets that might get you to lose 10 pounds right away, but you are not going to keep the weight off unless you develop sustainably good habits. Similarly, there is no way to get skilled at programming unless you keep struggling over many years; but in order to stay motivated to keep struggling, you must be doing something you are passionate about. Struggling isnt fun, so without the proper motivation, its all too easy to give up prematurely.I knew that I had succeeded as soon as Brian realized he no longer needed me as his tutor. Even though he acknowledged that it would still take years of struggle to become a skilled programmer, he began to see how he could potentially get there from his current skill level. He had learned enough over the past nine months to sustainably continue learning on his own. I am proud that I gave him enough know-how and wisdom to continue on his own rather than serving him yet another get skilled quick fad diet scheme.Closing ThoughtsAfter our tutoring sessions ended, Brian reflected that although he cherished this learning by doing philosophy, he still believes that there is great value to balancing project-based work with traditional computer science course-based instruction. When building SwearBuy, he often applied ad-hoc solutions just to get things working using lots of Google searching, technical blog reading, and copying-and-pasting code from StackOverflow threads. As a consequence, he felt like he too often settled into suboptimal solutions or used concepts that he didnt deeply understand. Some of Brians biggest forward mental leaps came when he took a step back away from the day-to-day project grind, learned new concepts in a course or from a book, and then thought about how to apply them to SwearBuy.Since we finished our final tutoring session in March 2012, I didnt hear from Brian for six months. He recently sent me an emailmentioning that he just wrote a Python script to help him model personal stock investments:Im very proud of this script because it was the first thing Ive done that was both practical and purely for personal use. I was evaluating a stock investment and wanted to simulate a bunch of scenarios. I starte
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届江苏省徐州市邳州市八路中学九年级化学第一学期期中复习检测试题含解析
- 海员船上安全作业培训课件
- 培训课件内容评估报告范文
- 5.1.1.2方程的解及一元一次方程(教学课件)人教版七年级数学上册
- 海口消防安全培训课件
- 记叙文主题探究课件
- 宿舍成员自我介绍
- 市场营销定价的方法
- 宠物食品产品创新报告:基于2025年用户成分认知与卖点提炼
- 供热生产调度培训课件
- 2025年事业单位招聘考试综合类职业能力倾向测验真题模拟试卷:电子信息工程领域
- 仓库维修协议书
- 食材配送退换货方案
- 城管协管员面试题及答案
- 2025年秋期人教版五年级上册数学全册核心素养教案(教学反思有内容+二次备课版)
- 肥料及基础知识培训课件
- 居家养老服务方案投标文件(技术方案)
- 风电场施工的重点和难点及保证措施
- AI 智能体运行安全测试标准(英文)
- 乙肝dna检测培训课件
- 老年驾考三力测试模拟题
评论
0/150
提交评论