Engineering Education in 2050/Post-Classroom CS

= Introduction = Computer science education has vastly changed over the past decades. With a number of advancements made to the computer over the years, universities have adapted their curricula and programs to keep up with the changes. Dating back to the 1960s, computer programs were transcribed onto punch cards and loaded onto large computers. Classes explored numerical analysis, introductory programming, logic design, and switching circuits. Progressing into the 1990’s, the development of desktop computers encouraged universities to install computer labs. During this era, computer science education focused on software engineering, operating systems, computer organization, and computing principles. Today, all university students carry their own personal laptops. This change has improved the potential for computer science education by increasing the efficiency of development. Students can accessibly develop programs on integrated development environments (IDEs) with access to a plethora of learning resources over the Internet. With advancements in web development, artificial intelligence, machine learning, cybersecurity, and cloud computing, universities have additionally integrated electives to explore upcoming developments in computer science.

To articulate a vision for the computer science classroom in 2050, a focus was placed on the continuity of trends. Over the years, the driving change in computer science has largely been due to advancements in technology that have improved content delivery, access to learning resources, and applications of content. This trend will continue as current limitations of computer science students will be identified and addressed with newer technologies. Specific focus will be placed on the following areas: learning speed of students, learning resources retrieval time, and visualization of content.

= Structure of CS Education =

Fundamentals remain key
Certain portions of today’s CS curriculum have remained relevant for decades. Techniques like dynamic programming date back to the 1950s, and foundational computing concepts like Turing machines have even earlier origins. These concepts are part of broader topics like algorithms and the theory of computation, topics that are arguably computer science mainstays because they teach useful patterns and styles of approaching problems. Similar arguments can be applied to systems topics that inform students about time-tested computing abstractions.

Compared to natural sciences, computer science is a unique field that is primarily built on the work and abstractions of earlier computer scientists, software engineers, and other practitioners in the field. Thus, computer science fundamentals are especially important for newcomers to grasp, as they appear in one form or another throughout history. This importance extends to modern-day technology as many programming languages used today are built on previous abstractions; for example, one of this decade’s hottest systems programming languages, Rust, is built on concepts from type theory and program verification. Programmers using Rust also benefit from a strong practical understanding of computer memory models. Computer science abstractions are famously “leaky” to varying degrees; new abstractions and technologies will not make fundamental knowledge and understanding of lower-level abstractions obsolete.

This vision predicts the continued relevance of computer science fundamentals for decades to come. However, while these patterns and abstractions will remain important in the future, other facets of CS education are slated for change.

CS curriculum change
Viewing the developments of the computer science curriculum over the years, the constant trend that has persisted is the adaptation of current advancements in technology to tailor the content delivered to students. For example, with the rise of the Internet and the Web, web development began to rise in popularity in the early 2000s as opportunities emerged for developing user interfaces for applications. With that, universities adopted courses introducing students to languages and technologies related to web development. One example is the University of Virginia's course, CS 3240: Advanced Software Development Essentials, which encourages students to develop a functional web application over a semester. Looking towards the future, major changes to computer science curricula will be due to the emerging developments in computer science.

Artificial intelligence and machine learning are already revolutionizing fields of finance, healthcare, security, and many more. These technologies will only improve by 2050 to automate many of the current human tasks to allow more efficient decision making and response time. This significant change will greatly impact today's professions and generate a call for better skilled individuals that are able to understand and operate with these processes, systems, and tools. Thus, universities will be required to generate this new workforce by training students in understanding artificial intelligence and machine learning. With this new need, the computer science curriculum will require students to take courses in artificial intelligence and machine learning to analyze how these tools work and different applications of them.

Emerging developments in computer science additionally include cloud computing, quantum computing, Internet of Things, robotics and virtual reality. These topics are relatively early in their development, hindering universities from keeping up with the constant developments in their curriculum. However, by 2050, these technologies will be advanced and integrated within society, providing universities with enough content to improve the engagement of these topics for their students. Since these technologies will be influential developments in the industry, providing quality education in these topics will support the growth of skilled engineers to contribute to these developments in the industry.

Another significant issue in computer science curriculum is its obsolescence. Programming languages and frameworks are constantly advancing. Universities face the struggle of keeping their curriculums updated with the advancements in the industry. Daniel Gelernter, CEO of the tech startup Dittach, says in his Wall Street Journal titled Why I'm Not Looking to Hire Computer Science Majors that most university computer science departments are 10 years behind in a field that changes every 10 minutes. Consequences include the formation of computer science graduates that lack the latest skills required in the industry. However, changing an entire curriculum requires significant planning. The UVA Computer Science Department took around 8 years (2014-2022) to plan and execute a new computer science curriculum since 1989. This process included eliciting requirements, designing the new curriculum, piloting courses, gaining approvals, and executing the final program. The significant time required to administer curriculum changes is not feasible while trying to ensure the content is updated with the industry. As artificial intelligence advances, however, the design process would be expedited. AI would be used to efficiently pick and design content based on the current trends in the industry. As previously mentioned, the core content of the curriculum will stay constant. However, the technology and software used to supplement this content in class will be updated with the help of AI. This progress will also aid instructors in quickly adapting to the new content so the access to qualified instructors to teach rapidly changing courses will not be an issue. This advancement will ensure that students are equipped with relevant skills and better prepared for demanding roles in the industry.

= Technological Advancements =

Technology's role in education
In 1995, students encountered the early phases of the internet, a groundbreaking tool at the time for accessing information. Previously reliant on books, teachers, and peers, the internet brought instant access to a vast array of knowledge, expediting the learning process. Desktop computers, once the primary means of interaction, have given way to laptops and smartphones, shaping the landscape of information retrieval. Platforms such as YouTube, Geeks for Geeks, and Stack Overflow have become integral to the CS learning experience, highlighting a trend: students have and will continue to prioritize information delivery systems that are efficient, rapid, and user-friendly.

The education sector has witnessed the integration of Virtual Reality (VR) as a tool. Recently, The University of Central Florida is attempting to imbed virtual reality in their quantum computing program. The Institute of Electrical and Electronics Engineers (IEEE) conducted a pilot program adopting VR in introductory programming with positive results. K-12 education has adopted 3D models, and YouTube now hosts 360-degree interactive videos for enhanced visualization. Unlike the full immersion VR offers, augmented reality is a more advanced technology similar to VR in which users are able to interact with the real world. Although most augmented reality software are most commonly used in conjunction with smartphones, more development is pushed to incorporate AR with holographic glasses. With investments from tech giants like Google and Apple, and advancements in AI models from ChatGPT, Google, and Microsoft, our anticipation for 2050 is that Virtual Reality (VR) and Augmented Reality (AR) combined with AI processing will emerge as the predominant tool for students.

Augmented reality, virtual Reality, and personalized AI learning
AR/AI integration holds the promise of addressing three crucial aspects of learning: learning speed, content delivery speed, and content visualization. Despite the vast resources available on the internet, the limitations of a 2D screen limits learning efficiency. Speech and image based delivery during lectures can lead to misinterpretations, prompting students to seek clarification online. AR, coupled with personalized AI models tailored to individual learning patterns. We vision a future where students can utilize AR glasses to dive deeper into lecture content, promptly resolving ambiguities or presenting information in a 3D space for improved visualization. Utilizing video, photo, and speech, AR/AI can provide a comprehensive understanding. Here’s a scenario. Picture a student seated in a classroom, faced with the challenge of understanding the professor's lecture. Here, AR/AI emerges as an ally. The student, equipped with AR glasses, can seamlessly invoke AI-driven assistance to elaborate intricate concepts in real-time. Whether struggling with the abstraction of theoretical principles or visualizing complex structures, AR/AI steps in. It transforms the classroom into a space where three-dimensional representations materialize, offering an immersive and personalized learning experience.

The development of VR not only opens doors for asynchronous learning but also reinforcing virtual synchronous learning, bridging the gap between physical classrooms and online education. The shift to asynchronous learning during the COVID-19 pandemic highlighted the importance of flexibility in education, enabling students to access course materials and lectures at their convenience. This trend remains post-pandemic, offering students the freedom to engage with computer science content in a way that suits their schedules. As VR technology becomes more mainstream and is integrated with live translation capabilities, we predict that asynchronous and online synchronous learning as well as thr global accessibility of computer science education are expected to increase. While traditional online schooling, often conducted through online platorms such as zoom have been successful, the integration of VR in computer science education to another level. VR classrooms immerse students in interactive and dynamic virtual environments, providing a more engaging and realistic simulation of physical classrooms. This can enhance collaboration, hands on experiences, and make computer science topics more tangible and memorable. Virtual classrooms equipped with real-time translation features break down language barriers, fostering a collaborative and diverse community of learners from around the world. This increased accessibility not only expands the reach of educational resources but also promotes cross-cultural exchanges and a richer learning experience.

= Impact of AI Developments on CS Education = As of 2023, ChatGPT is the “fastest-growing consumer application in history,” having reached 100 million monthly active users shortly after launch. What some deem the artificial intelligence revolution is fueled in part by the exploding interest in generative pre-trained transformer tools like ChatGPT. Tools in this technology class have demonstrated significant competency on certain tasks; for example, OpenAI’s GPT-4 was released for use alongside claims of a 163 LSAT score and a 1410 SAT score. Generative artificial intelligence also demonstrates potential in areas like information retrieval and coding assistance. This vision of the future would be remiss to not discuss the possible implications of AI’s development over the next 27 years.

Changes to coding
Today, coding is a core competency of computer science majors; it is taught, practiced, and assessed through the majority of a CS student’s education. This fundamental activity is also a particularly likely candidate for an AI-powered transformation.

Consider some properties of writing that humans often care about: content correctness, grammatical structure, eloquence, sentiment, spelling, concision, etc. Different contexts require different properties of writing; fiction doesn’t need to adhere to facts, for example, and poetry may be subject to rhythmic constraints that prose isn’t restricted by. There are numerous selectively desirable properties of writing, and most of them aren’t easily verifiable or even identifiable. Assessing such properties of writing is a non-trivial task for humans, depending on the property, and is similarly non-trivial for automated tools.

Contrast this with code, which is generally written for the singular purpose of execution on a computer and has a smaller set of possible desirable structures than writing. Desirable properties of code snippets also exist, such as type correctness, syntactic correctness, readability, and semantic correctness. Unlike writing, however, many of these properties can be automatically identified via compilation and static analysis. There’s no silver bullet for code; after all, Rice’s theorem shows that non-trivial semantic properties of programs are undecidable. Yet, the property verification task has greater coverage for code than writing.

Generative artificial intelligence has been shown to produce near-human output for both writing and coding tasks. However, seemingly at random, it produces subtly incorrect or undesirable output. These tools can hallucinate facts, people, citations, and more in produced writing. The same is true for generated code, which may include non-existent syntax or functions. Since both types of output are susceptible to these problems, there is a stronger case for generative artificial intelligence’s use in code generation, where many properties of non-deterministically produced code can be deterministically identified.

Because of generative artificial intelligence’s greater potential for safe use in code generation than in other spaces, this vision predicts widespread adoption for this task by 2050. Specifically, its quality will likely be sufficient for full automation of basic software implementation. This level of implementation will likely not include making higher-level architectural decisions; consequently, an engineer’s soft-skills and general problem solving ability will become more important as the value of basic coding ability diminishes.

Consequent changes to CS competency assessment
In 2023, generative artificial intelligence tools can generate code for introductory programming tasks; 2050’s offerings may trivialize significant portions of today’s introductory and intermediate programming problems. New methods of assessing CS competency should be implemented to accommodate new capabilities. Fundamental computer science knowledge that today’s problems test for will be just as important in 2050. If artificial intelligence tools make a competent student’s work indistinguishable from an incompetent one, restricted learning and testing environments become necessary. Similar to how students today learn arithmetic basics without calculator access, computer science students should be, at times, assessed without access to artificial intelligence tools.

The reduced importance of basic coding ability will elevate technical concept explanation as an avenue of assessing competency. Students could be asked to write down their approach to completing an implementation task, for example. The education system could also incorporate interviews, asking students to discuss key pieces and mechanisms of learned topics. Interviews may not scale, but the content is more important than the medium here; demonstrating deep and nuanced understanding will be key in a world where just producing working code is trivial. The aforementioned predicted importance of soft-skills will make this communication task doubly important; students will be able to demonstrate technical expertise and communication ability throughout their CS education.

This same diminishing importance of basic coding will also lead to increasingly complex projects for students to work on during their CS education. Open-resource environments will enable students to accomplish more than today’s students; projects used to assess these students and provide working experience will grow accordingly. This may take the form of more abstract problems or requirements for greater deviation from common patterns. In any case, this vision sees projects having a different role in CS education than today. Projects and assignments today are often an opportunity for students to demonstrate competency in CS fundamentals in a less restricted environment. This may mean implementing a slightly modified version of a classical algorithm or performing relatively basic coding. In 2050, these projects will have to be less coupled to fundamental CS content. Assessing competence in CS fundamentals will happen differently, while broader projects give students experience in modern AI-assisted programming.

From the current GenAI education environment to 2050
Of course, the path to this new style of CS competency assessment is a long one. The continued development of generative AI tools may provide new affordances to students, affordances that require innovative adjustments to assessment methods. After all, these tools do not exist in a vacuum. Individual models differ significantly, and their outputs are influenced by factors like size, training input, incentivized behavior, etc. The set of available models may be more diverse by 2050, inviting more specific course adjustments.

However, in 2024, two generative AI policies are prevalent in CS classes: either “no generative AI use allowed” or “if you use generative AI, state the prompts you used”. Clear policies are a necessity, but these all-or-nothing stances can be improved on. The novelty of these generative AI tools makes policy enforcement difficult; detecting and watermarking generative AI output is a developing field of study. Generative AI policy in education will have to grow in sophistication alongside the tools being developed.

For example, programming in 2050 may require programmers to be skilled in prompting generative AI tools. Schools could provide environments and exercises that help build this skill. On one hand, if cutting-edge models can complete these exercises with only trivial prompts, they will be unsuited for educational use. On the other hand, tasks that push cutting-edge models to the limit may be too difficult for students to prompt for. Schools could instead deploy models with known capability limits; ideally, these models would require non-trivial prompts to be helpful for the provided assignment. In this scenario, the generative AI policy is neither a strict ban on use nor an open invitation to trivialize assignments. Instead, students would be limited to particular models that develop their prompting abilities.

Involving educators early in generative AI development and policy discussions should enable a smoother transition into a new programming and CS education environment. Aligning on plans and requirements would help tool developers understand their users’ needs, while also helping educators plan and experiment with generative AI in the classroom.

From the current GenAI education environment to 2050
Of course, the path to this new style of CS competency assessment is a long one. The continued development of generative AI tools may provide new affordances to students, affordances that require innovative adjustments to assessment methods. After all, these tools do not exist in a vacuum. Individual models differ significantly, and their outputs are influenced by factors like size, training input, incentivized behavior, etc. The set of available models may be more diverse by 2050, inviting more specific course adjustments.

However, in 2024, two generative AI policies are prevalent in CS classes: either “no generative AI use allowed” or “if you use generative AI, state the prompts you used”. Clear policies are a necessity, but these all-or-nothing stances can be improved on. The novelty of these generative AI tools makes policy enforcement difficult; detecting and watermarking generative AI output is a developing field of study. Generative AI policy in education will have to grow in sophistication alongside the tools being developed.

For example, programming in 2050 may require programmers to be skilled in prompting generative AI tools. Schools could provide environments and exercises that help build this skill. On one hand, if cutting-edge models can complete these exercises with only trivial prompts, they will be unsuited for educational use. On the other hand, tasks that push cutting-edge models to the limit may be too difficult for students to prompt for. Schools could instead deploy models with known capability limits; ideally, these models would require non-trivial prompts to be helpful for the provided assignment. In this scenario, the generative AI policy is neither a strict ban on use nor an open invitation to trivialize assignments. Instead, students would be limited to particular models that develop their prompting abilities.

Involving educators early in generative AI development and policy discussions should enable a smoother transition into a new programming and CS education environment. Aligning on plans and requirements would help tool developers understand their users’ needs, while also helping educators plan and experiment with generative AI in the classroom.

= References =