Regarding school education, Xiao qing said: it would be nice if you don't accept your money.

Source: Internet
Author: User

Background

This semester we (Yan Jing, sing Xin, Guang Lei) held a course at Beihang, Yan Yi, Software Institute, two credits, ten courses, three hours each time, on Sunday afternoon, the course name was originally calledModern Software EngineeringLater changedLevel 1 practiceIt is a practical course in the data center. We mainly practiced some practices closely related to programming in extreme programming, such as TDD, refactoring, pairing, simple design, and continuous integration.

We are going to talk about our problems. this is different from developing projects. we may be familiar with software development, but in school education, the classrooms of 100 people are completely different problem domains. so some people asked if it was billable. When we said there was not much money, Xiao qing said, "It would be nice if you don't accept your money ". cheng Zai Si Yan.

The following describes our understanding of the problem, corresponding solutions, and lessons learned.We consciously try not to mention our course content, because the specific course content has nothing to do with the problem domain we will talk about. in other words, if we don't teach software development but financial or securities investment, as long as the number of students is the same and the gap is also very large, we will still encounter and want to solve these problems.

Problem

Major problems include:

  • Performance issues brought about by the scale of the classroom: How can a large class of about 100 students ensure the effect of lectures? Including targeted instructor coaching and Q &
  • Course Arrangement problems caused by horizontal differences: There is basically no programming experience, half of which is 3 ~ Five years of experience accounts for 2% of the total. There are still several decades of experience. How can we grasp the depth and difficulty of the course?
  • How do I take exams for practical courses?
  • How can we get feedback from students to adjust the course content in a timely manner?
  • However, the most important question for us is,How can we ensure that students can learn?
  • There is actually another problem,How to help students learnHowever, this issue should not be taken independently by a practical course. We don't have to worry about it. We just need to make every effort to contribute to it. For example, the simplest practice is to introduce some preaching.

Let's talk about the most important question.

How to ensure that students can learn

Understanding of the problem

The purpose of this course is to allow students to get in touch with and understand the development practices they are currently using outside of theory, so that school education will not be too out of touch. however, in addition to practices not available in schools, more importantly, there are problems that cannot be encountered in schools. for ten lessons, it may be a small achievement to deliberately practice some practices, but the practice is easy and old, and the problem is eternal. While teaching practice, it does not prevent us from throwing various practical problems encountered in the enterprise, lead students to think and discuss. this is our bottom line and can always be done. with this background, we will further deepen several common practices to ensure that students do not return empty-handed.

There are also some knowledge about algorithms, such as git and GitHub, which are easy to learn and have no side effects, and are certainly valuable. These can always be taught and learned by the way.

How can we verify that students have learned it? Assignments are arranged and checked to encourage students to share information. Do they verify the assignment directly through real projects? This can be an option. We did not do this for some reason this semester, which will be mentioned later.

Our Practices

  • Share and practice the real problems we encounter at work

We will try our best to give a practical example of some knowledge points encountered in the exercise. for example, in the version control system, we will talk about some enterprises that restrict the permissions of developers to delete files, so that you can analyze the reasons, consequences, and better practices of the policy.

Another example is that people often come and go at work. How can we transmit knowledge? To solve this problem, we will allow students to exchange pair to simulate this scenario.

  • Assignments are arranged and presented to students at the beginning of the next lesson.

It can be confirmed that at least some of the students have done their homework and can get targeted comments from teachers. (I will talk about the reason for the size of the class later. Not everyone will get a one-on-one comment from the teacher. Therefore, it is a good learning opportunity and a test of their mastery)

  • Encourage students to answer questions, share and write blogs. This is a plus.

The students' answers to the questions and the knowledge they have shared can prove that they have learned. we have designed some links and mechanisms, such as a one-quarter sharing period before class, so that students can come up with a quick speech, and Weibo communication platform where students can write blogs, link @ to us. in order to encourage these behaviors to happen more and let us verify the mastery of the students, we designed extra points. all of the above points, including demo jobs, can be added to the total score.

  • No matter what the customer is doing, give him some other suggestions.

This is one of winberger's consulting rules. software development is a typical representative of knowledge work, involving all aspects of technology, organization, psychology, and social behavior. we can always provide useful suggestions that are not directly related to the course content.

Results and lessons learned

  • The effect is normal.

For some other reasons, our verification mechanism has a limited role. for example, when I come up to demonstrate my homework and actively answer questions in class, there are always a few people. no one @ gave us his/her blog link.

Although the function of the verification mechanism is limited, is there any other way to confirm whether the students have learned something? In the last round spective meeting, we divided into four groups. Some people in each group said they didn't learn anything actually. Some people in each group also said that the course content was very practical and learned a lot.

  • Experience

In the "keep doing" column, many people have mentioned the hope that teachers can continue to share real project issues. This at least shows that our only advantage has indeed taken advantage.

Many people have repeatedly mentioned that the division of the three levels of knowledge (mystery, heuristic, algorithm) we have talked about is very enlightening to them. The consulting law of winberger has played a role again.

  • Lessons learned

The advantages of our work experience and the winberger advisory law have helped us, while the verification mechanism we designed does not. the current verification mechanism only picks out those students who are eager to learn, and those who are eager to learn do not need to worry about it.So how can we make some gains for less studious students?At this point, we failed this semester. This is an open question. We will discuss it later and would like to hear your comments.

To sum up, some people have learned something from this course, and some do not. based on our data, this result is directly related to the students' software development experience and our curriculum design. the following is the second question: Curriculum Design

Challenges of level differences in curriculum design and Classroom Teaching

Understanding of the problem

The curriculum design should follow several principles:

  • Teach students as much as possible.Therefore, you need to understand the current software development level of students.
  • There should be room for adjustment based on feedback.It is not necessary to fully follow the syllabus developed before the start of the semester

Our Practices

  • First class Questionnaire Survey

We have designed a questionnaire that involves the programming years, familiar languages, version control systems, and development practices of students. the final result is as mentioned above. There is basically no programming experience, and it takes half of the total; 3 ~ 5 years of experience, accounting for 2%. there are still several years of experience. the level is much lower than we expected. in terms of teaching style, we have made different training changes for enterprises. as described below

  • Teach by example

For training enterprises, we basically use a comparative approach, that is, let the trainees first perform exercises in their own ways and make various mistakes. Let's comment on them and show them better practices, impress. it won't work in this class, and the students have no "original way" to let them do anything themselves. we changed the teaching style from the second lesson. We first took the students to the first exercise. With example, the students paired and completed the rest. pair

  • Team Learning

In order to prevent students without any foundation from being too difficult, we will allow students to pair up to complete the exercises. the final exam is based on pair. (Of course, The other reason is that the pair is one of our courses)

  • Use the simplest language features as much as possible

Language is not the focus, but the various ideas in software development. The lectures do not involve any complicated domain knowledge. (In fact, this is a bit wishful thinking. Half of the students don't even talk about programming)

  • After the course is conducted for a period of time, a survey will be conducted on the expectations of the subsequent course content.

Our courses are divided into three parts. In the second part, we have a better understanding of the students and feel that they do not necessarily like or think that the content of the third part we originally arranged is useful, we made a survey and gave the students more choices.

Effect

The results are average. People with work experience think it is very practical, and beginners are confused. We have analyzed two main reasons:

  • The instructor's input level.Before the course class, we learned that it was a practical course. We were very happy because we had limited spare time and two people were about to become fathers. We were very busy at that time, and we had all kinds of courses available for practical classes, yan Jing has just returned from the twu class. In short, there is no need to spend too much time preparing. after the results of the questionnaire in the first lesson show that half of the students have little experience, we have not made too many adjustments and still use internal training courses for enterprises, in terms of style, I only changed the focus on training to teaching. this makes it very practical for people with work experience, while beginners are confused.
  • The course sequence of the school.Practical courses depend on some basic knowledge, and the courses that teach these basic knowledge are also carried out at the same time this semester, such as Java language, and are still electives. it will be better if our courses are arranged for the next semester. this has already been communicated with the school supervisor, hoping to adjust the course sequence in the next year

Lessons learned

  • Investment required

As mentioned above. although we spend every week to discuss the main points of the next lesson, we will write code and PPT in our spare time, And we will spend the weekend in class, however, they did not carefully design courses for student users, resulting in poor performance.

  • I only reviewed the course once. It was a bit late.

We have divided a total of 11 lessons into three parts. We can review each part at the end of this lesson. But for several reasons, we chose to put it at the end. first, after we make some adjustments based on our observations, we can see the progress of the classroom in each lesson. For example, if there are too many answers to questions, the quality of the Code presented here is gradually improved, in addition, after we announce that we have entered the examination mode from the fifth class, the attendance rate has remained at a high level and we feel that the effect is still acceptable. second, the investment mentioned above is difficult to adjust. If some actions are formed at the review meeting, the teacher may not be able to cope with them, but will not take action after review, it will be a negative teaching material. out of selfishness and confidence in the classroom effect, we decided to make a last review. it is definitely not good if you don't do it.

However, this dragged down the final effect. The lessons are not new:If you cannot invest in it, do not seek live; otherwise, there will be no satisfactory results.

  • Groups can be grouped horizontally and relatively larger.

There are still half experienced people, so we may still use the existing resources to achieve better results. we did not take advantage of these students. the pair range is too small and relatively random. the course content is a process of developing software enterprises, so it is a natural choice to team up and practice with a realistic development team. in this way, experienced users can bring in inexperienced ones.

  • Grouping by Programming Language

Our teaching language uses Java, but Java is not the focus. in fact, we do not limit students to use other languages for exercises and exams, but we did not clarify this with the students and did not prepare a development environment for them. the environment of the data center is restored to the original image every time, and we asked the data center teacher to help us implement the Java environment in the image. during the review meeting, students suggested that grouping by language would be much smoother. if you have another chance next year, we should give it a try.

  • Create a relatively complete project

Based on the assumptions of the previous group, we can integrate resources to build a relatively complete project. This semester's exercises are scattered, which is still related to insufficient investment in curriculum design.

Later, sing Xin accidentally discovered Lu Xin from the Internet (working at Microsoft, with many years of experience in teaching software engineering in the school, and also started classes in Beijing Airlines this semester, the course name is exactly modern software engineering. his microblog @ programmer xin) the instructor's syllabus and grouping projects are also used for teaching.

The third question is how to ensure the effect of lectures in a large class with around 100 students?

Performance issues brought about by the scale of the classroom

Understanding of the problem

The classroom is large, but the hardware facilities are sufficient to ensure that every student can see and hear clearly. teachers are in short supply. on average, only 3% teachers can be assigned to each student. how to have targeted Q & A and how to make full use of various opportunities to communicate with students is a very important question we began to think.

Our Practices

  • One teacher gave a lecture and the other two gave tutoring.

We have a lecturer in each lesson. when he/she is teaching in front of the classroom, the other two will move back and forth in the classroom to answer students' questions. when I started to practice, all the three teachers moved around in the classroom to answer questions.

  • Expand the scope of Q & A impact

When a student asks a representative question, ask him to repeat the class with a microphone, and then the teacher will answer questions for the class.

  • Establish a Weibo communication platform

The three hours of each lesson are limited. after class, students can leave to ask questions. the more flexible way is online communication. we have created a microblog account for the course: @ Level 1 practice _ Beihang. the courseware will be stored in the corresponding microdisk. if the student has any questions, @ us. we will also push some references, such as tech radar and even company activities, such as openparty, bqconf and techlady.

Effect

Shang Ke. there was no less well in the review meeting, such as failing to respond in a timely manner. when the students in the class do not understand the teacher's explanation, they will also tell us why we do not understand it. When we explain it, we will use several methods to clarify things.

Weibo platform does not play a major role. Communication is basically one-way. we upload courseware and students download it. Of course the reason is not Weibo.

Lessons learned

  • Try grouping

Similar to those who did not use the student's senior to help compensate for the level difference, we did not use them to help us deliver our knowledge. if the group is used, the questions of each person will first pass through the group, and the group thinks there is no answer before they will be promoted to the teacher. teachers do not need to watch 50 pairs of pair for 100 people, but they only need to take care of up to 10 groups.

The fourth question is how to take the test.

Practical courses and how to take exams

Understanding of the problem

Because it is a required course with credits, we have to give students a score in any case. There are several ways that won't work:

  • We do not know any questions that can reflect the students'PracticeLevel
  • A source code snapshot. first, you cannot determine the source of the code, but more importantly, we do not think that the practice and understanding of the practice have a simple causal relationship with the quality of the source code. source code quality is affected by multiple factors. the basic differences between students are also large.

There are several principles that we think are appropriate:

  • Students' Participation in the classroom should be considered in the final score.
  • There must be actual programming tasks to be considered in the final score, but you should not simply look at the final result
  • There may be some open questions. For example, for a certain issue in software development, students can talk about their own ideas.
  • Avoid taking the test again at the end of the course and take the test continuously.

Our Practices

Based on the above principles, we have determined the examination method and content at the beginning of the course.

  • Students' classroom practice as a plus item

Answer questions, Demo code, demo job, share experiences, etc., each time 5 points, 10 points cap. this is an extra score, and there are other exams with a total score of 100. if the score is 10, the student will pass if the score is more than 50.

  • Make the demand changes that have not been completed in the classroom a test question

In a small project, as the course content, we will take the students together to make a part, and at last we will leave two new demand changes as exam questions, accounting for 80 points

  • The submission history of GitHub is taken into account.

To avoid plagiarism, we will consider the submission history of GitHub. If the examination code is submitted only once, or the repository history of several people is largely overlapped, the score will be affected.

  • Leave an open question as the Thesis Title, accounting for 20 points

This was canceled because the final course failed to achieve the desired effect.

  • The examination methods will be published at the beginning of the semester, and the last examination questions will be posted four weeks in advance

Effect

I am waiting for my colleagues to help me with code review. I submitted 50 or 60 pieces of code by pair!

Lessons learned

  • Continuous test. Continuous Examination

Classroom Participation has not been high, and there are not many questions about students' initiative. however, since we published the exam questions four weeks in advance, the students have suddenly been very concerned about the questions. They have all come to clarify their needs and even ask some in-depth questions, for example, how to automate the output test on the console. this has inspired us a lot. although we also know that each learning point should be validate, it is done in the form of a job. no operation is required. students are not interested in homework. but I really care about the exam questions. this is the same as consulting and project creation. It is necessary to clarify the interests of stakeholder...

One way to consider is to have a score for each lesson. For example, 10 lessons and 10 points for each lesson. The student union is forced to care about the content of each lesson from the very beginning.

  • Group projects and calculate scores by group

The examination method we adopted is too detailed. according to the course design of instructor Xin, the final requirement of the student works is a real product, which is released to the open market and has real external users. it is appropriate to give students a useful project within one semester (about three months) without too many functions. the last 10 lessons can also be presented to a team.

Tips Summary

  • Investment
  • Leverage the power of Students
  • Continuous feedback
  • Continuous Verification
  • Understand the interests of stakeholder
  • No matter what the course content is, teach something else

At the end of the day, I found that my team was working on a project very similar to that of my company, eh? The solution principles for different problem domains are consistent, eh?

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.