# Software Developer Graduates 2031 - Anne M. V. Bosch - NDC Oslo 2026

## Executive summary

The talk addresses the crisis in computer science education, noting plummeting student applications and the challenge posed by Generative AI (GenAI) and Large Language Models (LLMs) generating code. The speaker argues that the definition of 'programming' must shift from merely producing a software artifact to mastering 'domain translation'—the ability to translate complex, often tacit, business requirements into functional systems. To adapt, education must overhaul traditional assessments, moving from grading codebases to process-oriented methods like code interviews, and adopting a curriculum that starts at a high abstraction level rather than low-level programming fundamentals.

## Key takeaways

- The CS Education Crisis: The field faces declining student numbers and graduates struggle to find entry-level jobs because job requirements differ from academic output. This trend is exacerbated by the increasing use of LLMs, which challenge the traditional assessment of competence.
- Programming is Domain Translation: Drawing on Peter Nauer's 1985 theory, the speaker asserts that 'programming' is not writing code; it is the essential process of taking domain insights (tacit knowledge) and translating them into an automated system. The software product is merely an 'auxiliary output' of this process.
- Reforming Assessment Methods: To validate competence, the speaker proposes moving away from grading the final codebase. Instead, 'code interviews' (15-minute conversations with a TA) are used to quiz students on design choices, alternatives, testing strategies, and system implications, thus improving the validity of the assessment.
- Future Curriculum Design: The educational model should flip from bottom-up (starting with C programming and low-level data structures) to top-down. Students should start by building real-world products at a high abstraction level, forcing them to learn the underlying technical skills only when the system breaks.

## Technical details

- Assessment Validity and Reliability: The speaker discusses the need for assessments to have high validity (measuring what they intend to measure) and reliability (different assessors reaching the same conclusion). Traditional code grading is criticized for low validity because LLMs and copy-pasting can produce functional but unoriginal code.
- Software Development Process: The core of software development is identified as the process of understanding conflicting business requirements, decomposing functional components, and debugging—not the final artifact. This emphasizes the need for systemic thinking.
- Generative AI Impact: The speaker discusses the uncertainty surrounding the future of AI in development, noting that while some predict that writing and reading code will become obsolete, others predict a 'bubble burst' in AI dependency.

## Practical implications

- Educational institutions should integrate process-based assessments (e.g., code interviews) to measure critical thinking and domain knowledge, rather than just code output.
- Industry professionals should recognize that the most valuable skill in a developer is 'domain translation'—the ability to bridge business needs with technical solutions.
- Curriculum design should prioritize high-level, abstract problem-solving and system design over rote learning of low-level programming syntax.

## Topics

Software Engineering, Generative AI, Curriculum Design, System Architecture, Computer Science Education, Peter Nauer's essay 'Programming as Theory Building'

Source: https://www.youtube.com/watch?v=2mjX0shWyYQ
