some important factors in teaching software engineering courses presenter: jingzhou li depart of...
TRANSCRIPT
SOME IMPORTANT FACTORS IN SOME IMPORTANT FACTORS IN TEACHING SOFTWARE TEACHING SOFTWARE
ENGINEERING COURSESENGINEERING COURSES
Presenter: Jingzhou LiDepart of ECE, University of Calgary, Email: [email protected]
Author: Haibin Zhu, PhDDepartment of Computer Science and Mathematics, Nipissing University, North Bay, Canada
email: [email protected]: http://www.nipissingu.ca/faculty/haibinz
ContentsContents 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
IntroductionIntroduction 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’ Paying Attention to the students’ Learning AbilitiesLearning 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 UniversityAt Nipissing University
Introduction to Computing C++ Programming Object-Oriented Programming Programming Paradigms Distributed Systems Software Engineering Computer Security
At NJIT, USAAt 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, ChinaAt 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
Evaluations at NU Evaluations at NU
3.4
3.6
3.8
4
4.2
4.4
1styear-1st
1styear-2nd
3rdyear-1st
3rdyear-2nd
3rdyear -
3rd
4thyear
Evaluation
Evaluations at NJITEvaluations at NJIT
00.5
11.5
22.5
33.5
1st year 3rd year graduate-1st
Evaluation
CommentsCommentsFourth 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 Conclusions from evaluations and commentsand 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 Teaching SWE Courses with Real Projects Real Projects
Real projects can – Make SWE real;– Make SWE fun;– Make SWE critical;– Make SWE accessible; and– Make SWE successful
The project assignmentThe project assignmentGuideline:
– 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 1Example 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 2Example 2
3D Visual Model 5 Students:
– project leader– development manager– planning, manager– quality manager– support manager
Developed to a research project
Project evaluationsProject 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 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 The Programming/Software Engineering series at NUEngineering 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 Benefit examples from course seriesseries
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 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 abilityTeaching 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 Be careful to recurring concepts relevant to SWEconcepts relevant to SWE
Trade-off Ready for changing The meaning of success
ConclusionConclusion 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.