UNIX network programming
The case for case studies of programming problems
Communications of the ACM
AAA and CS 1: the applied apprenticeship approach to CS 1
SIGCSE '95 Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education
A multi-media approach to providing software project experience for postgraduate students
ITiCSE '96 Proceedings of the 1st conference on Integrating technology into computer science education
Computer networks (3rd ed.)
From RS-232 to object request brokers: incremental object-oriented networking projects
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Practical experiences for undergraduate computer networking students
Proceedings of the seventh annual consortium for computing in small colleges central plains conference on The journal of computing in small colleges
Enhancing the computer networking curriculum
Proceedings of the 6th annual conference on Innovation and technology in computer science education
RTP: a transport layer implementation project
CCSC '01 Proceedings of the sixth annual CCSC northeastern conference on The journal of computing in small colleges
RTP: a transport layer implementation project
CCSC '01 Proceedings of the sixth annual CCSC northeastern conference on The journal of computing in small colleges
Teaching wireless networking with limited resources
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Configuring a multi-course lab for system-level projects
Proceedings of the 36th SIGCSE technical symposium on Computer science education
Hi-index | 0.00 |
Being exposed to well-written code is a valuable experience for students—especially when the code is larger or more complex than they are currently capable of writing. In addition to the mechanics of a particular computation, students learn organization and documentation skills, and general concepts illustrated by the specific program. However, to obtain these benefits, students must thoroughly familiarize themselves with the code. This paper describes recent successes using software bugs as a means to force familiarization with network protocol code. The bugs become tools by which the students learn the inner workings of network protocols. As a side benefit, the approach provides a concrete basis for the discussion of debugging approaches and techniques. The technique is appropriate for any course involving programming, and is especially good for upper-level courses like networks, operating systems, and parallel and distributed programming, where difficult concepts can be illustrated via sample programs.