学习基础和C语言基础调查
读做中学有感
读了老师的推送,通过邹欣老师的博客中对老师和学生的关系比作教练和学员的阐述,这里重点为我们阐述了「做中学(Learning By Doing)」的重要性。
套路(Kata)指针对某一种特定技术或技能进行重复性的练习,从而将其熟练掌握。这个概念借鉴于武术,指的是可以独自或多人共同练习的一系列动作、招式。
做中学(Learning By Doing)从老师角度讲就是「项目驱动教学法」。学生在实践中发现问题,解决问题,在迭代中提升。
--引用自《优秀的教学方法--做教练与做中学》
- 而在生活中,我比较在行的技巧就是打网球,从初三暑假到大一的暑假,时间不长也不短.记得一开始教练每天都让我先做好热身活动,接着就开始一遍又一遍的挥球拍,再熟悉挥拍动作的前提下,再加上多次接球对打练习,自己掌握步伐,我的球技得到很大提升。并且在练球的过程中,有一部分时间是家长和教练督促我去学,而在后期我的积极性突然上来,自己越来越接纳这项运动,突然从中感受到乐趣。
- 我觉得我的学习网球的经历与老师的五笔、减肥、乒乓球、背单词及做中学有共通之处:先掌握基础在进行有效的实践,并且坚持练习,自身和外界都要有一个督促的力量,达到一定量变才能引起质变,并要懂得及时发现问题向教练求解。
- 所以成功的学习也如此,离不开自己先对课本的理解摸索,培养兴趣,其次养成良好的预习复习习惯,不盲目学习,发现问题,最后及时反馈解决,达到有效学习。
关于C语言
你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
我的C语言学习是通过课堂和课本掌握基本知识,然后通过题库和实验课的练习来学习的。C语言的学习必须一开始先对课本进行深刻理解在经过反复的实践练习,不能到最后才盲羊补牢,而且遇到相似又不同的问题要学会变通,不能死学知识。
目前为止估算自己写过多少行C代码?理解的情况如何?量变引起质变,如何平衡质和量?
目前为止自己写过的C代码大概4500行左右,对一些复杂代码的理解不是很深刻。足够的量变才引起质变,而良好的质变来源于良好的量变积累,不能只追求量也要注重质。
学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?
数组指针:是指向数组首元素的地址的指针,其本质为指针。
指针数组:是数组元素为指针的数组,其本质为数组。
函数指针:指向函数的指针变量,本质是指针变量,指向函数。
指针函数:指返回值是指针的函数,即本质是一个函数。
学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
不明白这里。
学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
面向过程程序设计就是以过程为中心的编程思想。不明白方法。
在C语言里面,什么是模块?你写过多个源文件的程序吗?
模块即将一个程序分为若干个不同功能的模块,在整合一个完整的程序。没写过多个源文件的程序。
学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
高内聚就是一个模块内各个元素彼此结合的紧密程度高;低耦合就是模块与模块之间,尽可能的使其独立存在。
学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
数组A的内容复制到数组B
#include <stdio.h> #include <stdlib.h> #define N 100 int main() { int a[N],b[N]; int i; printf("输入数组a:\n"); gets(a); for(i=0;a[i]!=‘\0‘;i++) { b[i]=a[i]; } puts(b); return 0; }
查找整数数组A中有没有5
#include <stdio.h> #include <stdlib.h> #define N 5 int main() { int a[N]={1,5,8,9,6},k=0; int i; for(i=0;i<=N-1;i++) { if(a[i]==5) k=1; } if(k==1) printf("YES\n"); else printf("NO\n"); return 0; }
对整数数组A进行排序(从大到小,从小到大)
#include <stdio.h> #include <stdlib.h> #define N 5 void cxdd(int a[]); void cddx(int a[]); int main() { int a[N]={1,9,3,7,5}; int i; cxdd(a); for(i=0;i<N;i++) { printf("%d",a[i]);/*从小到大*/ } cddx(a); for(i=0;i<N;i++) { printf("%d",a[i]);/*从大到小*/ } return 0; } void cxdd(int a[]) { int i,j; int temp=0; for(i=0;i<N;i++) { for(j=i+1;j<N;j++) { if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } } } void cddx(int a[]) { int i,j,temp=0; for(i=0;i<N;i++) { for(j=i+1;j<N;j++) { if(a[i]<a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } } }
写一个程序,统计自己C语言共写了多少行代码。
不知该怎么写。
你知道什么是断点吗?给出自己调试程序的例子。
断点就是在调试程序时让程序中断在需要检测的位置。
以上面程序为例:
Java学习
对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?
对Java的学习,我希望可以在巩固自己忘掉的C语言知识的同时也掌握Java的技术,可以自己独立解决一些问题。
针对训练,每周的博客要认真对待,学会总结,对课本上的代码要多记并且尽量做到灵活运动,一周学习时间内不能偷懒,自己要勤动脑,也不要死读课本。
实现目标就如老师“做中学”所说:思考中学习,分层次灵活实践,刻意训练,同时学会提问。在按照老师要求的前提下,每周给自己制定一定计划,勤学勤练勤问。