Hierarchical correctness proofs for distributed algorithms
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
A discipline of multiprogramming: programming theory for distributed applications
A discipline of multiprogramming: programming theory for distributed applications
The Theory and Practice of Concurrency
The Theory and Practice of Concurrency
A Theory of Interfaces and Modules - I: Composition Theorem
IEEE Transactions on Software Engineering
SeSFJava harness: service and assertion checking for protocol implementations
IEEE Journal on Selected Areas in Communications
Teaching simplified network protocols
Proceedings of the 41st ACM technical symposium on Computer science education
Hi-index | 0.00 |
Networking course projects are usually described by an informal specification and a collection of test cases. Students often misunderstand the specification or oversimplify it to fit just the test cases. Using formal methods eliminates these misunderstandings and allows the students to test their projects thoroughly, but at the expense of learning a new language. SeSF (Services and Systems Framework) is one way to overcome this obstacle. In SeSF, both implementations and services are defined by programs in conventional languages, thereby, eliminating the need to teach the students a new language. SeSF is a markup language that can be integrated with any conventional language. The integration of SeSF and Java is called SeSFJava. SeSFJava provides a technique to mechanically test whether student projects conform to their corresponding specifications, thereby, providing the instructors with a technique for semi-automated grading.We present a four-phase transport protocol project, and describe how SeSFJava is used in specifying, testing and grading the different phases of this project. The use of SeSF significantly (1) increased the percentage of students who completed the projects, (2) reduced their email queries about the specification, and (3) reduced the grading time.