BEN LEONG

Associate Professor
School of Computing

National University of Singapore

15 Computing Drive, COM2 Building, #03-20, S(117418)

Tel: (+65) 6516 4240 Fax: (+65) 6779 4580

Email: benleong at comp.nus.edu.sg

 

Course Survey for Sichuan University Summer Course: Advanced Programming Methodolgy in Python (4 - 15 Jul 2016)

Total Number of Respondents : 52/70

Python 相关问题
 
1) Multiple Choice

在你学完这门课程之后,你觉得Python 与 C谁更适合当本科生入学的第一门语言?

Response

Percentage

Python

20
( 38.5%)

C语言

21
( 40.4%)

不好说

11
( 21.1%)

 

2) Essay

(接上一题)你为什么选择这个答案,你觉得Python与C的区别是什么?

1. C 与Python相比更加基础,或者说与底层更接近,可以涉及到一些基础的东西,方便更好的了解,认识,我觉得真实的比抽象的好理解,而C离实际近些,Python更抽象(一切都是对象)。而且C里面定义变量有数据类型的限制,更好理解。但是有了C的基础,Python使用会很方便。所以我觉得C比较适合做基础语言。

2. 因为c语言中把基本的语法和概念都学习后。其他的语言上手很快。c语言的许多基础在其他语言中同样适用。
3. C有指针,更深入底层;python语言精简,开发效率高
4. C语言结构更严谨,适合初学者;python更适合进阶,帮助程序员用更少的代码行实现更多的功能
5. 由于Python优秀的抽象性,Python相对于C简化了太多程序本身的特性,突出强调了程序带有的逻辑和数据抽象之后对现实世界的映射。但是Python简化的程序的特性,比如内存空间的消耗(垃圾回收问题)、程序入口的概念、程序形成的进程与操作系统之间的交互等等概念的形成,个人认为对于学习软件的学生来说十分重要的。而且这些概念个人认为必须在学习之初建立,数据抽象、算法设计都可以在长期的学习过程中建立,这些概念的建立时间错过了就是错过了,还可能引起非常不好且难以纠正的编程习惯。
6. 指针。C指针难以避免的会用到,对初学者是很大的困难。Python一些语法比较自然。
7. python更灵活,虽然更好入门,但是C语言更容易培养编程规范,因为C语言很死板,学习好C语言,转而学习python会更容易
8. 我觉得c能够更加深刻的理解一个程序的执行过程,而python也是一种能够很好的表示逻辑运算的过程的语言,2者都不似java有很多集成的功能,更多的是对一个对象的操作。
9. c语言更为基础,格式更为严格
10. 好用
11. python语法很简洁
12. 更容易理解,而且可实现的对于新手的功能相对较多。
13. C学习资料更加充足,对于没有学过任何一门语言的人来说非常方便入门。而且国内算法入门教材基本是c/c++. 区别: python写起来更爽一点,不知道工程管理上会不会有什么问题。好像还有多线程的问题
14. Python相比C语言,我个人觉得有以下适合新生学习优点: 1.格式非常好看,对于刚入学的本科生,如果用C,格式会非常花式多样(有些还乱七八糟的),python因为用缩进控制,所以相对比较好看(个人认为),能适合新生一开始就掌握较好的编程习惯。 2.新入学的同学更多的是对于循环、判断以及数据操作的一些学习,而C语言涉及太多较底层的操作,反而不适用于新入学的同学去了解一些代码运行的流程。所以我觉得python适合入门,C更适合进阶的学习。 3.python预置了很多有用的函数,还有方便的list操作,而且相对于C,实现一个功能较为容易(虽然可能效率较C低),代码量较少,思考也相对容易,对于完全没有编程基础的新生来说,掌握较为容易,而且新入学学生大多不会去关注程序运行的效率,更希望得到结果,所以我觉得python入门能带给新生更多成就感和动力。
15. 个人感觉Python的确上手很快,但是语法上可能不是很严谨,我个人还是倾向于C
16. c语言更加基础,原理很清晰,python需要有一定的编程基础,才有利于理解
17. python 内置了很多方便的数据结构,比如list tuple dict ,而且比c++ stl里面那些数据结构好用,适合大一的学生学习。让入学的学生首先掌握编程的精髓,做更多有趣的事情,而不必考虑一些细枝末节的东西。
18. python有很多内建函数,很方便 c略为繁琐,入门会很挫败
19. C语言是面向过程的语言,抽象概念是低于面向对象python,学习编程不是为了熟悉擅长语言,而是对编程概念思想的把握,如果一开始就接触面向对象的高级语言,可能在设计程序和概念理解上会存在困难。当然,从过程化编程到面向对象编程也存在过渡问题,但不会那么严重,在熟悉理解了过程语言的数据结构、函数等编程理念后对高级语言的学习会更轻松。再者,C语言有其特殊性,其效率和功能还是很强大的,作为入门语言我认为比较合适,虽然自己学习的语言不多,但是C给我的感觉是严格、规范,它需要程序员对数据结构、编译过程有一定的了解,内存、地址,还有其他语言都取消的指针的问题如果在学习C的过程搞明白,感觉是受益匪浅的。python除了面向对象概念外,明显的降低了数据类型在实现过程中的必要性,即不需要显示声明类型,但是C不可以,甚至C都没有像list、dictionary一样强大的数据类型。也就是说,如果真正想要理解计算机、存储结构等问题,还是应该学习C,能更好的对底层有了解。不过,如果是以网络开发、web前端等等使用python类的高级语言很合适,代码量会大幅减少,C则更适合嵌入式、设备驱动,操作系统。
20. python更有利于快速开发一些程序
21. python具有面向对象思想。一个面向过程,一个面向对象
22. Python语法简单,学习上手容易,但是C语言的语法基础是很多其他语法的语法基础,十分相似,从而在学习完C语言后入门其他语言相对容易,总之我觉得Python适合非计算机专业学生入门,C则反之。
23. C语言更利于理解计算机的底层操作 python是一门面向对象的解释型语言,更抽象也更符合人的逻辑思维,而C偏向于计算机的逻辑 对于计算机专业的学生来说,我觉得必要从学习C语言开始 但对于其他非计算机专业的学生来说,我觉得大可以从python开始学习,从容易学习也更容易做成作用更大的程序
24. python语法简单,上手快,很容易得到直观成果,而大一的时候学了一学期C语言只停留在能编写出在黑框框里运行的小程序
25. 原因:对于初学者自学编程,我觉得Python比较合适;但对于大学生第一门语言,既然几乎所有大学都选的C,而且C语言的设计影响了C++、Objective-C、Java、C#等众多语言,可以为以后的学习打下基础,那么C更合适。 区别:C的逻辑更接近机器语言,内容比较抽象繁琐;Python更接近英语,比较简单易懂,而且功能强大。
26. 重点在于教学方式和效果。因为大学前学过编程语言,大一教C语音的方式没意思,所以基本没听课。python的作为入门语言的优势是,更接近自然语言,缩进断语句的方式对于代码格式的培养也比较好,它方便面向过程与对象的编程,同时也可能让新手对两者的概念辨析不够。
27. 我觉得python做一些有趣的事情比较容易,比如证明数学
28. Python 可以让新生们更关注于逻辑,而不是像C语言那样死扣内存、指针。这样在第一学期就可以让学生们接触到面向对象、函数式等思想。
29. 面向对象,语法优雅
30. python的一些基础语法比c要简单一些,python虽然性能比c要差一点,但是实现同一个东西,更高效
31. C语言面向过程,有利于培养新生的计算机思维,还有学习基本的语法规范、 python对程序员的约束较少,易于上手,有利于帮助本科生建立自信
32. 很明显的Python与C语言有本质上的区别,而且,我认为Python的语法和面向对象的设计能够使新生快速地入门编程,而且,对于C语言,Python的特性很适合做数学上的应用,因此,在大学一年级的时候就可以利用Python方便快捷地解决问题。
33. 对于没有基础的本科生来说,感觉python 更简洁、容易上手,自带很多方便的函数可以直接使用、快速度入门、急速做出东西,对于新生来说也容易产生成就感。C是肯定要学的,但是感觉偏底层,细节太多,相比入门学来说我还是偏向python吧
34. 相比来说python语法结构比C要简单一些,更容易让初学者对编码有认识,C相对而言较难上手
35. python的语法比C语言的简单,更适合初学者入门,很容易掌握,也更容易理解
36. c语言对类型要求太多,并且会有内存管理这种容易打击编程新手的东西,相反,Python更能激起新手的编程欲
37. C语言比起python随便便利度不高,但是对于新手来说,了解程序编译原理这块用C效果更好,C学好了对于其他编译工具的使用就没那么难了
38. C语言在语法方面更好理解 ,而且我觉得以C语言为入门,更方便其他语言的学习。而python的很多东西都有,不需要我们自己去写。不利用锻炼编程思想
39. 之所以选C语言,我觉得还是要把一些最基本的概念搞清楚,比如int,float,数组,链表等,python感觉对有经验的同学来学比较好。
40. Python, 是一种方便使用为目地设计的语言, 语法都比较高级, 所以相对Java 和 C 都慢. C, 面向过程语言, 相对比较低级, 需要处理指针, 比较难学, 但是基础, 强大.
41. python 的语法规则过于简单,并且相对于c语言却少了指针,且目前来说广泛作为入门的语言也是c语言。作为入门级语言应该具有较为严格的语法规则,这样在以后学习别的语言时可能会感到较为轻松。另外指针的掌握和理解对编程也具有长远的影响
42. python代码简洁
43. python比较自由,但是初学者还是要先学一些规范的东西~
44. 不太清楚
45. C语言的逻辑是与电脑相似的,Python更接近人的自然语言。但是python忽略了很多机器语言的特点,太过简化,个人觉得会使初学者缺少编程思维
46. python较c要简单不少
47. 简单
48. python是一种脚本语言,它的运行需要python解释器,属于解释型的语言,python本身就是由C语言开发出来的,而且是开源的,由此可见C语言的强大,美国宇航局使用的就是python;C语言属于中级语言,它介于高级和低级语言之间,C是编译型的语言,它的运行必须经过编译器的处理才能形成最终的执行代码,C语言的应该非常广泛,C语言最主要的用途就是系统底层的应用。
49. 首先我个人认为python确是比c要简单许多,但是我感觉他们之间的语法差别蛮大,如果先学python的话,后面在学习c等语言,我个人认为有点困难,但是先学Python,有个好处,我认为可以快速掌握简单编程(可能是因为学过了c,才有这种感觉)
50. 我的第一门语言是C。Python缩进表作用域,以及Python的函数式编程
51. 各有优缺点
52. c更能体现出内存的一些问题,能更深理解

 

Coursemology相关问题
 

1) Essay

Coursemology给你的最深印象是什么?

1.  评论与论坛、等级排名、作业奖励、在线测试。 1.评论与论坛。评论便于我们与老师 之间的交流,有问题可以随时交流。论坛则是方便学生之间的交流。、 2.作业大部分练习都是可以在线测试的,这样方便我们了解自己的思路(方法)是否正确,在做作业时提高对知识的理解程度。 3.作业奖励和等级排名。这两个方便我们了解其他同学作业的动态,了解自己作业完成在班级中的情况,激励我们去完成作业。
2. 课程的平台。用经验等级等来促进同学的学习。激励鼓励同学之间相互竞争。十分有趣
3. 富有趣味性,和玩游戏一样
4. 在游戏中学习python
5. 很棒
6. 在你没有完成一道题的时候,不能够去想着我看一下下一道题是不是能够做的。让我们能够脚踏实地的完成任务。
7. 用起来很方便,也可以在这上面探讨不会的问题
8. 神奇的mission,充足的练习
9. mission有点难,但是这样一个特殊的形式,极大程度调动学生的积极性,十分值得借鉴
10. 激发了大家的竞争性。
11. 当然是刷题,大家互相竞争,以及一些游戏般的programming
12. 题特别多,刷题的人很学霸。。
13. 各种各样非常有趣的Mission,真的是在游戏中学习。
14. Trainings:永远做不完 Missions:永远不会做 Leaderboard:永远上不去
15. 冲榜、和一些选择题后面的解释
16. 助教打分与自动评分相结合
17. 简洁、优雅的界面;齐全的功能;
18. 课程内容丰富
19. 排行榜
20. 刷题刷题刷题,重要的事说三遍
21. 有经验积累和等级提升机制,类似于角色扮演类游戏
22. 有意思,各方面的内容很全面
23. 界面简洁、功能强大、
24. 界面好看、形式新颖、痛并快乐着(笑)
25. 是对每道题的错误检查及错误可看机制
26. 任务很多呀,但是coursemology上刷题也很爽呀,很有帮助
27. 网站做的很出色!
28. 很好的一个教学平台,老师和学生的互动也很方便,有利于交流
29. 界面很好看,功能很强大,性能稳定
30. 作业好多,不过提升很大
31. 作业好多好多,做不完
32. 升级和经验获取的模式
33. 老师很棒
34. 很有动力,让人很积极,全情投入
35. 游戏形式的学习模式
36. 好多好多的作业。。。
37. 十分好用。 在线题目多种多样,经验机制很好。
38. 互动性强
39. 好
40. 只有不停的刷题,你的名字才会出现在排行榜上。 无论怎们做,题永远写不完,而且对于我这种技术渣来说确实有点难
41. 题很多,新作业提醒的邮件很多,后来就被自动归类到垃圾箱了
42. 前面的同学刷经验太厉害了!
43. Coursemology的运行令我感觉很流畅,维护工作应该很好,平台使用、功能设计和显示状态都有种恰到好处的感觉。
44. Leaderboard按照经验和等级的排名。
45. 排行榜这一功能
46. 后台题目检测功能强大。
47. 排行榜和写不完的extra。
48. 学习资料很容易找到,方便师生间的交流
49. 功能强大,有论坛,有资料库,还行在线刷题
50. 题目很多,而且难度梯度设置很合理 网站很漂亮,比cc网站好多了
51. 作业多
52. 很简洁直观,功能挺全

 

2) Essay

请谈谈你对Coursemology这种游戏形式教学的感想

1.  这种游戏式教学,可以让我们了解自己的动态与他人的动态,提高学习的兴趣。同时,做完一个练习就会立即得到分数(除了部分作业),这样做完立即就有收获会提高学习的积极性。

2. 嗯。很好的平台。能够激励同学学习,课后完成练习。就是程序有问题,隐藏的测试用例没有通过。有些不会显示出来。自己找问题要找很久。 
3. 可以很好地激发学习兴趣
4. 调动大家的积极性,转压力为动力
5. 题目有些简单可以适当增加难度大的题目,难度递增,不是什么都是按着社会主义的维稳走就是好的。
6. 好玩呗。吸引你去spend a lot of time on it。。。
7. 巧妙利用学生的攀比的思维,激发学生的学习动力,感觉很好
8. 这种游戏形式是很能够提高我们对于完成作业和学习的积极性的。
9. 很受用,形式能够被我接受,让我乐意去学习
10. 很好
11. 很有趣味
12. 很不错啊 ,挺希望每个课程都这样的形式
13. 很喜欢,很有意思,减少了单调编程的枯燥
14. 会潜意识的想要升级,做完题升级会有成就感
15. 能很好调动学生学习主动性
16. 非常棒,虽然作业非常多,但是每次做完都能得到作为奖励的经验值,那种感觉非常棒。
17. 很好,能激发大家的积极性。
18. 还不错
19. 好
20. 容易上瘾、导致一天不刷题就感觉饿不舒服,竞争意识非常明显,好不容易到了Leader board 前列,然后睡了一觉,第二天就落榜了,我觉这个方式很大程度上刺激了同学们的积极性,另一面这个Coursemology有很大的可适应性,即是可以根据现实的教学进度进行调整,更加容易实现因材施教,循序渐进的教学模式。
21. 非常、非常、非常喜欢。以前看过知乎一篇帖子说为什么不能让学生对游戏的上瘾转移成对学习的上瘾,那么Coursemology就办到啦~激发积极性和竞争性都很棒,不过就是刷题好累(笑) 还是那句话,痛并快乐着咯
22. 被动强行刷题:)
23.  我觉得可以将optional的比重放多一些,目前的比重无法吸引较多学生去做题
24. 这种形式对我们很有促进作用,平时作业都是拖着慢慢写,但是这种游戏形式的升级,就会激励我们尽快完成作业
25. 可以刺激学生去刷题学习,很好的模式
26. 游戏的想法很好,很激励学生学习。但是我觉得它还可以改进一些。比如我们的排名一般就只看得经验排等级,这对排名可以上前30的人很激励。但是对像我们这样基础比较弱的就没太大用处。所以我建议排行榜采用多元化的方式来排。比如某次作业完成得很好的学生
27. 虽说是游戏,但是实际上一点没有游戏的上瘾感和沉浸感,游戏之所以吸引人是在与其即时的正向反馈,Coursemology并不能做到这一点
28. 竞争很激烈呀,每天熬夜刷题
29. 很好的鼓励了学生,激励同学们去刷题
30. 很好
31. 很能激励人,而且方便大家交流,应该大面积推广
32. Coursemology感觉和其他OJ差不多,不过题目都非常有趣。
33. 我认为是一种类强迫式,因为你得不停的写题,既然是游戏形式,说实话,当等级上升时,确是有快感,所以就会一直做题,我认为有一个不好就是,如果你这道题不会写,那么你就写不了下面的题了。
34. 个人觉得很好,甚至觉得如果所有课程都这样教学的话会更好。我觉得本科期间很多人都没有找到从自己内心出发的动力,还需要一些外力的强迫去学习成长,去发现自己适合的方向。所以在这种时候,一个有趣、有竞争的教学平台就挺重要的。这个平台比OJ好,比OJ的题目简单,而且更加基础,能在做题中带来更多的成就感。排行榜也是一样,相比OJ,能给人一种努力就能上榜的感觉。。。所以其实这种游戏形式教学是非常好的,能从外部激发学生的动力。
35. 感觉对于大部分同学来讲那个排行榜模式还是很有激励作用的,虽然压力有点大,但是很棒啊!
36. 作业等级系统对学生有很强的激励效果
37. 额。。。其实不能叫游戏,真想做游戏性的话可以想办法提高一下游戏性 但是确实比传统的作业要舒服很多,题目也不少,能得到很多锻炼
38. 有动力,有成就感,有竞争
39. 我认为Coursemology的教学形式很不错,题目设计和题干都很有趣,让我接触了不少除了编程之外的事物,激励和竞争式的学习过程可能对促进学生学习动力很有效果。但是就我个人而言,由于英语、作业量、题目难度的原因,很多时候已经无暇顾及其中部分细节和题外话的描述,把一些具有游戏性质的事情忽略掉了,与练习刷题并无二致,比起游戏形式,我可能更关注问题的解决模式,另外,最重要的部分可能在于题目的设计创意上具有新意,这是我最大的感触
40. 可以激发同学们学习的积极性
41. 能提高学生学习兴趣
42. 对学习知识很有帮助,让我们对理论知识真正做到实践
43. 每完成一个Mission或Training都有相应的exp,做作业有动力.... 实现2048和hungry game也比较有趣
44. 攒经验升级和集成就能激发很多同学进行挑战自主学习,但是并不适用于所有同学。
45. 对于上了leaderboard的人来说,清楚地知道前面还有谁,渴望一步步去超越,越战越勇 而对于剩下的人来说,感觉生无可恋,会越来越没有动力 不过总体感觉这种教学会比平时的教学方式来得更有效率
46. 个人觉得很好,而且对于比如2048之类,选题熟悉又有一定吸引力,而且把大问题拆解,有益于循序渐进也无形中培养了大家分析和拆分问题的能力。
47. 我觉得很好 激发了做题的兴趣
48. 很棒,激发了我们的学习兴趣,虽然为了经验而刷题的动机不纯,但我还是很享受获得经验奖励那一刻的欣喜。
49. 激发了学生学习的热情
50. 很好
51. 比较适合于有竞争力的团体,好胜心决定一切
52. 非常棒,同学们都在刷题攒经验升级,一不小心就要掉下来

 

课程相关问题
 

1) Multiple Choice

对于本次课程的英语授课理解程度如何?

Response

Percentage

完全能听懂

7
(13.5%)

可以听懂绝大部分

36
(69.2%)

只能听懂很少部分

9
(17.3%)

几乎听不懂

0
(0%)

 

2) Multiple Choice

你觉得本次课程难易程度如何?

Response

Percentage

很难

1
(1.9%)

24
(46.2%)

适中

25
(48.1%)

简单

2
(3.8%)

很简单

0
(0%)

 

3) Multiple Choice

你对本次课程作业量的看法

Response

Percentage

很多

14
(29.6%)

30
(57.7%)

适中

7
(13.5%)

1
(1.9%)

很少

0
(0%)

 

4) Essay

你对本次授课的内容(即课程涵盖的知识点等)有什么意见和建议?(请分条陈述)

1.  DP, OOP 学习的东西比较基础,可以适当加深(或者自学加深。。。)

2. 涉及算法的地方比较多吧。递归涉及到很多地方,希望能够把这个比例降低。 8天时间,能讲这些内容已经算很多了。但还是觉得时间太短,只是对python有了简单的了解 希望做了的mission能够有一个示例程序供我们参考
3.可以讲一讲编译时常见的错误及原因,有利于提高效率
4.可以增加对文件的操作
5. 过于注重数据抽象、惰性计算等编程语言方面的知识,建议适当增加对Python丰富庞大的第三方库的介绍和简介。丰富的第三方库是Python最重要的优点。
6. 基础内容较为合适。算法方面可以深入一些,贪心之类的算法,也包括BFS、DFS。OOP方面可以更加详细讲一下三大特性。
7. 1 )基本覆盖了python的基础知识 2) 可以在基础知识的基础上,增加python的应用功能,如网络爬虫,数据挖掘之类的
8. 1.这门课讲了很多的有关python的知识,我觉得应该在最后能够提一下python的应用方面的优势和劣势,以及我们应该判断是使用python还是其他语言来解决问题。 2.在课程上编写程序,让我们切生体会到了应该如何解决一个问题。如果这类机会更多就更好了。
9. 涵盖的知识点很丰富,没有什么建议
10. 1.感觉学得太多了,需要之前很多的编程基础 2.进度太快了,有一些基础差的同学完不成作业
11. 前几天的语言基础其实我觉得可以不用在课堂上讲,基本叫同学们看看像http://www.runoob.com/python3/python3-tutorial.html这样的网站就好了。
12. 老师讲的还是很好的,但毕竟英文授课,有些东西还是感觉很难听懂
13. 1.我觉得可以讲一些算法的问题。 2.可以选一节课来专门讲一些有趣的题的想法和思路。 3.讲讲爬虫之类的? 4.其实上面的想法都是在课程时间够多的情况下,目前的课程时间太少,所以现在的大框架我觉得挺好的。
14. 希望可以增加些算法基础~
15. 1.课程内容较多,最后几天讲课很快 2.建议下午的课程也抽一些时间来讲课
16. 1. 可以多讲一点python和java c之间的关联和对比,深入对比下,python有什么神奇的功能 2. 其实感觉讲解还不是很到能让人听懂,主要还是靠课后练习
17. 可以增加更多的算法方面内容
18. 1.课程授课内容着重在于编程的思想、技巧上面,对语言本身的特性运用上可能较少 2.讲解了有限部分的语法和语义知识,但是一些python的内建函数和很多其他知识没有讲授需要自己掌握 3.希望能够讲授一些除算法思想之外的编程技巧,在数据抽象和面向对象内容上更深入一些
19. 再多介绍一些编程算法的知识
20. 多涉及一些其他方面的知识
21. 适当加大课时,介绍一些Python常用的高级功能和标准库函数。
22. 很难在高强度的期末复习(预习)后快速适应这样的教学。 一门课一旦使用英文教学,学习情况就和上课无关了。
23. 课程涵盖的知识点较为全面,时间安排合理,没有什么意见
24. 老师可以增加python与其他语言都不同的地方
25. 基本的知识比较多,但是觉得重点的知识太过抽象化,因此我觉得在时间充足的情况下可以更加详细地阐述。 2.OOP的训练题目过于简单,虽然不是考察设计模式,但是我觉得还是可以在大一的该课程中加入该方面的知识
26. memoize和dp放最后感觉好仓促!现在还有点迷糊,如果还能再一次的话希望多巩固几遍吧
27. 我觉得本次课程最主要的问题是题目和老师上课说的知识点不一定全部吻合,但不吻合部分的知识点在网上有点难找,所以希望能有可参考的资料
28. 1.建议ben老师还是用英文讲课 2.感觉知识点还是涵盖的很全面了,就是感觉语法讲得比较少,老师更注重的是算法 2.所以建议老师以后可以多讲一点语法方面的内容
29. 我希望能更多的讲解一些Python作为一个脚本语言的东西,比如爬虫
30. 没有多的改善意见,授课内容和方式都很好,比起以往接触的老师要好
31. 这个课程基础语法还是比较多,对于大二的同学还是不太适合。可以适当减少基础语法。多讲一些高级编程。比如像动态编程
32. 时间较短,讲了一些算法解决问题的思路,还没有其他的意见
33. 想学习用python写爬虫或者脚本
34. 课程内容包含较为全面的python知识点,一些小的点在 trainings 以及 mission中也可以学到。很棒!
35. 很棒
36. 基础不太好,没什么意见,觉得老师很棒
37. 觉得挺好
38. 这是我第一次接触python,感觉已经很棒了
39. 作业中重复内容太多
40. 好
41. 意见:过得太快,有点糊里糊涂
42. 基本上感觉良好。可能在讲有些代码较长,分了好几页ppt的问题的时候,会有的茫然。
43. 我觉得正好,不多也不少,多了的话真的没时间写作业,我觉得布置的作业很契合lecture内容,很好
44. 1、这几天的内容可以压缩一下,在第一周内讲完; 2、剩余的时间可以增加机器学习、数据分析、图形化等方面的知识; 3、有些时候过于关注于算法了
45. 作业量能少一点就好了
46. 感觉讲python语法的比较少一点,用大量的时间去复习C语言的基础知识,包括递归一类。

 

上机考试相关问题
 
1) Multiple Choice

你觉得上机考试的题量如何?

Response

Percentage

很多

2
(3.8%)

13
(25.0%)

适中

36
(69.2%)

1
(1.9%)

很少

0
(0%)

 

2) Multiple Choice

你觉得上机考试的难度如何?

Response

Percentage

很难

7
(13.5%)

30
(57.7%)

适中

14
(26.9%)

简单

1
(1.9%)

很简单

0
(0%)

 

3) Essay

你对上机考试有没有什么意见或者建议? (请分条陈述)

1.  题量减少或者题的难度降低(或者难易分布均衡)

2. 希望题量多一点,把分值分散一点。不然一道题不会就会丢很多分。 还有就是阅读量不要太大。
3. 试题的图片和文字的布局可以作调整,方便对照查看
4. 无(出的题目非常Funny)
5. 可以把题目设置的更加散一点,就是说,像mission一样去一个个函数一个个模块的引导。
6. 1)题目较难 2)班上只有很少的人之前接触过OJ,绝大多数人的是没有接触过的
7. 上机考试时如果能够使用自己的电脑就更好了,机房的电脑在使用上有很多的问题。
8. 还好
9. 1.我觉得可以出更多题考更长时间,这样比较好划分懂与不懂的范围。 2.可以来点选做,因为有些题目一旦想不通,就基本写不出来,选做考同一个知识点但是有更多选择,指不定这题没灵感另一题就有灵感了。
10.. 希望可以以难度递增的顺序命题
11. 好难,感觉时间不够
12. 1.希望能够使用高级一点的ide 2.希望能上网查api 但禁止使用通讯工具
13. 考试难度可能是适中,只是对我有点难了!
14. 可以多一些题目,这样在一道题卡住时不至于没有事做...
15. 题目较难,希望能够和平时作业一样有部分思路提示
16. 时间再长一些
17. 换个好用点的IDE
18. 时间变为3小时,2小时真的很短。
19. 不能用其他编辑器...
20. 可以考虑预先在学生机上安装翻译程序
21. 1.鉴于题目难度的分级,可能只能筛选出学得特别好的学生,大概不易产生正态分布的成绩线。 2.但是题目本身是很好的
22. 时间有点紧张了
23. 我觉得考试题目出得很好,做不出来是我们学艺不精,没什么建议。
24. 不得不说如果能想到正确思路的话会做得快,否则会卡死在题目上
25. 最好能用自己的电脑
26. 大篇幅的题目太长,理解上有问题,还涉及很多没看过的电影
27. 难度偏难,如果是作为趣味题,占分数比重需要降低
28. 第三题题目好长还是英文,读完题就差不多了
29. 题目长,需要的读题时间比较长
30. 除了题太难没什么建议感觉题挺好的只是自己学得不好不太会做而已 不过能学到东西啦 难就难吧
31. 上机考题目难度较大
32. 1.试题难度跨度太大,可以适当简单些 2.问题描述太多了,主要是英文的,题目太长,读题很困难
33. 一天考完,分两天考很累:)
34. 1.上机的题目比起往年好像难了一些,题量也大了,希望少一些 2.题目很新颖,有助于学生的思维培养,希望以后出题也可以很新颖
35. 1.机考题的难度成两极化,要么很难,要么很简单。提的难度可适当调节 2.由于机考时间较短,题目的意思应该很在较短时间内理解 3.机考时间可以增长,3个小时比较适合
36. 就这样吧,还行了
37. 题目。。。有点难。。。而且,难易程度差距大。。。。想不出来是真的想不出来T_T
38. 老师和助教都很用心,当时考试是没觉得有什么问题~
39. 题量可适当增多,难度降低,覆盖更多的知识点
40. 编译器不好用
41. 好

 

考试相关问题
 
1) Multiple Choice

你觉得试卷的试题量如何?

Response

Percentage

很多

14
(26.9%)

27
(51.9%)

适中

11
(21.2%)

0
(0%)

很少

0
(0%)

 

2) Multiple Choice

你觉得试题的难度如何?

Response

Percentage

很难

2
(3.8%)

20
(38.5%)

适中

27
(51.9%)

简单

3
(5.8%)

很简单

0
(0%)

 

3) Essay

你对试卷及期末考试有什么意见或建议?(请分条陈述)

1.  题量减少

2. 希望试卷的阅读量不要太大。毕竟是英文。这次的试卷的阅读量就比较合适
3. 1.知识点覆盖还可以更全 2.综合分析题一道足矣
4. 增加难度,减少题量。有些题目可以合并,去掉基础部分。
5. 题量稍有点大。有些空格给的有点小了。毕竟每个人实现代码的方式不同。
6. 继续保持这种难度和题量吧。。
7. 1.这次试卷让我学会了学习应该是立即去学习,而不是一直拖,如果你不解决那个问题,那么那个问题会一直困扰你的。 2.试卷的题量有点大,虽然很多的思想或者题都是讲过或者做过的,但是如果没有提前做过的话,题量就会很大,很可能是完成不了的。
8. 适当降低难度
9. 精简题量
10. 时间不够呀
11. 有些题格子太小了(可能我代码写得不优雅)
12. 1.可以适量有几个填空题。 2.可以有附加题。 3.感觉知识点没有涵盖完【这次好像没考面向对象】。
13. 题量比较大,感觉时间不够
14. 可以稍微少一点题目
15. 题量是真的大啊!老师没骗我
16. 手写的代码其实可以上机写
17. 1.可以感受到考试中的题目部分是平时故意遗留的一些知识点,如果自己没有机会掌握到,那么考试中可能无法准确判断,确实有考试中学习之意在其中 2.试题量比较多,因为是手写可能会影响思路和速度,可以增加一些填空或者选择的题目类型减少书写量
18. 时间再长一些
19. 试卷题目较多,可适当减少
20. 题太多了。
21. 题目好多
22. 不理解为什么要讲机考和笔试分开,明明内容都差不多。 是在考算法还是在考python?
23. 题目有点多
24. 1、笔试有点简单了 2、试题量正好,但是印了二十页真的太吓人了
25. 机考比笔试难,希望能平衡一下
26. 题量有点略多,做完很困难,但是大部分都是平时练习的东西
27. 1. 题量较大,且手写代码,对于初学者的我们,可能会有较多的语法错误,助教和老师应注重代码的逻辑而非正确与否,酌情打分
28. 题量对我来说有些大
29. 期末的笔试考题应该比较基础,但是题目计较多、
30. 期末试卷体谅有点多。。。不是很容易完成
31. 我觉得期末考试的题量太多了,几乎都没有思考的时间,建议下次可以减少些题量
32. 一天考完,分两天考很累:)
33. 1.期末的题量很大,可以稍微少一点点 2.题目都是代码题,也可以出一些选择题
34. 题量可适当减少
35. 20页的题呢,要是平时上课掌握的好,应该很快能做完
36. 题目难度适中,题量也还好。稍微有点多,第一次做的话会做不完。
37. 还好
38. 还好吧,很能够反映大家的学习情况
39. 可以稍微简单点
40. 题目太多...可适当减少题量
41. 好
42. 挺好的,题目很有趣,而且考察也很全面

 

意见和建议
 

1) Essay

如果明年我们再次举办这个课程,你对明年的课程有什么建议,或者说如何让明年的课程效果更好?(请分条陈述)

1. 授课时间加长,例如一天6节课等

2. 总体很好,但希望option的分值可以适当调高一点。可以激励同学做option。
3. 可以建个qq群之类的东西,方便交流(虽然课程网站有类似的功能,但感觉还是差点什么)
4. 已经非常好了,可惜时间太短
5. 作业量稍微有点多,压榨了睡眠时间。
6. 可以多进行算法上的指导。毕竟好多算法题在training里面。
7. 学分可以增加。这门课只有2学分,相比工作量来说有点少
8. 1.这课的实践环节我觉得可以申请更多的时间,我觉得实践能够更好的学习一门语言; 2.时间跨度有点大,我觉得最后的考试可以一起考了,而不是分开考。
9. 保持这样就好
10. 减少一点题量
11. 希望给一个词汇表,这样做题快一些
12. 作业可以留再多一点(笑)
13. 还是希望采取这种方法,早上授课,下午做题
14. 1.extra的经验提升。 2.我觉得把Hard类型的题放在最后吧,好多人就是点进去然后就坑在里面了。 3.可以来点隐藏题目、隐藏任务之类的? 4.提高成就的个数。 5.上课还是用中文吧,我英语不太好每次都是看PPT联想的。。。
15. 我觉得,如果可以,希望能增加算法方面的内容
16. 增加课程时间
17. 1.多一点有意思的题目 2.对于难一点的题目在一定时间后给出适当提示
18. 这门课程真的能让学生学到东西!不过真的作业太多啦,一天从早是做到晚,对于一个算法渣来说太难了。
19.  从内容来看,笔试可以和上机合并...
20. 1.课程时间可以更紧凑些,可以整个上午或者整个下午上课,或者将课程内容适当减少,对某一点更深入精化 2.可以在作业中增加一些课堂上没有讲授的知识内容,促进课下自行掌握学习
21. 增加让学生上黑板做题的环节,提高参与度
22. 作业适当减少
23. 适当加长课时,适当讲解python的一些应用场景。
24. 这门课不应该只有两个学分T T
25. 挺好的
26. 手动给分的项目提前统一标准
27. 我觉得挺好的,希望老师在下午的半节课能对论坛上的问题做解答
28. 增加一点阅读材料,就像 Mission01 后面关于 Stereogram 叙述的资料,有利于拓宽我们的视野。
29. 希望能照顾一下基础不是很好的学生
30. 改成3个学分的课
31. 我只想说,作业太多,虽然也学到了很多,可不可以加学分呀,强度都抵上6个学分的课了
32. 系统可以调整一下课程安排,Python课程是安排了上午1,2小节和下午5,6小节,造成了学生们极大的不便,要么就干脆安排到早上,要么就安排到下午
33. 老师可以减少一些作业,将课下的思考内容作为作业布置,这样能保证在下节课讲之前,同学都是思考过得
34. 1.首先我觉得上课的时间只有1/3,而课后写作业的时间则是2/3,因此我觉得这个课的节奏比较紧,可是调节一下 2.我觉得实践环节上的有些题目比较难,但是EXP比较少,所以一定程度上减少了部分同学的做题意愿 3.明年再开这个课的时候,希望存在代码检查机制,因此我相信有一部分人的成果不是自己的劳动所得,这很不公平
35. 1.作业量可以适当的少些,感觉助教和学生都很辛苦。。 2.建议ben 老师还是用英文教课呀,这样还可以趁机练习一下英语听力,哈哈
36. 1.可以适当减少算法的教学 2.讲解一些python的网络课程
37. 感觉这个课已经很好了,对于学生的思维锻炼很不错,希望将下午的课程当作实验课,出一些题在课堂上做,然后讲解会更好,课后的题减一些
38. 在Training提交答案后通过后,可马上给出正确答案,方便学生及时比较自己的代码
39. 我感觉做的很好了,继续保持,作业继续多。这样才有提高的压力
40. 基础课程压缩,主要讲应用而不是算法相关 可以加入爬虫的学校
41. 嗯。没有。课程已经做的很棒!
42. 很不错
43. 希望能有更多的人可以学这门课,真的很棒!
44. 觉得已经很好了
45. 题量减少一点。。。
46. 作业的重复度太高,让学生没有兴趣做剩余的相似的题
47. 多布置作业

 

2) Essay

其它建议或者补充?(如果之前的问题没有涵盖你想说的)

1.  课时,学分适当增加

2. 希望可以有一个分组。然后用python做自己想做的项目。由老师和助教提供帮助。项目也有经验值,最后进行展示,打分。
3. Coursemology在save的时候,如果代码已经编译通过test,应该保存已经通过的状态,再次编辑提交时就不用再Run
4. 课程网站的细节部分,比如移动端
5. 我觉得助教的工作任务挺重的,所以如果有一种方式来减轻一下助教的工作量就更好了
6. 1.网站的日期好像有问题?那个题目开放时间和截止时间好像不是一个格式的。 2.我觉得其实题目多是没有坏处的。。。
7. 希望老师多讲一点python和java c的联系和对比
8. 希望得到一些相关且有效的书籍材料或网站资源推荐,或者扩展学习范围的门径
9. 一些mission 或者extra的测试用例不够测出所有错误
10. 测试用例方面,有的题目需要增强。
11. 每次的 Recitation 有些累赘了,那些问题作业中都会遇到,大家都没怎么认真听。能换成习题讲解就更好了。 另外,Forums 中活跃度不够,我们还是更习惯自己解决问题。
12. 同上
13. 还是觉得强度有点大,压力很大
14. 我认为如果按照这种教学方式是不太适合大一的新生的,因为基本的语法讲得比较少,因此在这方面的可以改进一下,其实更加注重算法设计和编程思想。但是我觉得这门课的好好处则是在于虽然是比较难,但一定程度上能够激发学生的潜能。
15. 其他都还好吧,没有什么别的建议了
16. 我想学爬虫!
17. 希望Ben老师以后都能来~
18. 排行榜的范围可以再扩大一点,或者让每个学生知道自己的名次
19. 非常好

 

最终评分
 
1) Multiple Choice

本次课程的总体效果如何,请就总体效果给出一个最终的分数。

Response

Percentage

5分(很好)

43
(82.7%)

4分(好)

8
 (15.4%)

3分(一般)

1
(1.9%)

2分(差)

0
(0%)

1分(很差)

0
(0%)

 

2) Essay

请谈谈你学完本课程后的收获。(分条列举)

1. 1.Python的基础知识以及编程中的一些方法:递归、DP、OOP 2.一些code时的思想,优雅的简练的code
2. 对python有了初步认识。 认识到自己还有很多不足。(算法) 了解到国外学生的大学是怎样学习的。 能够基本运用python处理一些问题
3. 1.熟悉递归 2.掌握python的基本语法和用法 3.提高了英语听力 4.新的朋友
4. 1.学习了python的使用 2.增强了数据结构的掌握 3.自律
5. 1、对于泛函概念的讲解非常到位,这是我第一次真正理解泛函的作用; 2、递归的讲解非常详尽而且易懂,虽然作为OJ出生的学生,递归已经熟透了,但是仍然感觉收获了新的知识。
6. 最重要的是刷题的快乐,沉迷学习的快乐。 然后是学了Python。学编程多年,了解多好多语言,从来没有这么密集编程去学习新的语言。 这门课是大学以来最棒的一门课了!感谢Ben老师,TA哥哥姐姐们,还有一起玩耍的小伙伴。
7. 1 ) 锻炼了之前自己没有良好掌握的函数递归 2) 学习了lambda 表达式的用法 3 ) 了解了函数式编程的方法
8. 1.学习到了很多有关python的知识; 2.以血的教训知道了有问题和不足就应该立即解决,如果你不去解决,那么这个问题就会一直困扰你,然后让你一直在那个问题上跌倒; 3.通过Ben老师的最后讲解,我认识到了学习应该不是任务,而应该是一种体验和享受的过程。如果换一种态度去面对学习,那么能够体验到更多和真正的掌握更多以前掌握不到的东西。
9. 提升了编程能力
10. 学习到了Python的一些基础知识,编程方面更加熟练了
11. 了解了python,学习了python 的基本语法和思想
12. 体验到了网络学习的好处 同时体验了快速学习,在短时间内让自己学完一些东西 交了很多朋友
13. 1.外国的教学方式,特别是Mission这种作业内容非常的有趣 2.不只是学python这种语言,还学了一些优雅的编程方式 3.做AI作业看了一些alpha-beta剪枝之类的算法。 Thank you very much
14. 1.最起码的Python的语法问题基本掌握 2.因为做了很多题,编程技术提高了 3.对于动态规划等,即最后几节课讲的感觉比较深,有些还不是很了解
15. 1.对Python有了非常大的好感。 2.感觉每天都很充实,因为作业多,所以感觉也学到了很多,而且还动手去实践了。 3.学到了一些不得了的人生哲学,对以后的方向也有了一点自己的思考。
16. 最大的收获应该就是激发了学习的新动力了吧,毕竟看到了自己和新国大学生平时的差距
17. 课程很充实,这两周收获很多,了解了一些python基础
18. 1.函数式编程的概念 2.算法,之前试过刷oj,但是门槛太高,一直没入门,这次python课让我入门了,感觉很棒
19. 最印象深刻的是wishful thinking
20. 1. 学习python 2. 动态规划 3. 记忆化搜索 4. 一些基本算法思想 5. 发现了自己合适的工作量
21. 1.学习到了python语言的部分内容,编写一些简单程序 2.对迭代、递归了解更深入,运用更熟练,熟悉了解决计算问题的基本方法 3.对编程效率和编写简洁代码有了一定认识理解,设计程序时可以更加注重运算效率,更注重代码的简洁有效性
22. 1.学习了python语言 2.学到了一些编程的知识,如动态规划、抽象等 3.学到了脸皮要厚的原则 4.大部分人只能做到潜能的50%,要更加努力。
23. 对python有一个清晰的基本的了解,可以灵活的应用Python解决一些问题。
24. 1.python零基础到能够使用它完成各种任务 2.学到了像dynamic programming等等以前不知道的方法
25. 多学算法,语言只是工具。
26. 1)了解了国外教学方式 2)英语 3)leaderboard梦回高中,看到了和其他同学的差距 4)老师很好,Python很好
27. 1.对于简单的算法更熟悉,有点难度的算法比如动态规划有了更多了解; 2.大一的面向对象课程学得糟糕,这次对oop也有了更多认识和练习; 3.课程的整体大氛围很好,自己也难得这么努力地学习,觉得很充实; 4.认识了老师和助教这些优秀的前辈; 5.学习英语
28. 我觉得ben老师和强哥还有其他助教自身都很有人格魅力,让我知道了又聪明又努力的人是怎样的,studying and programming is life-long
29. 1、感受了一下 Ben 老师的教学艺术 2、见识了 Coursemology 这么优秀的产品 3、提高了对 Python 的应用能力
30. 1、提升了自己的编码水平 2、激发了我对编程的兴趣
31. 高阶函数和动态规划以及一些编程思想
32. 勤奋刻苦,只要你努力,没有你做不到的事情 一些正能量,坚持理想梦想 学习到了python,虽然这个算是最不重要的
33. 1. 明白了Python的基本语法 2. 了解Python与其他语言的不同之处 3. 在算法逻辑方面,学会了更为精简的操作方法 4. 懂得了利用DP和Memorization来提升递归算法的效率
34. 1.更深地体会了一些编程概念:抽象,封装 2.了解了python的一些基本语法 3.加深了递归方法的理解
35. 1.体验了NUS的教育模式,感觉很刺激 2. 2周速成Python,应该算是做到了,但是不能算是精通Python 3.Ben老师的鸡汤也喝了,除了知识,也坚定了自己的目标。 4.最后收获最大的,还是有一个新的认识学习最重要的是享受过程而不是受为最终的成绩而煎熬。
36. Python的收获就不细说了,收获挺大的,简单列2个: 1.加深巩固的应该是OOP和递归,学完后算是弄得更加清楚了 2.了解到的完全的新东西是memoize和dp,机考和笔试也考了很多(虽然还是有点迷糊) 3.很高兴能认识Ben和强哥,还能一起吃饭,然后,最后一节课的鸡汤很好喝!(笑)
37. 让我重振旗鼓再次感受到了系统学习编程的感觉,而不是像往常那样散漫
38. 1.对编程有了一个新的认识,学习了很多的编程思想 2.觉得自己平时还不够努力呀,以后还得加油! 3.感觉ben老师很有人格魅力呀,就像那句话:人生不只有眼前的苟且,还有诗和远方
39. 这是一份非常充实的课程!没有之一!
40. 1.学到以前没接触过的算法 2.思维更加活跃了 3.激起了编程的热情
41. 1.python的基础语法 2.python动态编程,以及对递归的一些优化 3.懂的了对敲代码,真的对编程语言的理解很有帮助
42. 1,学习能力提高 2,解决问题的能力提高 3,学了一些python基础
43. 1.ben老师讲的python简单易懂,课后联系难度适宜,很好的入门了python。 2.本老师临别所说,每个人的潜力都很大,努力去实现自己的潜力
44. 优雅的编码习惯
45. 对于我这种基础差的人来说,几乎让我爱上了编程
46. 激发了我对python的兴趣 对python的学习打下了一定基础 在代码编写的思想上有一定提高
47. 1.至少python入门了,python与我以前学的C,C++,JAVA这些区别很大,感触很大。 2.感觉Python更适合做快速开发,它让我们可以忽视很多语法上的问题,更专注于逻辑,更专注于问题的解决。以后会尝试用python进行一些实际项目开发 3.这次课与以往川大的课很不一样,让我们感受到了国际化的教学方式,知道了国外的大学生是怎么学的,知道了自己与国外学生的差距,所以还需加倍努力。
48. 初步掌握了python。
49. Python很好玩
50. 收获良多
51. 学习了python的高级用法

Last updated $Date: 2016/07/26 14:39:01 $