some important factors in teaching software engineering courses presenter: jingzhou li depart of...

23
SOME IMPORTANT FACTORS IN SOME IMPORTANT FACTORS IN TEACHING SOFTWARE TEACHING SOFTWARE ENGINEERING COURSES ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: [email protected] Author: Haibin Zhu, PhD Department of Computer Science and Mathematics, Nipissing University, North Bay, Canada email: [email protected] URL: http:// www .nipissingu.ca/faculty/haibinz

Upload: marsha-george

Post on 29-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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

Page 2: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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

Page 3: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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.

Page 4: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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

Page 5: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

At Nipissing UniversityAt Nipissing University

Introduction to Computing C++ Programming Object-Oriented Programming Programming Paradigms Distributed Systems Software Engineering Computer Security

Page 6: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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

Page 7: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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

Page 8: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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

Page 9: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

Evaluations at NJITEvaluations at NJIT

00.5

11.5

22.5

33.5

1st year 3rd year graduate-1st

Evaluation

Page 10: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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

Page 11: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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.

Page 12: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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

Page 13: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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

Page 14: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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.

Page 15: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

Example 2Example 2

3D Visual Model 5 Students:

– project leader– development manager– planning, manager– quality manager– support manager

Developed to a research project

Page 16: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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.

Page 17: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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.

Page 18: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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.

Page 19: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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

Page 20: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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

Page 21: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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.

Page 22: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

Be careful to recurring Be careful to recurring concepts relevant to SWEconcepts relevant to SWE

Trade-off Ready for changing The meaning of success

Page 23: SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary, Email: jingli@ucalgary.ca

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.