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

Post on 29-Dec-2015

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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: jingli@ucalgary.ca

Author: Haibin Zhu, PhDDepartment of Computer Science and Mathematics, Nipissing University, North Bay, Canada

email: haibinz@nipissingu.caURL: 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.

top related