Frontend Engineering: Building Compelling Cloud Applications; Analyzing Computer Science Student Competency Standards in Academia and Industry
Golshani, Shayan, School of Engineering and Applied Science, University of Virginia
Ferguson, Sean, EN-Engineering and Society, University of Virginia
Cohoon, Jim, University of Virginia
Software engineering is a complex field which requires proficiency in both technical and professional skills to be successful in. Through my two theses I explored the skills and techniques used in this profession. My technical thesis describes the work I did as a software engineer intern and the skills I used, and my STS thesis discusses how well computer science curricula prepare students for software engineering work.
Curriculum requirements drive the academic experience of university students by guiding what classes they must take, ultimately deciding the material they learn. The decisions on which courses and topics are required are impacted by many groups, including standard-setting institutions like ABET and individual universities. As an engineering student, understanding the decision-making process and how the curricula can improve brought me to study which education topics are really most important. For my STS thesis, I analyzed how the curriculum guidelines set by ABET, the leading standard-setter for engineering education, compare to skills that software engineers need to succeed. I used surveys of software engineers to determine which skills are deemed most important, and checked ABET’s requirement documents to see how well represented these skills are. Ultimately, I discovered that the skills software engineers and other professionals rank as most important are vastly understated in ABET’s guidelines. Professional and interpersonal skills are overshadowed by technical skills throughout ABET’s requirements for accreditation, yet they are ranked just as important, if not more so, than those technical skills in surveys.
My technical thesis details the work I did as a software engineer intern working on a cloud video platform. As a frontend engineer, I designed and implemented user interface features for a cutting-edge platform, and I analyzed the process I used in the paper. The benefits and downsides of the technologies I used like React/Redux and TypeScript are detailed. I also discussed various challenges in cloud and frontend engineering, and how I dealt with these issues.
Overall, I found my STS research successful in finding concrete evidence for needing more emphasis on professional skill topics in engineering education. I think skills like teamwork, management, and ethical reasoning are overlooked in higher education, especially in highly technical fields like computer science. Unfortunately, I was not able to research the multitude of other stakeholders in setting engineering education standards besides ABET due to a limited scope. Although ABET ultimately sets the requirements for accreditation, other organizations like the Association for Computing Machinery, National Academy of Engineering, American Society of Engineering Education are influential in changing engineering education and deserve to be analyzed as well. I also found my technical paper to be successful in revisiting the work I did and doing a deeper dive into frontend and cloud engineering in general.
BS (Bachelor of Science)
Computer Science, Software Engineering
School of Engineering and Applied Science
Bachelor of Science in Computer Science
Technical Advisor: James Cohoon
STS Advisor: Sean Ferguson
All rights reserved (no additional license for public reuse)