Most software development is carried out by teams of software engineers working collaboratively to achieve the desired goal. Consequently software development education not only needs to develop a student's ability to write programs that can be easily comprehended by others and be able to comprehend programs written by others, but also the ability to write programs with others. However, the academic curriculum hardly puts any structured emphasis on nurturing these competencies. Hence, collaboration in program development needs special attention in our engineering curriculum. For this, we propose a three-staged model for collaborative program development, termed as the Collaborative Quadruple Programming, which is an extension of the collaborative pair programming approach proposed earlier by the second author. The proposed model combines all the levels of collaborative engagements in the four-dimensional taxonomy of pedagogic engagements in software development education proposed by the second author.
{"title":"Learning to Write Programs with Others: Collaborative Quadruple Programming","authors":"R. Arora, S. Goel","doi":"10.1109/CSEET.2012.27","DOIUrl":"https://doi.org/10.1109/CSEET.2012.27","url":null,"abstract":"Most software development is carried out by teams of software engineers working collaboratively to achieve the desired goal. Consequently software development education not only needs to develop a student's ability to write programs that can be easily comprehended by others and be able to comprehend programs written by others, but also the ability to write programs with others. However, the academic curriculum hardly puts any structured emphasis on nurturing these competencies. Hence, collaboration in program development needs special attention in our engineering curriculum. For this, we propose a three-staged model for collaborative program development, termed as the Collaborative Quadruple Programming, which is an extension of the collaborative pair programming approach proposed earlier by the second author. The proposed model combines all the levels of collaborative engagements in the four-dimensional taxonomy of pedagogic engagements in software development education proposed by the second author.","PeriodicalId":385043,"journal":{"name":"2012 IEEE 25th Conference on Software Engineering Education and Training","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-04-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131343756","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The team and teamwork are important parts of project management and software engineering, therefore they should be practiced and encouraged in university courses and teachers should pay attention to this topic. In this paper we discuss the importance of teamwork and its evaluation in our software engineering courses, then the goals of successful teamwork evaluation are presented. We then show several techniques which we used to evaluate teamwork and to communicate the team situation to the students.
{"title":"Evaluation of Student Teamwork","authors":"Ondrej Macek, M. Komarek","doi":"10.1109/CSEET.2012.23","DOIUrl":"https://doi.org/10.1109/CSEET.2012.23","url":null,"abstract":"The team and teamwork are important parts of project management and software engineering, therefore they should be practiced and encouraged in university courses and teachers should pay attention to this topic. In this paper we discuss the importance of teamwork and its evaluation in our software engineering courses, then the goals of successful teamwork evaluation are presented. We then show several techniques which we used to evaluate teamwork and to communicate the team situation to the students.","PeriodicalId":385043,"journal":{"name":"2012 IEEE 25th Conference on Software Engineering Education and Training","volume":"181 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-04-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124558640","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
This Work in Progress report presents an educational software tool for testing abstract data types implemented in C++ against formal algebraic specifications written in Maude, a formal specification language based on rewriting logic that allows the specification of abstract data types in a clear and concise manner. Maude specifications are executable, which provides two advantages: firstly, we can test our specifications and, secondly, we can obtain the results of the test cases automatically. Our software testing tool is fully integrated in the Eclipse programming environment and is platform-independent. We have developed an Eclipse plug-in that calls the Maude system to generate the test cases and translates them into a sequence of C++ instructions. The C++ instructions are compiled and executed, and the results are compared with the results obtained from the execution of the formal algebraic specification. Thus, the learning tool allows Software Engineering students to test their own implementations and correct their errors, encouraging the use of formal methods in their developments and resulting in an improved software quality.
{"title":"A Software Testing Tool for the Verification of Abstract Data Type Implementations from Formal Algebraic Specifications","authors":"Rafael del Vado Vírseda","doi":"10.1109/CSEET.2012.16","DOIUrl":"https://doi.org/10.1109/CSEET.2012.16","url":null,"abstract":"This Work in Progress report presents an educational software tool for testing abstract data types implemented in C++ against formal algebraic specifications written in Maude, a formal specification language based on rewriting logic that allows the specification of abstract data types in a clear and concise manner. Maude specifications are executable, which provides two advantages: firstly, we can test our specifications and, secondly, we can obtain the results of the test cases automatically. Our software testing tool is fully integrated in the Eclipse programming environment and is platform-independent. We have developed an Eclipse plug-in that calls the Maude system to generate the test cases and translates them into a sequence of C++ instructions. The C++ instructions are compiled and executed, and the results are compared with the results obtained from the execution of the formal algebraic specification. Thus, the learning tool allows Software Engineering students to test their own implementations and correct their errors, encouraging the use of formal methods in their developments and resulting in an improved software quality.","PeriodicalId":385043,"journal":{"name":"2012 IEEE 25th Conference on Software Engineering Education and Training","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-04-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124826626","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The importance of delivering software process courses to software engineering students has been more and more recognized in China in recent years. However, students usually cannot fully appreciate the value of software process courses by only learning methodology and principle in the classroom. Therefore, a process-specific project course was designed to fill the gap between the software process theoretical and experiential knowledge. But to design the course also has many challenges, such as: to provide enough guideline for students; to monitor every process task; to gather and use the process data, especially considering the large class size. We designed a summer school 6-weeks project course in Nanjing University based on TSP (Team Software Process) methodology. To support the course, we developed a supporting tool, the Advance Process Improvement Solution (APIS), which can record and use historical data, support teamwork, and provide process data to both students and teachers in real time. This paper describes the methodology, course organization, supporting tool, and evaluation in details. Based on our two years' experience, this course plays a key role for SE students to better understand software process.
{"title":"Delivering Software Process-Specific Project Courses in Tertiary Education Environment: Challenges and Solution","authors":"Guoping Rong, Dong Shao","doi":"10.1109/CSEET.2012.20","DOIUrl":"https://doi.org/10.1109/CSEET.2012.20","url":null,"abstract":"The importance of delivering software process courses to software engineering students has been more and more recognized in China in recent years. However, students usually cannot fully appreciate the value of software process courses by only learning methodology and principle in the classroom. Therefore, a process-specific project course was designed to fill the gap between the software process theoretical and experiential knowledge. But to design the course also has many challenges, such as: to provide enough guideline for students; to monitor every process task; to gather and use the process data, especially considering the large class size. We designed a summer school 6-weeks project course in Nanjing University based on TSP (Team Software Process) methodology. To support the course, we developed a supporting tool, the Advance Process Improvement Solution (APIS), which can record and use historical data, support teamwork, and provide process data to both students and teachers in real time. This paper describes the methodology, course organization, supporting tool, and evaluation in details. Based on our two years' experience, this course plays a key role for SE students to better understand software process.","PeriodicalId":385043,"journal":{"name":"2012 IEEE 25th Conference on Software Engineering Education and Training","volume":"83 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-04-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133877866","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The AMEISE (A Media Education Initiative for Software Engineering) approach focuses on the simulation of software project management processes. Based on Stuttgart University's SESAM (Software Engineering Simulation by Animated Models), the AMEISE tool-set allows for repeatedly experiencing the complexity of software project management within a game-like simulation environment.
{"title":"Teaching Software Project Management using Simulations - The AMEISE Environment: from Concepts to Class Room Experience","authors":"A. Bollin, E. Hochmüller, L. Samuelis","doi":"10.1109/CSEET.2012.33","DOIUrl":"https://doi.org/10.1109/CSEET.2012.33","url":null,"abstract":"The AMEISE (A Media Education Initiative for Software Engineering) approach focuses on the simulation of software project management processes. Based on Stuttgart University's SESAM (Software Engineering Simulation by Animated Models), the AMEISE tool-set allows for repeatedly experiencing the complexity of software project management within a game-like simulation environment.","PeriodicalId":385043,"journal":{"name":"2012 IEEE 25th Conference on Software Engineering Education and Training","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-04-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121130132","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
This paper describes the development and implementation of a cloud computing-based remote collaborative system for performing practices in basic IT software engineering courses. In cloud computing environment, the features of remote collaborative engineering practices is not only the abundant resources sharing. The development of virtual laboratory provides users virtual software development environment. Anyone can upload code and run it in this virtual environment. More important, students can authorize his team member, such as an expert, to debug their code remotely. A web interface provides these students visual debug process dynamically. Finally, we discuss the experience gained from this project with the hope of being a reference for others in the IT education community.
{"title":"Research on Remote Collaborative Engineering Practices for Master of Software Engineering Based on Cloud Computing Environment","authors":"Qing Ding, Xi Li, Ye Liu, Zhu Shi","doi":"10.1109/CSEET.2012.12","DOIUrl":"https://doi.org/10.1109/CSEET.2012.12","url":null,"abstract":"This paper describes the development and implementation of a cloud computing-based remote collaborative system for performing practices in basic IT software engineering courses. In cloud computing environment, the features of remote collaborative engineering practices is not only the abundant resources sharing. The development of virtual laboratory provides users virtual software development environment. Anyone can upload code and run it in this virtual environment. More important, students can authorize his team member, such as an expert, to debug their code remotely. A web interface provides these students visual debug process dynamically. Finally, we discuss the experience gained from this project with the hope of being a reference for others in the IT education community.","PeriodicalId":385043,"journal":{"name":"2012 IEEE 25th Conference on Software Engineering Education and Training","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-04-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128461687","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Due to the more and more intense competition in software market, usability is gaining more and more attention. For software engineering students, learning and mastering human-computer interaction knowledge can help them design software products with higher usability. In this paper, we describe a preliminary experience of teaching HCI to undergraduate software engineering students in Nanjing University (NJU), including curriculum design, course implementation and improvements based on some feedback from students. We believe that this information is useful at how to teach HCI in a practical way, and we hope it can serve as guidance for other teachers struggling with similar course design issues.
{"title":"An Experience of Teaching HCI to Undergraduate Software Engineering Students","authors":"Guihuan Feng, B. Luo","doi":"10.1109/CSEET.2012.25","DOIUrl":"https://doi.org/10.1109/CSEET.2012.25","url":null,"abstract":"Due to the more and more intense competition in software market, usability is gaining more and more attention. For software engineering students, learning and mastering human-computer interaction knowledge can help them design software products with higher usability. In this paper, we describe a preliminary experience of teaching HCI to undergraduate software engineering students in Nanjing University (NJU), including curriculum design, course implementation and improvements based on some feedback from students. We believe that this information is useful at how to teach HCI in a practical way, and we hope it can serve as guidance for other teachers struggling with similar course design issues.","PeriodicalId":385043,"journal":{"name":"2012 IEEE 25th Conference on Software Engineering Education and Training","volume":"428 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-04-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116540441","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
This paper presents the initial results of a study of the evolution of students' knowledge of software engineering from the beginning to the end of a master's degree curriculum in software engineering. Students were presented with a problem involving the initiation of a complex new project at the beginning of the program and again at the end of the program's formal coursework. After considering the problem each time, students were asked what questions they had as the senior software engineer, which software engineering processes need to be put into place, and to enumerate any other issues they saw. Statistical analysis indicates that their enumeration of software processes in the post condition is very significantly richer than in the pre condition. They also gave significantly more responses about requirements, design, and engineering management in the post condition. Qualitative analysis suggests that the students' questions in these areas were also more sophisticated in the post condition, suggesting, in accordance with the theory of "transfer as preparation for future learning," that they are moving along a trajectory towards expertise.
{"title":"Changes in Transferable Knowledge Resulting from Study in a Graduate Software Engineering Curriculum","authors":"R. Bareiss, Todd Sedano, Edward P. Katz","doi":"10.1109/CSEET.2012.17","DOIUrl":"https://doi.org/10.1109/CSEET.2012.17","url":null,"abstract":"This paper presents the initial results of a study of the evolution of students' knowledge of software engineering from the beginning to the end of a master's degree curriculum in software engineering. Students were presented with a problem involving the initiation of a complex new project at the beginning of the program and again at the end of the program's formal coursework. After considering the problem each time, students were asked what questions they had as the senior software engineer, which software engineering processes need to be put into place, and to enumerate any other issues they saw. Statistical analysis indicates that their enumeration of software processes in the post condition is very significantly richer than in the pre condition. They also gave significantly more responses about requirements, design, and engineering management in the post condition. Qualitative analysis suggests that the students' questions in these areas were also more sophisticated in the post condition, suggesting, in accordance with the theory of \"transfer as preparation for future learning,\" that they are moving along a trajectory towards expertise.","PeriodicalId":385043,"journal":{"name":"2012 IEEE 25th Conference on Software Engineering Education and Training","volume":"174 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-04-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116435836","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The scope of software engineering has become enormous and impossible to teach it in its entirety. Hence, educational programs should focus on a subset of its body of knowledge. In this paper, we suggest Reuse and Progress Driven Software Engineering Educational Method (RaPSEEM). The method aids in organizing the software engineering body of knowledge when designing specific software engineering programs.
{"title":"A Method for Designing Software Engineering Educational Programs","authors":"M. Kajko-Mattsson","doi":"10.1109/CSEET.2012.34","DOIUrl":"https://doi.org/10.1109/CSEET.2012.34","url":null,"abstract":"The scope of software engineering has become enormous and impossible to teach it in its entirety. Hence, educational programs should focus on a subset of its body of knowledge. In this paper, we suggest Reuse and Progress Driven Software Engineering Educational Method (RaPSEEM). The method aids in organizing the software engineering body of knowledge when designing specific software engineering programs.","PeriodicalId":385043,"journal":{"name":"2012 IEEE 25th Conference on Software Engineering Education and Training","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-04-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133847681","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Hiding critical information has resulted in disastrous failures of some major software projects. This paper investigates, using a subset of Keil's test, how graduates (70% of them with work experience) from different cultural backgrounds who are enrolled in a postgraduate course on global software development would handle negative information that is critical in a project. The subjects were mainly from Europe and Asia. The results showed that the subjects are highly likely to report critical information to their immediate supervisors (t(36)=-11, p<;0.0005), but are undecided on whether they would take the matter further up the organisational hierarchy if the supervisor ignored their report. There was no significant difference between participants of different regions, or between those with and without work experience. The consequences of negative information not reaching the level where remedial actions can be taken could be serious in software projects. The results of this experiment point to the need to incorporate in software engineering curriculum the teaching of the ethical responsibility of effective communication of bad news.
{"title":"Will They Report It? Ethical Attitude of Graduate Software Engineers in Reporting Bad News","authors":"A. Sajeev, I. Crnkovic","doi":"10.1109/CSEET.2012.31","DOIUrl":"https://doi.org/10.1109/CSEET.2012.31","url":null,"abstract":"Hiding critical information has resulted in disastrous failures of some major software projects. This paper investigates, using a subset of Keil's test, how graduates (70% of them with work experience) from different cultural backgrounds who are enrolled in a postgraduate course on global software development would handle negative information that is critical in a project. The subjects were mainly from Europe and Asia. The results showed that the subjects are highly likely to report critical information to their immediate supervisors (t(36)=-11, p<;0.0005), but are undecided on whether they would take the matter further up the organisational hierarchy if the supervisor ignored their report. There was no significant difference between participants of different regions, or between those with and without work experience. The consequences of negative information not reaching the level where remedial actions can be taken could be serious in software projects. The results of this experiment point to the need to incorporate in software engineering curriculum the teaching of the ethical responsibility of effective communication of bad news.","PeriodicalId":385043,"journal":{"name":"2012 IEEE 25th Conference on Software Engineering Education and Training","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-04-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132804200","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}