Skip to main content

Teaching Programming and Design-by-Contract

  • Conference paper
  • First Online:
The Challenges of the Digital Transformation in Education (ICL 2018)

Abstract

This paper summarizes the experience of teaching an introductory course to programming by using a correctness by construction approach at Innopolis University, Russian Federation. In this paper we claim that division in beginner and advanced groups improves the learning outcomes, present the discussion and the data that support the claim.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 299.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 379.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    https://www.ethz.ch/en.html.

References

  1. Arnold, K., Gosling, J., Holmes, D.: The Java Programming Language, 3rd edn. Addison-Wesley Longman Publishing Co., Inc, Boston, MA, USA (2000)

    MATH  Google Scholar 

  2. Bratko, I.: Prolog Programming for Artificial Intelligence. Addison-Wesley Longman Publishing Co. Inc, Boston, MA, USA (1986)

    MATH  Google Scholar 

  3. Chapman, R.: Correctness by construction: A manifesto for high integrity software. In: Proceedings of the 10th Australian Workshop on Safety Critical Systems and Software - Volume 55. pp. 43–46. SCS 2005, Australian Computer Society, Inc., Darlinghurst, Australia, Australia (2006). http://dl.acm.org/citation.cfm?id=1151816.1151820

  4. Hejlsberg, A., Torgersen, M., Wiltamuth, S., Golde, P.: C# Programming Language. Addison-Wesley Professional, 4th edn. (2010)

    Google Scholar 

  5. Jensen, K., Wirth, N.: PASCAL User Manual and Report. Springer, New York, NY, USA (1974)

    Book  Google Scholar 

  6. Kernighan, B.W.: The C Programming Language. Prentice Hall Professional Technical Reference, 2nd edn. (1988)

    Google Scholar 

  7. Kondratyev, D., Tormasov, A., Stanko, T., Jones, R.C., Taran, G.: Innopolis university-a new it resource for Russia. In: 2013 International Conference on Interactive Collaborative Learning (ICL). pp. 841–848 (Sept 2013)

    Google Scholar 

  8. Meyer, B.: Applying “design by contract". Computer 25(10), 40–51 (Oct 1992). https://doi.org/10.1109/2.161279

  9. Meyer, B.: Eiffel: The Language. Prentice-Hall Inc., Upper Saddle River, NJ, USA (1992)

    MATH  Google Scholar 

  10. Meyer, B.: Object-oriented Software Construction, 2nd edn. Prentice-Hall Inc., Upper Saddle River, NJ, USA (1997)

    MATH  Google Scholar 

  11. Milner, R., Tofte, M., Macqueen, D.: The Definition of Standard ML. MIT Press, Cambridge, MA, USA (1997)

    Book  Google Scholar 

  12. Odersky, M., Micheloud, S., Mihaylov, N., Schinz, M., Stenman, E., Zenger, M., et al.: An overview of the scala programming language. Technical report (2004)

    Google Scholar 

  13. Pedroni, M., Meyer, B.: The inverted curriculum in practice. SIGCSE Bull. 38(1), 481–485 (Mar 2006). https://doi.org/10.1145/1124706.1121493

  14. Peyton Jones, S.: Haskell 98 Language and Libraries: the Revised Report. Cambridge University Press (2003)

    Google Scholar 

  15. Steele Jr., G.L.: Common LISP: The Language, 2nd edn. Digital Press, Newton, MA, USA (1990)

    MATH  Google Scholar 

  16. Tschannen, J., Furia, C.A., Nordio, M., Polikarpova, N.: Autoproof: Auto-active functional verification of object-oriented programs. In: 21st International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Lecture Notes in Computer Science, Springer (2015)

    Google Scholar 

  17. Wegner, P.: Concepts and paradigms of object-oriented programming. SIGPLAN OOPS Mess. 1(1), 7–87 (Aug 1990). https://doi.org/10.1145/382192.383004

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Manuel Mazzara .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

de Carvalho, D. et al. (2020). Teaching Programming and Design-by-Contract. In: Auer, M., Tsiatsos, T. (eds) The Challenges of the Digital Transformation in Education. ICL 2018. Advances in Intelligent Systems and Computing, vol 916. Springer, Cham. https://doi.org/10.1007/978-3-030-11932-4_7

Download citation

Publish with us

Policies and ethics