Real-World Software Projects For Computer Science
Real-World Software Projects For Computer Science
Real-World Software Projects For Computer Science
net/publication/349351752
CITATION READS
1 2,722
2 authors, including:
SEE PROFILE
All content following this page was uploaded by Anh Nguyen Duc on 23 March 2022.
The right of Varun Gupta and Anh Nguyen-Duc to be identified as authors of this work has
been asserted by them in accordance with sections 77 and 78 of the Copyright, Designs and
Patents Act 1988.
Reasonable efforts have been made to publish reliable data and information, but the
author and publisher cannot assume responsibility for the validity of all materials or the
consequences of their use. The authors and publishers have attempted to trace the copyright
holders of all material reproduced in this publication and apologize to copyright holders if
permission to publish in this form has not been obtained. If any copyright material has not
been acknowledged, please write and let us know so we may rectify in any future reprint.
Except as permitted under U.S. Copyright Law, no part of this book may be reprinted,
reproduced, transmitted, or utilized in any form by any electronic, mechanical, or other
means, now known or hereafter invented, including photocopying, microfilming, and
recording, or in any information storage or retrieval system, without written permission
from the publishers.
For permission to photocopy or use material electronically from this work, access www.
copyright.com or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood
Drive, Danvers, MA 01923, 978-750-8400. For works that are not available on CCC please
contact [email protected]
Typeset in Times
by codeMantra
Contents
Authors ix
1 Introduction 1
1.1 Motivation 1
1.2 Fundamental elements of project-based learning 4
1.3 Learning objectives 5
1.4 Challenges when designing a PBL course 8
1.5 Incremental project-based learning 8
1.6 Target audience and structure 10
3 Project planning 31
3.1 Introduction to project planning 31
3.2 Scope planning 32
3.3 Time planning 35
3.4 Risk planning 36
3.5 Communication planning 39
v
vi Contents
4 Project execution 51
4.1 Problem space vs. solution space 51
4.2 Teamwork monitoring 53
4.3 Process monitoring 56
4.4 Software Engineering 58
4.4.1 Requirement Engineering 59
4.4.2 Design 60
4.4.3 Implementation 62
4.4.4 Testing 63
5 Project closing 67
5.1 Project closing 67
5.1.1 Project delivery 68
5.1.2 Final presentation 68
5.1.3 Team reflection 69
5.2 Report guideline 70
5.2.1 Cover page 70
5.2.2 Abstract 71
5.2.3 Indexing pages 71
5.2.4 Introduction 72
5.2.5 Project planning 73
5.2.6 Prestudy of problem space vs. solution space 73
5.2.7 Software development methods 74
Contents vii
7 Dissemination of results 87
7.1 Introduction 87
7.2 Publication venues 88
7.3 Article types and formats 91
7.4 Article type, suggested venues academic year wise 98
Dr. Varun Gupta received his Ph.D. and Master of Technology (By Research)
in Computer Science and Engineering from Uttarakhand Technical University
and Bachelor of Technology (Hon’s) from Himachal Pradesh University,
respectively. He also holds an MBA (General) from Pondicherry University
(A Central University).
He is working as postdoctoral researcher with Universidade da Beira
Interior, Portugal. He is also visiting postdoctoral researcher, School of
Business, FHNW University of Applied Sciences and Arts Northwestern
Switzerland. He was honorary research fellow of the University of Salford,
Manchester, United Kingdom (2018 to 2021).
He is associate editor of IEEE Access (Published by IEEE, SCIE
Indexed with 4.098 impact factor), associate editor of International Journal
of Computer Aided Engineering and Technology (Published by Inderscience
Publishers, Scopus indexed), associate editor of IEEE Software Blog,
associate editor of Journal of Cases on Information Technology (JCIT)
(Published by IGI Global and Indexed by Emerging Sources Citation Index
(ESCI) & SCOPUS) and former editorial team member of British Journal
of Educational Technology (BJET) (Published by Wiley publishers, SCIE
Indexed with 2.729 impact factor). He had been guest editor of many spe-
cial issues published/ongoing with leading international journals and editor
of many edited books to be published by IGI Global and Taylor & Francis
(CRC Press).
He had organized many special sessions with Scopus Indexed
International Conferences worldwide, proceedings of which were pub-
lished by Springer, IEEE, and Elsevier. He is serving as reviewer of IEEE
Transactions on Emerging Topics in Computational Intelligence. His area
of interest is Evidence-Based Software Engineering, Evolutionary Software
Engineering (focusing on Requirement Management), Business Model
Innovation, and Innovation Management.
ix
x Authors
1.1 MOTIVATION
Software engineering (SE) is one of the most demanding jobs in industry
nowadays and its demand keeps on increasing. The software industry expects
the engineering institutes and universities in general to produce students with
industry-compatible competence and sound theoretical knowledge and highly
practical skills. However, educating students to meet industry’s demands has
always been a challenge of ensuring practical competence while still provid-
ing future-proof research-based knowledge. In at least two decades from the
report of Lethbridge (Lethbridge 1998), there exists a gap between university
graduates’ abilities and industry expectations, including both technical and
nontechnical skills. Recent research has found that Computer Science and
Engineering (CS&E) graduates still experience much difficulty transitioning
into their new roles in industry (Valstar et al. 2020). Furthermore, students
should be aware of recent trends in the software industry, such as continu-
ous development and DevOps (Chen 2015, Fitzgerald and Stol 2014, 2017),
Lean startup (Ries 2011, Nguyen-Duc et al. 2020), digital transformation,
etc., which are likely to present their working contexts in the future.
1
2 Real-World Software Projects
Supervision Project
and Lecture evaluation
Team
assignment
Customers
and
projects
Each group is given a task from a client that is to be carried out as a project.
All phases of a development project are to be covered: problem discovery,
requirements specification, solution design, implementation, testing, and
evaluation. It is important that the groups work in close collaboration with
actual customers. The groups will hand in a project report and give a final
presentation and demonstration of a runnable system to the customer and the
censor.
In a particular setting, i.e., a course that teaches Agile development or
a course that teaches software security, the learning objectives can be made
more detailed. Three major areas of learnings are expected after completing
the course: (1) specialized knowledge, (2) soft skill, and (3) teamwork. A proj-
ect course might include some or all detailed objectives as below:
Regarding Project Management, the team should be able to:
Regarding Teamwork, after the course, the students should be able to:
changing nature of the software artifacts due to market dynamisms. The PBL
is not one-time activity imparted in one course, as one capstone project, or as
outcome of individual courses. A project-based course should offer a setting
that students feel interested and motivated to produce the intended outcomes.
The motivation could be intrinsic or extrinsic. If students are intrinsically
motivated, then providing them good experience with the real projects, mak-
ing them able to transform their ideas into working software, simulating
real software development environment in academic settings (for instance,
allowing students to have real interviews with the real customers), etc., could
be meaningful tools to foster motivation. Extrinsically motivated students
require the project team to set aside the marks, grades, and other extrinsic
motivation factors to motivate the students to work in the teams to complete
the projects. The good mix of intrinsic and extrinsic motivation factors could
be a booster for fostering student involvement in PBL.
Further, the students these days have interests that are interdisciplinary
in nature. For instance, they want to solve interdisciplinary problems (for
instance social problems) using computational solutions. Implementing this
project requires strong collaboration among multiple specializations and may
be difficult to be implemented in “one go” as the students have to gain exper-
tise in multiple interdisciplinary fields. In these circumstances, the students
could start the project early and could implement it in an incremental way,
with each increment being continuously innovated with the new learning stu-
dents got with the previous project implementation.
In academic portfolio, education programs have more than one project-
based course which basically overlaps with each other. For instance, bache-
lor’s degree in computer science may offer programming with data structures
in C and programming in Java. These two courses overlap except that they
are based on two different languages. The students will find it an ambiguous
experience working on these project-based courses. To avoid this, these two
projects could add to the incremental learning experience of the students. To
accomplish this, students first implement their projects using C language in
a particular semester. In the following semester, they try to innovate their
project using Java language to take advantage of the features specific to this
language and enhance the value to the customers. This avoids the repeated
learning by continuously fostering the enhanced learning experience of the
students. From a program perspective, coordination among these courses to
make them enhanced learning iterations will make new learning for students.
In an incremental project, the students continuously search for the inno-
vative ideas that could enhance the value to the customers (even though the
customer is internal to the academic institution). The product is continuously
innovated, and such innovation (generating ideas and their implementa-
tion) provides real experiences to the students. The innovation may not have
10 Real-World Software Projects
positive impact in the market but as such projects are implemented in the
academic settings, they bring a lot of learning to the students.
This book is structured into three sections. Chapter 1 contains the introduc-
tion to the book, from where you see why you should read this book and
what you can learn from it. Chapter 2 presents common building blocks for a
1 • Introduction 11