ABSTRACT
Software engineering courses and internships aim to equip students with skills that are vital in the software engineering industry. Millennial students are expected to emerge from an undergraduate education ready to step directly into software developer positions and succeed. And yet, for a variety of reasons, these experiences often fail to adequately prepare students for the expectations of the industry. The capabilities of a typical undergraduate simply do not align well with the needs of the industry, resulting in disappointed employers, unhappy employees, and a poor reputation for the quality of a higher education in software engineering. This paper describes the Student Software Developers Program, where students are developing real-world applications that solve business needs for departments on campus, leveraging those departments as customers. Students are immersed in the program for a full year, providing them with adequate time to experience both the depth and breadth of skills desired by the curriculum and by industry. Our evaluation shows the program provided students with confidence in their engineering abilities, a wealth of hard and soft skills valuable in industry, all while learning software engineering in a way that aligns with the values of their generation.
- Atlassian. 2018. Gitflow Workflow. (2018). Retrieved February 2, 2018 from https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflowGoogle Scholar
- Albert Bandura. 2006. Guide for constructing self-efficacy scales. Self-efficacy beliefs of adolescents 5, 1 (2006), 307--337.Google Scholar
- Kent Beck, Mike Beedle, Arie Van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, et al. 2001. Manifesto for agile software development. (2001).Google Scholar
- DJ Besemer, KS Decker, DW Politi, and JF Schnoor. 1989. A synergy of industrial and academic education. In Issues in software engineering education. Springer, 399--413. Google ScholarDigital Library
- Tebring Daly. 2011. Minimizing to maximize: an initial attempt at teaching introductory programming using Alice. Journal of Computing Sciences in Colleges 26, 5 (2011), 23--30. Google ScholarDigital Library
- Remco Matthijs Dijkman and Stephanus Maria Mathias Joosten. 2002. Deriving use case diagrams from business process models. (2002).Google Scholar
- Scott Freeman, Sarah L Eddy, Miles McDonough, Michelle K Smith, Nnadozie Okoroafor, Hannah Jordt, and Mary Pat Wenderoth. 2014. Active learning increases student performance in science, engineering, and mathematics. Proceedings of the National Academy of Sciences 111, 23 (2014), 8410--8415.Google Scholar
- Gerald C Gannod, Janet E Burge, and Michael T Helmick. 2008. Using the inverted classroom to teach software engineering. In Proceedings of the 30th international conference on Software engineering. ACM, 777--786. Google ScholarDigital Library
- Kathleen Keogh, Leon Sterling, and Anne Therese Venables. 2007. A scalable and portable structure or conducting successful year-long undergraduate software team projects. Journal of Information Technology Education: Research 6 (2007), 515--540.Google ScholarCross Ref
- Glenn E Krasner, Stephen T Pope, et al. 1988. A description of the model-view-controller user interface paradigm in the smalltalk-80 system. Journal of object oriented programming 1, 3 (1988), 26--49. Google ScholarDigital Library
- Guido Lang. 2017. Agile Learning: Sprinting Through the Semester. Information Systems Education Journal 15, 3 (2017), 14.Google Scholar
- Chang Liu. 2005. Enriching software engineering courses with service-learning projects and the open-source approach. In Proceedings of the 27th international conference on Software engineering. ACM, 613--614. Google ScholarDigital Library
- Cynthia J Martincic. 2009. Combining real-world internships with software development courses. Information Systems Education Journal 7, 33 (2009), 1--10.Google Scholar
- Eddy SW Ng, Linda Schweitzer, and Sean T Lyons. 2010. New generation, great expectations: A field study of the millennial generation. Journal of Business and Psychology 25, 2 (2010), 281--292.Google Scholar
- Helen Partridge and Gillian Hallam. 2006. Educating the millennial generation for evidence based information practice. Library hi tech 24, 3 (2006), 400--419.Google Scholar
- Mary Poppendieck. 2007. Lean software development. In Companion to the proceedings of the 29th International Conference on Software Engineering. IEEE Computer Society, 165--166. Google ScholarDigital Library
- Valentin Razmov and Richard Anderson. 2006. Pedagogical techniques supported by the use of student devices in teaching software engineering. In ACM SIGCSE Bulletin, Vol. 38. ACM, 344--348. Google ScholarDigital Library
- Thomas P Schambach and Jim Dirks. 2002. Student Perceptions of Internship Experiences. (2002).Google Scholar
- Ken Schwaber and Mike Beedle. 2002. Agile software development with Scrum. Vol. 1. Prentice Hall Upper Saddle River. Google ScholarDigital Library
- Mary Shaw. 2000. Software engineering education: a roadmap. In Proceedings of the Conference on the Future of Software Engineering. ACM, 371--380. Google ScholarDigital Library
- Mary Shaw, Jim Herbsleb, Ipek Ozkaya, and Dave Root. 2005. Deciding what to design: Closing a gap in software engineering education. In International Conference on Software Engineering. Springer, 28--58. Google ScholarDigital Library
- Carolyn Snyder. 2003. Paper prototyping: The fast and easy way to design and refine user interfaces. Morgan Kaufmann. Google ScholarDigital Library
- John D Tvedt, Roseanne Tesoriero, and Kevin A Gary. 2001. The software factory: combining undergraduate computer science and software engineering education. In Software Engineering, 2001. ICSE 2001. Proceedings of the 23rd International Conference on. IEEE, 633--642. Google ScholarDigital Library
- Laurie Williams, Robert R Kessler, Ward Cunningham, and Ron Jeffries. 2000. Strengthening the case for pair programming. IEEE software 17,4 (2000), 19--25. Google ScholarDigital Library
Index Terms
- Hiring millennial students as software engineers: a study in developing self-confidence and marketable skills
Recommendations
Teaching disciplined software development
Discipline is an essential prerequisite for the development of large and complex software-intensive systems. However, discipline is also important on the level of individual development activities. A major challenge for teaching disciplined software ...
Using Scrum for Software Engineering Class Projects
AGILEINDIA '12: Proceedings of the 2012 Agile IndiaImparting industry relevant skills and knowledge for the graduating students in the field of Software Engineering is difficult but is necessary to make the students employable and productive right from the time of joining on the job. With outdated ...
Simulating a Software Engineering Apprenticeship
Although some professions require a period of internship, residency, or apprenticeship before marking an individual as a qualified member, software engineering does not. Universities have started offering curricula in software engineering, but many ...
Comments