The undergraduate software engineering course has been followed by waterfall-type clues to the various milestones of the introduction of the relevant knowledge points, there are many theoretical framework and practical ability of the pros and cons of the debate. Here I also have a little bit of my own opinion.
The function of software engineering in the teaching of project development essentially similar to the subject position of computer introduction in computer education, it should belong to the leading, clue, frame-type introduction, ponder its wide content, the theory of the heavy, the practice of the heavy teaching, itself is not a semester can bear. Since the syllabus only arranges for one semester, at best, the future development should be only for the learners to enter the door and an introductory subject. Rather than what some people say is so dangerous and so-so.
Stand at a higher level, such as architecture or the entire IT industry, or the entire knowledge system at a higher level. Software Engineering, just the predecessors of the experience , the predecessors summed up the experience of failure and success, with the help of other engineering ideas to guide the development of the project, does not show that the method is the truth is absolutely correct , the theory is also constantly improve, overthrow and re-organize the process. This method may only be feasible within a certain range, but it does not mean that it is absolutely correct. Just as Einstein's theory of relativity is to Newton's law, Newton's law does not apply when the object reaches the speed of light.
And now the software industry height, depth, breadth of the rapid development, want to use a set of incomplete maturity theory to define and constrain, but also hard to cram into the students ' brains, is obviously narrow, is also ridiculous.
one, The software engineering idea is only the experience that the predecessors summarize, not how high absolute truth . The set theory of mathematics is still refutation, not to mention the so-called software engineering thought. Software engineering can teach students to use this method to develop a project, but definitely not forcing students to do so is the right, the same way, perhaps smart students think more ways to achieve the same purpose, why not? So for the current undergraduate student education software engineering so-called learning to do, I personally do not agree with the . It is easy to make a detour to the students ' thinking and pioneering box, in fact, we can encourage students to adopt different models and frameworks to develop, and encourage team leader to adopt different management methods, and discuss the merits and demerits of different methods at the end of the semester, and guide the students to learn from the failure. Instead of telling them directly what is right and what is wrong with . Because the applied discipline itself has no right or wrong points.
. if you want to allow students to develop software products, can be in the follow-up of a project management or product development elective courses or set up a practice base, students in accordance with the interests of different types of projects, theoretical and practical, so that enterprises to guide the development of different types of software products. So I personally think that , although the theory lesson is boring, In order to guide the students ' interest and blindly reduce the requirements of the theory, the university education is not to guide the interest (in theory, the high school should be the default students to choose their own interested in the subject), but to guide students to dig more self-learning ability, problem solving ability, study the ability of theory, establish strategically advantageous position thought, Whether in the future to engage in project development or scientific research to lay a solid foundation.
the SOFTWARE PRODUCT development practice teaching is hard to rub into the software engineering course, there is some suspicion on the theory of brittle engineering course , and the students are easy to blinders . Only one semester time, time is very tight, students engaged in development at best only see a method, only developed a project, difficult to see the whole forest, in vain to delay the good study and reading time. Software PRODUCT development and software engineering theory, although closely related, but they are like leaves and roots of the relationship, product development and project management methods have many, but its fundamental theoretical essence is a simple regularity of things, their relationship should be the phenomenon and nature, form and God relationship, if only to teach the undergraduate students software development "Form", while ignoring the soft work of the soul of the "God" of the transmission, is completely the cart before the horse, self-righteous ideas.
Thirdly, education should be a kind of sustainable education, not an "examination-oriented" education. The theory of heavy, heavy and far-away software engineering class, has become a very interesting, project development class, seemingly happy to meet the students "learning skills" illusion, in fact, the sustainable development of students is worrying. There is no theoretical cushion, just learned one or two ways, seemingly will develop software products, in fact, the project for a framework, change the language, change the environment, it is possible that the student has no theoretical guidance, I am afraid to start from scratch to learn, re-groping. Such students can not follow the possibility of sustainable learning and progress, a few years later, it may be necessary to move out of the university's "Software Engineering" theory books to re-study, in order to solve their "hunger".
My Years of teaching software engineering, The most serious learning is that those students who specialize in this major. Because most of the students in this class have experience in the development work, working in the enterprise for a few years, back to study, the idea of software engineering is completely different. Remember the 2014 students, a student's performance is particularly prominent, soft work class is particularly serious, on the course layout of the document writing task very seriously, a small project, the requirements of the document wrote hundreds of pages, carefully painted every UML diagram, meticulous, conscientious overtime, to any theory is full of interest in research and practice, As team leader wrote a very formal group management rules and regulations, but also developed a set of management system, because the students have to take him, after he agreed that the group later joined 15 students, for different levels he invented the management of the ladder. He often has the opportunity to chat with me after class, learned that, in fact, he is a specialist after graduation in Beijing, a software company for several years, engaged in the work of software engineers, he said that the years he deeply realized the importance of software engineering, he did not even have the opportunity to contact the demand report and outline design of the writing, now back to Reading Incredibly can do project leader, completely free to play the writing requirements and design documents, is his dream of things, night and night to learn and write, and then learn how to manage the different people in the group, learn how to change their minds to the system of ideas, converted into documents, how to communicate to other team members and so on, He said that he thanked him for his dream of the class of the semester. The class of that semester, the second half semester of the experiment class, all to this classmate to organize the discussion of the project development method between the class group, because I then the experiment lesson allows the group to use any method to realize the project development , the theory course still is introduces the software engineering thought , as far as the group is used or not, . Later, each experiment class was organized by the classmate to organize the discussion, to compare the weekly progress of different groups, each team summed up their failures and successes, explored each other and encouraged each other to argue. Some team code strong ability to develop the project quickly, do not write documents, I will be in the interim, modify their needs, change their strongest code development students, let them understand the pain of not writing documents, and then consciously fill in the document, to prevent me at any time to modify the needs and substitutions of the move.
Of course, I am still a soft hearted teacher, as long as there is to participate in the experimental discussion, as long as there is a test, the written test as long as the pass, all the students will pass the exam. I think it's not important to learn to experience. as long as people experience, will always leave an impression, this is more important than anything, the process of learning something, more important than the score. My scoring standard is that all the team leader are more than 90 points, no matter how the group does, because in my class, team leader must be paid the most, I use is the leader of the responsibility system, the team members are completely returned to the head of the education and organization, scores also 20% by the leader to score .
Finally, on the agile approach, I think the agile method is only the church developers a highly cooperative way of working, in fact, many of the ways of work is not applicable to China's national conditions, mechanically education students must pair programming, stand-up meetings, shaped like spoon, lack of pioneering ideas. Some people apply the good, because his way of thinking to adapt to agile methods, does not mean that the method is scientific, I think it should be aimed at China's national conditions, respect for the reality, to find a country belongs to our own agile way, should inspire students for "thinking cooperation" have more of their favorite way, Encourage children to learn while trying to take a path that belongs to them.
In short, I think the university is a place where students are allowed to make mistakes and learn from the mistakes they make while learning theories, not the right and wrong places for teachers to educate . University should be a let students make mistakes at the same time, learning theory, whether they fall and not adopt theory, whether they can have their own better ways to avoid the future detours and so on, the role of teachers just tell students what is the theory, whether it is the truth, the theory is correct should let students themselves to explore and practice, As a teacher, you cannot judge by one's own opinion. The so-called "software development teaching to use as an engineering program", the essence is spoon-like, only let the students know the so-called simple line theory, mechanically put into practice, a lot of work, and finally found that students and teachers are very tired, students also lost in the university can read the precious time, Also lost the theoretical guidance practice, the practice rose to the theoretical summary of the scientific methodology.
A little idea of software engineering course education