MASTER OF SOFTWARE ENGINEERING PROGRAMME


Towards Educating Leaders of Software Teams:

A New Software Engineering Programme at PUT

Jerzy R. Nawrocki

Institute of Computing Science, Poznan University of Technology, Poznan, Poland

e-mail: nawrocki@put.poznan.pl

 

Abstract. Recently a new programme in Master of Software Engineering has been developed at Poznan University of Technology. It aims at educating leaders of software teams. The paper presents the knowledge and skills the candidates to the programme should have and shortly describes all the main features of the curriculum including Software Development Studio, technical subjects, human factors, financial aspects of software development, and out-of-class activities.

Keywords. Software engineering, education, curriculum, software development studio.

 

  1. Introduction
  2. Bachelor Degree Programme in Computing Science
  3. Overview of the MSE Programme
  4. Software development studio
  5. Human factors
  6. Financial aspects of software development
  7. Technical subjects
  8. Out-of-class activities
  9. Conclusions
  10. References

 


1. Introduction.


There is still a great demand for software engineers. According to K. Sandoe [San] in the US alone there are about 200 000 unfilled positions available to software engineers and that number is going to increase 25 percent a year in a couple of next years. In Ireland over the period of 1995-97 employment in software industry has grown by 54 percent [Con98]. In Poland software industry is also growing pretty fast and in near future there will be big demand for software engineers. For instance, Motorola is opening a software centre in Krakow and is going to employ about 300-400 software engineers by year 2000. However, on the other hand one can hear a serious dissatisfaction about what universities are producing:

In Poland there is one more reproach: many students speak English very little, if at all. This is an important issue for foreign companies and indigenous firms which have foreign customers.

Thus, there is a need for new programmes in Software Engineering education that would address the above issues. It seems that modern Software Engineering education should take into account the following aspects:

In the paper a new programme in Master of Software Engineering is presented which has been developed at Poznan University of Technology. The aim is to educate leaders of software teams. The education programme tries to comply with already mentioned requirements for modern Software Engineering education. Moreover, to be true leaders, our graduates should:

Satisfying all those requirements is not an easy task. To help this, a big attention is paid not only to lectures and tutorials but also to outside-lesson-hours activities.

Applicants to this programme should normally have bachelor degree in computing science. Section 2 contains a short description of the Bachelor Degree Programme in Computing Science at Poznan University of Technology. Overview of the Master of Software Engineering Programme is presented in Sec. 3. An important role in the programme is assigned to Software Development Studio which is described in Sec. 4. Section 5 is devoted to human factors. Financial aspects of software development are discussed in Sec. 6. All the technical issues are addressed in Sec. 7. To educate true leaders lectures and tutorials are not enough. In Sec. 8 out-of-class activities are described which should help our students to develop a proactive mentality and communication skills. Paper ends with some conclusions and suggestions concerning further development of the programme.

Return to the page top


2. Bachelor Degree Programme in Computing Science.


Bachelor Degree Programme lasts for 3 years (6 semesters). Every year we have about 600 candidates from which we choose about 120. The subjects which are being taught cover all the areas presented in ACM/IEEE Curriculum 1991. Some of them, namely Operating Systems, Software Engineering, Database Systems, and Computer Networks, are 2-semesters-long. It is so, because in our opinion they are very important from practical point of view. Moreover, there are hardware-oriented modules (Electronics, Digital Technology Circuits, Computer-based Process Control), theoretical modules (Mathematics (2 semesters), Operational Research, Decision Support Systems), and other modules like Accounting and Finance, English classes (4 semesters), and Industrial Information Systems. Whenever possible theory is presented together with its applications and practical subjects are presented with good theoretical background (a good example is a module on Computer-based Process Control which is practically-oriented but requires good mathematical background). All the mentioned modules are compulsory, because they present knowledge and develop skills that every computer systems engineer should have. Only in the last semester there are two elective subjects. Last time from over 30 propositions students have chosen only 3 subjects: Design and Management of Computer Networks, Advanced Database Systems, and Visual Programming (to run a module at least 40 students are required). Also in the last semester there is a module on Applications of Information Technology. Students are offered a number of modules presenting various applications of IT (e.g. Application of IT in Medicine or Application of IT in Chemistry) and they choose one of them. From the point of view of the MSE programme it is very important that during last semester there is a Team Project and our students are working on quite big projects in teams consisting of about 5 people. The list of modules for the Bachelor Degree Programme in CS is presented in Table 1.

Semester 1:

Introduction to programming

Introduction to computing science

Information technology tools

Electronics

Mathematics I

Introduction to law and economy

Semester 2:

Algorithms and data structures

Low-level programming

Operating systems I

Digital technology circuits

Introduction to numerical methods

Mathematics II

Electronics II

English classes

Semester 3:

Operating systems II

Architecture of computing systems

Software engineering I

Operational research Object-oriented programming

Declarative programming

Basics of accounting and finance

English classes

Semester 4:

Databases I

Computer networks I

Formal languages and compilers design

Computer graphics

Introduction to artificial intelligence

Software engineering II

Computer-based process control

English classes

Semester 5:

Computer networks II

Databases II

Parallel processing

Distributed processing

Decision support systems

Human-computer interaction

Cryptography

English classes

Semester 6:

Industrial information systems

Applications of information technology

Team project

First elective subject

Second elective subject

Table 1. List of modules for the Bachelor Degree Programme in Computing Science.

Return to the page top


3. Overview of the MSE Programme.


A Master Degree in Software Engineering has been proposed to support the development of the profession of Software Engineering in Poland. The degree is a postgraduate qualification which incorporates:

The programme lasts for 4 semesters and the last semester is devoted to writing a master thesis. All the courses are taught in English.

The programme focuses on preparing engineers to work with new science and technology throughout their careers and helping them become leaders of software teams. Programme components are as follows:

Moreover, students are offered some outside-lesson-hours activities such as a student conference on software engineering.

Applicants to this programme should normally have bachelor degree in computing science or equivalent with a substantial software component. The initial intake for 1998/99 was only 22 students, although the number of applicants was much greater. As a result, the students enrolled to this programme are very good. Their average grade is 4.50 (the scale is from 2.0 to 5.0 and 5.0 means “very good”) and it is the highest average grade among all the eight Master Degree programmes in computing available at Poznan University of Technology.

The two-year programme consists of a series of modules in the first 3 semesters. The last semester is devoted to writing a master thesis. Each module (mandatory or optional) consists of 60 in-class study units (lectures, tutorials, seminars etc.) per semester (each semester is 15 weeks long). Each module is allocated 4 credits per semester, including industry internship and diploma seminar. The total credits required for the award of the Master Degree is 68.

The following courses are available in each semester:

I semester:

  1. Software development studio (Core)
  2. Models of software systems (Core)
  3. Management of software development (Core)
  4. Personal software process (Optional)
  5. Applied psychology (Optional)

II semester:

  1. Software development studio (Core)
  2. Methods of software development (Core)
  3. Analysis of software artefacts (Core)
  4. Combinatorial optimisation (Optional)
  5. Interpersonal communication (Optional)
  6. Industry internship (Mandatory)

III semester:

  1. Software development studio (Core)
  2. Architecture of software systems (Core)
  3. Real-time systems (Core)
  4. Human-computer interaction(Optional)
  5. Interpersonal communication (Optional)

IV semester:

  1. Diploma seminar (Core)

In following sections all the courses are shortly described and appropriate readings are suggested.

Return to the page top


4. Software development studio.


The idea of teaching software development through studio is getting more and more popular. Software development studio resembles a small software house and gives students a chance to work on quite a complex software and use knowledge presented to them during different courses. Recently two different approaches to studio organisation have been presented. CMU’s studio [GGT97] lasts for one year. Each student is assigned a mentor, which is a member of the technical staff at CMU’s Software Engineering Institute. During project life they play different roles, including technical contributors. In fall 1995 a similar studio was organised at MIT [Kuh98]. However, the focus was on architectural design; implementation and maintenance issues were of secondary importance (sometimes students were advised not to think about coding). Although students met together and discussed their ideas, the work was a personal work, not teamwork.

The aim of the software development studio at Poznan University of Technology is to enable students of Master of Software Engineering (MSE) Programme to develop their managerial skills. The studio lasts for 3 semesters (about 17 months). Each pair of MSE students will be assigned a project and will manage a team of 4 students of the third year, who are working towards their bachelor degree (thus, together there will be 6 students working on a project). Detailed design, code development and testing will be left to third year students. MSE students will be responsible for choosing a project, requirements acquisition and analysis, conceptual design, planning, hiring technical staff from third year students, project control, user training, software quality, and maintenance. Below there is a detailed description of the studio activities:

Semester 1: MSE students choose projects (project descriptions are rough, ambiguous and open-ended), elaborate the requirements and conceptual design, estimate effort, plan the work and form a team choosing four students of the third year of study.

Semester 2: This semester is devoted to detailed design, implementation, testing, and integration. Six people are working together.

Vacations: MSE students are on industry internship (up to 3 months). They perform on-field testing of the system in a real industry setting, train prospective users, fix bugs (four undergraduate students are hardly available, especially when managers decided to accept the software).

Semester 3: Software maintenance is exercised. The team of four students who had worked on the project has disappeared. The managers are almost alone. Now the quality of software and quality of documentation are getting visible and they will pay managers back for their carelessness.

It is important to notice, that all the projects should have real clients but they should not be on the critical path of a company or organisation.

For each project there is one mentor. Unlike at CMU, our mentors come from industry, not from university. They play two roles: they represent customers and they are consultants to the projects. We hope that industry mentors will foster university/industry co-operation. Moreover, this should give industry people an opportunity to get to know the MSE Programme much better and propose possible improvements.

Return to the page top


5. Human factors.


Leaders have to work with people. Because of this we have decided to introduce two subjects: Applied Psychology and Interpersonal Communication (the latter last for two semesters). During Applied Psychology course students discuss such topics as emotional intelligence [Seg97], neuro-linguistics programming (NLP), Silva’s method, getting organised [Gle94], team dynamics, interpersonal conflicts, leadership principles [Cov94], great leaders - case studies [Ada97]. Interpersonal Communication is taught by English teachers. They speak English much better than any other staff member involved in MSE programme. Students will have a chance to improve their communication skill in written and oral English. Discussed topics include among others body language, negotiations, interviewing, writing CV, formal and informal writings, project preparation and presentation, using Power Point, electronic publishing tools.

Return to the page top


6. Financial aspects of software development.


During Bachelor Degree Programme the students have two subjects concerning economy:

However, it seems not enough for future leaders of software teams. A separate subject would be necessary which would cover the following topics:

There is a very good and very nice textbook discussing all those issues, written by C.T. Horngren, G. Foster and S.M. Datar from Stanford University [HFD97]. Another interesting text that could be of interest to our students is [HS97]. Unfortunately, at the moment we do not have such a subject in our programme. To help this, students will be advised to read textbook [HFD97] and discuss the problems during outside-lesson-hours meetings. Such an approach has some advantages: the students will get a flavour of what life-long learning means and it will be another opportunity for them to master their communication and managerial skill.

Return to the page top


7. Technical subjects.


Technical subjects are based on CMU’s Master of Software Engineering Programme [GGT97, WWW]. CMU has a lot of experience in educating software engineers, so it is reasonable to use their programme as a starting point. However, some localisation is always necessary. In this Section we shortly describe all the mandatory courses of technical nature.

Return to the page top


8. Out-of-class activities.


In our MSE programme out-of-class activities play an important role in education process, as they give a chance to exercise activity and communication skills. It is important that all those activities are not mandatory. The main out-of-class activities are presented below.

Return to the page top


9. Conclusions.


The presented MSE programme is a result of co-operation with Dublin City University (the author was involved in designing a similar program at DCU in 1996 [DCU96]) and with other universities within Thematic Network in Computing. The programme starts on October 1, 1998. We will be satisfied if 50% of our students will get managerial positions within two years after their studies. We hope that those who will not get such positions within that period will be at least very good team members, understanding not only technical aspects of software development but also human and financial ones.

Return to the page top


10. References.


  1. [Ada97] J. Adair, Effective Leadership Masterclass, Pan Books, London, 1997.
  2. [Bach97] J. Bach, SE Education: We’re on Our Own, IEEE Software, Nov./Dec. 1997, pp. 26,28.
  3. [BMM97] M. Ben-Menachem, G.S. Marliss, Software Quality, International Thomson Computer Press, Boston, 1997.
  4. [BJ98] J. Boerstler, O. Johansson, The Students Conference - A Tool for the Teaching of Research, Writing, and Presentation Skills, 6th Annual Conference on the Teaching of Computing & 3rd Annual Conference on Integrating Technology into Computer Science Education ITiCSE’98, Dublin City University, 1998, ACM, pp. 28-31.
  5. [BW95] A. Burns, A. Wellings, HRT-HOOD: A Structured Design Method for Hard Real-time Ada Systems, Elsevier, Amsterdam, 1995.
  6. [Con98] J. Condon, The Irish Software Industry and Education, 6th Annual Conference on the Teaching of Computing & 3rd Annual Conference on Integrating Technology into Computer Science Education ITiCSE’98, Dublin City University, 1998, ACM, pp.1-4.
  7. [Cov94] S.R. Covey, The Seven Habits of Highly Effective People, Simon & Schuster, London, 1994.
  8. [DCU96] Graduate Diploma in Software Engineering, School of Computer Applications, Dublin City University, Dublin, June 1996.
  9. [EP98] H. Eriksson, M. Penker, UML Toolkit, John Wiley & Sons, New York, 1998.
  10. [FS97] M. Fowler, K. Scott, UML Distilled: Applying the Standard Object Modelling Language, Addison-Wesley, Reading, MA, 1997.
  11. [GGT97] D. Garlan, D.P. Gluch, J.E. Tomayko, Agents of change: educating software engineering leaders, Computer, vol. 30, No. 11 (Nov. 1997), pp. 59-65.
  12. [GG93] T. Gilb, D. Graham, Software Inspection, Addison-Wesley, 1993.
  13. [Gle94] K. Gleeson, The Personal Efficiency Program, John Wiley & Sons, New York, 1994.
  14. [Ha87] D. Harel, Statecharts: A Visual Formalism for Complex Systems, Sci. of Computer Programming, 8 (1987), pp. 231-274.
  15. [Har96] A. Harry, Formal Methods Fact File: VDM and Z, Wiley & Sons, Chichester, 1996.
  16. [Hil98] T.B. Hilburn, D. J. Bagert, S. Mengel, D. Oexmann, Software Engineering Across Computing Curricula, 6th Annual Conference on the Teaching of Computing & 3rd Annual Conference on Integrating Technology into Computer Science Education ITiCSE’98, Dublin City University, 1998, ACM, pp. 117-121.
  17. [HJ95] M.G. Hinchey, S.A. Jarvis, Concurrent Systems: Formal Development in CSP, McGraw-Hill, 1995.
  18. [Ho85] C.A.R. Hoare, Communicating Sequential Processes, Prentice-Hall International, 1985.
  19. [HFD97] C.T. Horngren, G. Foster, S.M. Datar, Cost Accounting: A Managerial Emphasis, 9th Edition, Prentice Hall International, London, 1997.
  20. [HS97] C.T. Horngren, G.L. Sundem, Introduction to Management Accounting, 9th Edition, Prentice Hall, 1997.
  21. [JR91] K. Jensen, G. Rozenberg (eds.), High-level Petri Nets: Theory and Application, Springer-Verlag, 1991.
  22. [KS98] G. Kotonya, I. Sommerville, Requirements Engineering: Processes and Techniques, John Wiley & Sons, Chichester, 1998.
  23. [Kuhn98] S. Kuhn, The Software Design Studio: An Exploration, IEEE Software, March/April 1998, pp. 65-71.
  24. [Nis97] N. Nissanke, Realtime systems, Prentice Hall, London, 1997.
  25. [Per95] W. Perry, Effective Methods for Software Testing, John Wiley & Sons, New York, 1995.
  26. [Pet77] J.L. Peterson, Petri Nets, ACM Computing Surveys, Sept. 1997.
  27. [Rak97] S. Rakitin, Software Verification and Validation: A Practitioner’s Guide, Artech House, Boston, 1997.
  28. [Rop94] M. Roper, Software Testing, McGraw-Hill, London, 1994.
  29. [San] K. Sandoe, Split Ends: Labor Shortage and the CS-IS Divide, IEEE Software, Nov./Dec. 1997, pp. 19-21.
  30. [Seg97], J. Segal, Raising Your Emotional Intelligence: A Practical Guide, Henry Holt & Co., New York, 1997.
  31. [SG96] M. Shaw, D. Garlan, Software Architecture: Perspective on an Emerging Discipline, Prentice Hall, Upper Saddle River, New Jersey, 1996.
  32. [Som95] I. Sommerville, Software Engineering, Addison-Wesley, Harlow, England, 1995.
  33. [Tak96] A.A. Takang, P.A. Grubb, Software Maintenance, Concepts and Practice, International Thomson Computer Press, London, 1996.
  34. [V97] H. van Vliet, Software Engineering: Principles and Practice, John Wiley & Sons, Chichester, 1997.
  35. [WWW] http://www.cs.cmu.edu/afs/cs.cmu.edu/project/mse/www/
  36. [Zah98] S. Zahran, Software Process Improvement, Addison-Wesley, Harlow, England, 1998.

Return to the page top