Creating the discipline of computer science
In 1968 Ole-Johan was invited to be a full professor to create the discipline of computer science at the University of Oslo. He spent enormous efforts building up a curriculum in computer science in the late 1960s, writing textbooks at night while teaching during the day, and supervising up to 20 graduate students at a time. For 10 years from 1968 he was the only professor in computer science in Oslo. For many years, he had only one lecturer and a few research assistants helping him. The courses he designed met the highest international standards of the time and for many years to come. Most of the courses were offered for 20 years or more with only minor changes; some are still being taught.
Establishing a theoretical foundation for computer science
After beginning his career at the university, Dahl deliberately stopped working on further development of Simula as such. In his new position he felt that it was essential to build up computer science to be an accepted academic discipline, and establish a theoretical foundation for basic concepts of computer science and programming languages. He made important advances in programming methodology, introducing techniques for program structuring and conceptual modeling, based on the experiences of the design and implementation of Simula.
Teaching formal methods
Inspired by Tony Hoare's logic for program reasoning, he continued research in the area of program architecture, programming and specification languages, as well as verification methods and techniques. Most of this work is related to the area of formal methods, where the idea is to use mathematical methods to specify, develop and reason about programs. Because of his computer science background and education, his theoretical work was accompanied by concern for practical relevance and usefulness. Exploiting the advantages of both, he advocated combined use of top-down development and bottom-up development.
Dahl was teaching formal methods, and their practical use for 30 years. He believed that computer science students should know the principles of program reasoning, and that this would make them better programmers even without performing detailed verification. The course work has resulted in the book Verifiable Programming, which includes much of his own research and results. He supervised a large number of students, ten of whom became university professors.