MIT: The Missing Semester of Your CS Education

https://missing.csail.mit.edu/

Why we are teaching this class

During a traditional Computer Science education, chances are you will take plenty of classes that teach you advanced topics within CS, everything from Operating Systems to Programming Languages to Machine Learning. But at many institutions there is one essential topic that is rarely covered and is instead left for students to pick up on their own: computing ecosystem literacy.

Over the years, we have helped teach several classes at MIT, and over and over we have seen that many students have limited knowledge of the tools available to them. Computers were built to automate manual tasks, yet students often perform repetitive tasks by hand or fail to take full advantage of powerful tools such as version control and text editors. In the best case, this results in inefficiencies and wasted time; in the worst case, it results in issues like data loss or inability to complete certain tasks.

These topics are not taught as part of the university curriculum: students are never shown how to use these tools, or at least not how to use them efficiently, and thus waste time and effort on tasks that should be simple. The standard CS curriculum is missing critical topics about the computing ecosystem that could make students’ lives significantly easier.

The missing semester of your CS education

To help remedy this, we are running a class that covers all the topics we consider crucial to be an effective computer scientist and programmer. The class is pragmatic and practical, and it provides hands-on introductions to tools and techniques that you can immediately apply in a wide variety of situations you will encounter. The class is being run during MIT’s “Independent Activities Period” in January 2020 — a one-month semester that features shorter student-run classes. While the lectures themselves are only available to MIT students, we will provide all lecture materials along with video recordings of lectures to the public.

2019年招新活动及全体大会

随着2019届新生的入校,2019年iflab的招新活动也正式开始。

针对本次招新,由iflab的成员设计了相关的海报与传单。在海报与传单中,添加了社团招新申请表网页的二维码,新生通过扫描二维码即可进入网页中进行信息填写。

左:2019年iflab招新海报 右:2019年iflab招新传单
2019年iflab申请链接

紧接着,我们在食堂门前进行了招新宣传活动,在iflab的展位前布置了海报,并且在展位上发放招新传单给感兴趣的同学。除此之外,本次招新还制作了带有iflab logo的纪念品,同样发放给前来iflab展位的同学。

2019年iflab招新现场
2019年iflab招新纪念品

在招新宣传活动结束后,我们在iflab官方公众号上公布了2019年度招新的面试题目。今年的面试题目首创「多方面,多选择」的面试题,面试题目包含了:用C语言或html实现的自我介绍、产品的创意设计、历史作品展示、算法题、调研题、设计题、机器学习的算法介绍等面试题目,给予新同学多方面的选择。

在公布了面试题后不久,2019年iflab新生面试于2019年9月27号和9月28号晚上进行,新同学们分批进行了面试展示。本届报名iflab的新生们的素质普遍较好,同学们对于完成的面试题目都有很清晰的讲解说明,从中也涌现出一些极具特点的同学,给导师们留下了深刻的印象。

2019年iflab面试现场

在经过同学们的精彩面试之后,经过导师们的讨论, 最终确定了2019年新加入社团的成员名单,2019年的导师团名单也同时产生。

2019年iflab新生名单
2019年iflab导师团名单

根据历届情况,今年的新生在分配完导师后,我们采取了「跟踪制」每周对新生学习情况进行跟踪汇报。至此,2019年iflab招新活动落下了帷幕,

导师团「跟踪制」每周汇报

在招新活动完成之后,iflab于2019年10月22日进行了2019年全体大会。

2019年iflab全体大会现场

本次大会中除了由主席王仁泉介绍iflab的发展历程以及目前的研究方向以外,还邀请了历届的导师团成员来进行经验分享,曾老师也对社团的情况进行了介绍,也呼吁更多同学为社团的发展做出贡献。

主席王仁泉发言
前iflab导师团成员付尧

本次全体大会还邀请了校友-巴别时代联合创始人万龙师兄,万龙师兄分享的内容主要对于同学们的在校发展和个人提升上进行了建议,同时在游戏行业的领域,为感兴趣的同学们介绍了自己的发展历程同时也对同学们的学习路径和未来规划的不同路径作出了推荐,希望大家在学生期间就尽可能多的自己参加项目来扩充自己。

万龙师兄发言

之后就是本届的导师团成员分别进行介绍自身的研究方向以及项目内容,以及双选的流程以及系统的介绍。

在最后全体参会成员齐聚在一起合影留念,2019年iflab全体大会就这样落下了帷幕。希望在新的学期里,大家能够发挥各自的能力,共同学习,共同进步。

iflab全体参会成员合影

ifLab协助开源课项目辅导

本学期计算机学院的《开源软件开发技术》课程参考了康奈尔大学CS5152的课程设计,让选修课程的大二同学们分组完成开源项目,并邀请行业导师对小组进行指导。由于选课人数多达250多人,最后分为40多个项目小组,由10位校外行业导师进行指导,每位导师指导3-4个小组。

课程同时设计了3个周六的现场编程开发,各小组在9:00-17:00坐在一起完成各自的项目,通过这个集中时间高效实践。ifLab的导师们在这三天里轮流到编程现场辅导同学们编程,为同学们讲解开发开源软件的具体方法、工具,并解决开发中的问题。

提升我校同学们的技术实践能力一直是ifLab努力的方向,将课程和社团活动结合在一起是一种新的形式,课程提供了学习内容社团组织提供了了学习形式,内容和形式得到了结合。ifLab将在今后继续协助开源课进行项目实践,并欢迎其他技术课程来和我们合作。

新项目:大疆RoboMaster机甲大师赛

        今年起,社团将开始参加RoboMaster机甲大师赛。

关于参加竞赛这件事

        希望每一名竞赛项目的成员能记住:我们不是为了拿奖而参加竞赛。参加竞赛的初衷在于和其他学校的同学进行交流,提升技术,认清自己的能力差距,同时在备赛过程中学到自己不曾掌握的技能。最重要的是学会享受备赛这个过程,例如,对一个功能不断地迭代优化所带来的快感。

      我们也希望借参加竞赛弘扬【工程师文化】,希望每一位参加的同学能够在学习和备赛的过程中坚持下来,认真学习,认真备赛,提升能力和技术。

        备赛期间必然是艰难的,特别是对于初创队伍。可能会连续几天甚至几周刷夜,可能会遇到各种未知难度的坎,总之什么都可能会遇到,但是坚持下来就有可能成功,至少你经历了这个完整过程。吃苦耐劳和踏实肯干是工程师必备的素质,你的一生将会因此而受益。

关于这个比赛的参赛计划

        2020赛季:AI挑战赛、单项赛工程取弹项目、S1挑战赛

        2021赛季:继续参加前一年参赛项目,新参加单项赛其他项目

        2022赛季:继续参加以往参赛项目,开始参加对抗赛

注意:每一年的备赛工作都不是“调参数”!而是从头开始梳理功能需求和缺陷,优化设计,不断改进,甚至重构。

关于分工

        2020赛季由蔺晟杰、桂义勇、吴涵共同负责。

         根据个人意向进行选择方向,包括软件(嵌入式)、机械、算法等,还有项目管理、财务等。

        健翔桥的同学负责算法,小营的同学负责机械,共同负责软件(嵌入式)

        根据功能需求确定最终分组。

        特别强调:不接受抱!大!腿!

关于工作安排

        根据功能需求学习相关理论和技术,边学习边干,按照既定项目进度计划完成(根据参赛手册中的赛程安排确定的备赛进度安排)。树立责任意识和时间意识,按时按质按量完成任务。

关于管理

        设立专人负责管理资金,每周向所有成员通报使用情况。各项信息保持绝对的公开透明,对指导老师,对参加的所有成员。

       周报制度,汇报进度等所有情况。

       确定代码规范、文件命名规范、文件管理制度,为接下来的传承做好准备。

大家一起动起来,将这个竞赛项目进行下去!

新活动:Leetcode训练营

本学期社团和ACM集训队合作举办了Leetcode训练营。

随着就业形势日渐严峻,工作以及考研的面试,对算法水平的要求都逐渐提高。iflab很快意识到了这个问题,遂与学校acm集训队合作举办了leetcode训练营。acm集训队是代表学校参加国内acm-icpc和ccpc竞赛的团队(比赛详情可以百度搜“acm-icpc”的百度百科了解),活动初期由社团主席王仁泉同学以及iflab导师团成员兼acm集训队队长吴礼尉同学组织。

训练营每周举行一场为期一周的contest,contest包含5道6个题目,题目难度从易到难皆有涉及,以便循序渐进地提高同学们的算法水平。每周日晚上我们组织讲解上一周的题目,并且适当讲解一些知识点,比如目前讲的:二分法,C++中map的使用等。

活动举办初期,以leetcode题目开始,但是考虑到训练营的成员由低年级和高年级的同学组成,初期刷leetcode题目有点艰巨,于是我们初期先夯实基础,第一期的训练主要考察C语言基础语法,随后慢慢提高难度,经过四周的训练,难度已经逐步提升,预计这学期期末能开始刷leetcode题目。

就目前的情况来看,同学们的参加热情高涨,每周活跃人数30人左右,我们也希望有越来越多的人加入进来,提高自己的算法水平,为每周的训练安排献计献策。

我们希望能跟acm集训队加强合作,共同进步,提高同学们的程序设计能力,推动学校同学算法水平的提高,让大家在求职或者考研的过程中有更强的竞争力。

ifLab的方法和价值观

一开始,我们把社团当作一个技术培训的团体。技术好的同学教技术不好的同学,固定时间固定地点。我们希望同学们互相帮助,发展的更好,这是一个朴素的想法。

但是18岁的年轻人需要的不仅仅是技术,仅仅只是学习技术,也不能让我们成为更好的人。我们做对了一些事情,也做错了一些事情,思考和发展出了一些方法。遵循这些方法,社团开始走到了正确的方向,也没有偏离最初的想法。

多层结构

社团是三个层次的人群,内层是导师们大家,有共同的价值观,共同成长,效率最高网状结构;中间层是社团新人,通过导师-学员把知识和方法论传播到新人,效率次之树状结构;外层是学校的其他同学,社团通过比赛、辅导、讲座来传播,效率最低广播式。

扁平组织

我们不像一般的学生社团以职能来划分部门组织,也不像一般的技术社团以技术方向来划分技术组织。我们以人和人的联结方式来划分组织,没有管理层级不划分部门,组织的目的就是社团每个人的学习和成长。社团里的主要组织方式是导师和学员,不分年级有能力的都可以当导师,新入社团的都是学员。每个导师都可以完成多种工作,每个导师都可以有多个技术方向。

导师

一部分没有自制力的大学生还需要导师来监督。更重要的是,导师可以就宏观的人生问题或者具体的作业问题给予交流。但是大学里面并没有那么多的教师去关注每位有需求的大学生。所以我们设计了一个组织方法,让有能力的同学担任导师。每年社团招新会招入一百名左右的大一新生,社团内部推选十多名大二到大四的同学作为导师。每个导师会负责对接若干名学员。导师都是在自己的领域取得成绩的学生,他们并不一定给予学员具体的技术辅导,而更加重视和学员沟通学习方法、专业发展、职业路径,还有生活的其他方面,等等。如果学员需要某种技术的指导,导师会在整个导师群体中寻找可用的资源。

记录

没有记录的信息都会丢失。2019年秋季开始,我们决心认真记录社团。每一次活动都写新闻稿,这是对社团本身的记录;每位导师每周写周报,记录新招收的成员的情况,并做评估,这是对成员的记录。有了记录才能了解社团的整体,并作出优化。

从做中学

这是杜威的教育理念。对于计算机方向的学习更加如此。没有人能仅仅通过读书和写作业学会真正的编程。具体的项目,以及基于真实的实践是必须环节。社团建立之初以「实践」为名,意在让各位成员脚踏实地,认认真真的对待每一个技术点,对待每一件事,通过不断去解决技术上的问题,从而达到完善自身的目的。解决的问题越多,我们看待一件事情所拓展出的视野也就越宽广,对这个领域上的探索也就越深入。

文化

文化和价值观是一个组织凝聚力的来源。社团的导师们都具有优秀学生所必须的自我驱动力,学习习惯,工作方法,人生态度。通过导师们提供给各位新同学一个良好的氛围,让新生们真实的体会到学习不是为了老师和家长,不是为了比较,不是为了物质回报,而是为了成为一个完整的人。在社团这个大背景下,我们与优秀的人一起做有挑战的事。社团是一个由人构成的集体,集体荣誉感一直是社团所信奉的价值观,我们强调团队合作,也推崇特立独行。

形式与内容

大学生有一些日常要完成的学习任务。比如大创、比赛,发表论文、毕业设计等。社团开展针对这些学习任务的协作活动,让社团的力量助力同学们更好的完成日常任务。这基于一个简单的想法:如果有多个内容需要去做,那么尝试用一个形式把它们融合在一起,在同一个时间空间来完成,而不是孤立的单独进行。大学生们的实践任务就是内容,社团的组织和活动就是形式,我们将内容和形式进行结合。在学校的这些日常任务当中,我们希望成员能够在社团这个大环境下,发挥出各位成员的主观能动性,把自己的解决日常任务的经验进行传承和优化,帮助更多新生从容不迫的进入大学学习生活中。

技术方法论

纵观计算机行业发展史,新旧技术更迭,从来没有一门技术是「银弹」,我们希望将主流技术圈子的工具链,组织方法,积极的传播给社团的新成员,比如开源、结对编程等等。结合方法论与自身的个人经历来找到适合自己的技术成长路线。

多元化

这体现在性别上,社团努力的接纳女生成员,帮助女生学习技术;这也体现在对公益活动的热心参与上,给社团成员制造参与女子编程,少儿编程的机会,让成员体验回馈社会;这也体现在社团交流的不只是知识和技术,还会交流哲学、职业发展、社会等等话题。

ifLab2019秋季工作计划

ifLab新一任导师已经完成了招新工作。以下是本学年的工作计划。

1 对新生建立跟踪系统。每一个招新进来的新生,在第一学期,导师每周更新他的状态,学什么,有没有联系等等。这些信息全体导师可见。

2 为社团成员设立新的比赛目标清单。在社团毕业学长的帮助下,引导社团有能力的同学参加高等级比赛,改变学校每年都是那些低水平比赛的现状。

3 鼓励大家通过比赛、大创、项目来发表论文。请研究生学长来教大家怎么写好论文。

4 继续举办一次女子编程,举办一次编程马拉松。女子编程可以成为常规活动,看大家的热情

5 开始参与少儿编程公益活动志愿者。这个活动和校外的非营利组织合作开展,有丰富的企业界和教育界资源。

6  每个月出一份社团简报,大家集体来写,让社团大家知道社团发生了什么,在做什么,有什么新成绩

【校级竞赛】三分钟就能了解的BISTU Hackathon

十秒钟就能了解的BISTU Hackathon:

开放、自由的校级竞赛,第一届,12小时,2个伙伴,实现创意。

比赛不难,创意为主,环境舒适,管吃管喝,奖金丰厚,现在就报!

什么是编程马拉松?是程序员一起跑马拉松吗?

不,编程马拉松并不是程序员一起跑马拉松。编程马拉松是软件开发者相聚在一起,在规定的时间内,以紧密合作的形式共同开发软件项目的活动。

我可以参加吗?

如果你是BISTU在读的本科生或者研究生,甚至你6月份就要毕业了,恭喜你,欢迎你来参加!

BISTU编程马拉松是比赛吗?

是的,BISTU编程马拉松是比赛,但它与普通的比赛有所区别,BISTU编程马拉松更开放、自由,甚至比你想象的还要自由!不如说这是一场属于程序员的聚会(滑稽)。

这比赛是做什么的?

简单的来说:你需要在12小时的时间里根据我们给出的题目,在我们提供的资源的帮助下,构思并开发一款属于自己的产品,并在结束时向大家展示。请注意,我们更看重的是你的创意,而非产品的实现形式。比赛题目由组委会预先设定并严格保密,比赛开始时公开。

12个小时开发一个产品?这太难了!

这其实并不难。你不是一个人在战斗,你可以在编程马拉松开始前或当天寻找另外两个小伙伴和你一起参与设计和开发。记得报名的时候为自己的队伍取一个独特的名字,并且让所有的小伙伴都报名。如果你找不到小伙伴,在比赛当天我们会给你30分钟的时间让你介绍自己并现场组队。

不行,我还是觉得太难了。

哎你别吓自己啊!我们还允(鼓)许(励)你使用开源资源(例如GitHub )或者你能收集到的其他资源来实现你的创意,但你要保证核心逻辑是你自己原创的,毕竟你的想法是独一无二的。来嘛,进入大学的时候你一定想过开发一款属于自己的产品,现在正是好时候啊。好时代,来临了!

那么我怎么实现自己的产品呢?

你可以通过很多途径实现自己的产品,比如桌面应用程序(Windows / macOS),或者移动应用程序(iOS / Android),甚至是微信小程序、Web都可以。请注意,这些形式之间没有高低之分,它们都是你实现你的创意的途径,你可以毫无顾忌地选择自己最擅长的形式。如果你需要将部署作品在服务器,可以使用组委会提供的云服务器或者自己的。

我习惯平时在宿舍、教室和实验室编程

很走运,BISTU编程马拉松为你提供了比这些地方都要舒适的编程环境,地点在图书馆二楼的职工活动中心。这里有足够大的桌子、舒服的椅子、随时提供的餐饮。你可以随时和组员进行交流,甚至是在对方同意下与别的组的组员友好地进行交流。最重要的是,我们还提供Wi-Fi 和电源!

那报名需要交钱吗?

不需要!场地、餐饮、资源等都不需要你花钱。如果你有其他需求,可以在比赛前36个小时前与组委会联系。

开发到一半不会了怎么办

永远记住:搜索引擎是你最好的助手,如果你实在拿不准,也可以请教我们在现场安排的三位学生技术顾问。

如此舒适的环境,这还是比赛吗?

这当然是比赛,还是正规的校级比赛(你可以拿它评奖),最终比拼的是你的创意。哦对了,这里有一份评分标准:

评审团队由评审嘉宾和组委会成员共同构成(比赛组委会由学校老师和学生共同组成),采取线下与公开答辩的评审方式。具体评审规则包含三部分:作品基本参数:60 分(功能性、可靠性、流畅性)、作品创新与特色之处:40 分(设计理念、界面设计、交互设计、选题及其它)。

为了回报你的努力,我们还准备了丰厚的奖金:一等奖1队:1024 RMB / 人;二等奖1队:512 RMB / 人;三等奖若干:256 RMB / 人。

我需要带什么?

带上你的学生证、笔记本电脑、鼠标、充电器就够了。哦对了,最重要的是你的创意!

日程是怎么样的呢?

有几个关键日程你需要注意:2019年4月24日 报名系统开放;2019年5月 三场比赛技术宣讲,具体安排在ifLab公众号推送;2019年5月11日 报名结束,组委会整理报名信息并对参赛者进行筛选;2019年5月13日 组委会公布入选参赛者名单;2019年5月18日 进行比赛,参赛者在9:00-21:00进行开发并提交作品和讲解视频;2019年5月25日 组委会公布获奖名单并颁奖。

如果你错过了报名时间也没有关系,在技术讲座中我们也会开放报名通道。

我该怎么报名?

首先,你需要准备一份个人简历,形式可以是博客和GitHub的链接、你完成的产品的图片或视频(任何与计算机相关的都可以,包括课设)、文档版的个人简历或者是你发过的论文,或者是一个简短的自我介绍都可以;

⚠️提供自我介绍只是为了让我们更好地了解你,也是为了让你提前准备,不用紧张⚠️

然后,你就可以去这个网址报名了:https://hackathon.solikeu.com

如果你有任何疑问,都可以加下面这个QQ群来询问:825956495;

最后,别忘了关注ifLab的微信公众号来获取更多比赛消息。

赛事官网

https://www.iflab.org/2019/04/18/bistu-hackathon/

赛事信息推送

ifLab公众号
赛事交流QQ群群聊号码:825956495

报名参加

点击报名

BISTU Hackathon组委会保留对竞赛规则的最终解释权