Using C in CS1

Eric S. Roberts
1993 Proceedings of the twenty-fourth SIGCSE technical symposium on Computer science education - SIGCSE '93  
In 1991, the Stanford Department of Computer Science decided to abandon Pascal in its introductory computer science courses and to adopt ANSI C as the language of instruction. We based this decision on several factors: the inadequacy of standard Pascal as a base for teaching modern programming concepts, the need to prepare our students for more advanced courses in which they will be expected to use C for programming projects, and increasing pressure from students and faculty throughout the
more » ... l of Engineering for instruction in a language that has become the industry standard. We also believe that it is not reasonable to expect students to learn C on their own; students must receive instruction in C in order to become good C programmers. C has several known deficiencies that make it a challenging language to teach. Based on our experience at Stanford, we believe that it is possible to minimize the problems associated with teaching C at the introductory level by applying standard software engineering strategies-procedural abstraction, modular decomposition, and information hiding-to good pedagogical effect. This paper expands on the reasons behind Stanford's decision to adopt C and summarizes the pedagogical approach.
doi:10.1145/169070.169361 dblp:conf/sigcse/Roberts93 fatcat:3dpbjz5i2bgahipzlqrj5jceqi