230 likes | 334 Views
SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES. Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca Author: Haibin Zhu, PhD Department of Computer Science and Mathematics, Nipissing University, North Bay, Canada
E N D
SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca Author: Haibin Zhu, PhD Department of Computer Science and Mathematics, Nipissing University, North Bay, Canada email: haibinz@nipissingu.ca URL: http://www.nipissingu.ca/faculty/haibinz
Contents • Introduction • Paying Attention to the students’ Learning Abilities • Teaching SWE Courses with Real Projects • Teaching SWE Courses with Real Projects • Arranging Courses in Series • Other factors • Conclusion
Introduction • Software engineering (SWE) is a complex and challenging undertaking. • The common difficulties are teaching abstraction in Object-Oriented Programming • Confucius’ statements demonstrate the situation. • At fifteen my heart was set on learning; at thirty I stood firm; at forty I had no more doubts; at fifty I knew the mandate of heaven; at sixty my ear was obedient; at seventy I could follow my heart's desire without transgressing the norm. • No one is considered as successful if he or she did not offer a large project that requires team work in a SWE course. • CC-2001 recommended arrange knowledge units into groups.
Paying Attention to the students’ Learning Abilities • The courses taught by the author • The evaluations of the author at Nipissing University and NJIT • Comments of students • Conclusion from the evaluations
At Nipissing University • Introduction to Computing • C++ Programming • Object-Oriented Programming • Programming Paradigms • Distributed Systems • Software Engineering • Computer Security
At NJIT, USA • Operating System Designs that is a graduate course • Introduction to UNIX Operating System that is third year course • Introduction to Computer Science II that is a first year course • Object-Oriented Programming with C++ that is a graduate course • Principles of Operating Systems that is a third year course • Machine and Assembly Language that is a second year course • Advanced Programming Environment & Tools that is a distance learning course for graduate students
At NUDT, China • Object-Oriented Principles and Applications that is a course for graduate students • Distributed Systems that is a course for graduate students • Advanced Computer Architecture that is a core course for graduate students • Computer System Performance Evaluation that is a course for fourth year students
Comments • Fourth year students: • Great professors, very interesting courses and lectures, great examples • First Year Students • Not interesting, difficult to follow • The metaphors only confuse us more
Conclusions from evaluations and comments • We should pay more attention to the students’ abstraction and learning abilities to understand the instructors. • Some advanced concepts must be put into the courses in the later years.
Teaching SWE Courses with Real Projects • Real projects can • Make SWE real; • Make SWE fun; • Make SWE critical; • Make SWE accessible; and • Make SWE successful
The project assignment • Guideline: • Suggested project lists • Schedules • Document guidelines and requirements, and • Meeting skills and role distributions • Requirements • 3-5 people per group • Meeting once a week • Projects documents according to SDLC • Presentation of the final project report
Example 1 • Visual Academic Planner • 4 students • planning manager • development manager • quality manager and • team leader. • Complete: • the requirement document, the analysis document, the design document, and the final document.
Example 2 • 3D Visual Model • 5 Students: • project leader • development manager • planning, manager • quality manager • support manager • Developed to a research project
Project evaluations • A whole grade from the professor • The peer evaluation of the students • Participation: 10% • New idea: 25% • Comment: 20% • Cooperative work: 20% • Concrete work: 25% • A grade is distributed to the students based on their peer evaluation.
Arranging Courses in Series • Advantages: • Systematic: • it is easy to arrange knowledge units across all the courses in the series. • Easy to manage: • it is easy to let the professors and students understand the prerequisites of a course. • Saving resources: • it is easy to check the duplicate knowledge units across the courses in the series. • Helping the students learn knowledge gradually; • Concentrating specific contents in relevant courses.
The Programming/Software Engineering series at NU • Introduction to Computing • C++ programming • Object-Oriented Programming • Programming Paradigms • Distributed Systems • Software Engineering • Human Computer Interaction • Project Management • Computer Profession.
Benefit examples from course series • A three-hour lecture of Distributed System moved to Computer Security • A two-hour lecture of SE moved to Project Management • C++ basics being completed in the first year courses makes the OOP course have time to teach Java
Other factors • The properties of engineering • Engineering is different from science • The basic requirements for a software engineering professor • Large real projects experience • Updating course material every year with 5-10% • Teaching abstraction ability (See slide 21) • Be careful to recurring concepts relevant to SWE (Slide 22) • Learning from our lives • Common ideas are good solutions in SWE
Teaching abstraction ability • Encourage students to learn enough mathematics; • Introduce fundamental concepts with abstraction examples; • Begin to teach students modeling and analysis from the introductory courses; • Teach simple design methodologies in early introductory courses [8]; • Guide students to do simple abstraction to complex abstraction in their course assignments and projects; and • Teach software engineering students how to use formal models as part of their software development processes.
Be careful to recurring concepts relevant to SWE • Trade-off • Ready for changing • The meaning of success
Conclusion • Abstraction is difficult to teach and it is a task all over the SWE discipline. • Students at different levels of have different level of understanding abilities. • Mastering the course material thoroughly is not enough to be a successful professor. • Grouping relevant course into a series can save teaching resources; help students learn knowledge gradually; and ease the management of courses. • There many factors relevant to the experiences and the hard work of SWE professors. Nothing could replace the professors’ intelligences, experiences and dedications to be successful in teaching SWE courses.