Skip to main content Accessibility help
×
Home
Hostname: page-component-564cf476b6-mgm4h Total loading time: 0.431 Render date: 2021-06-23T07:17:51.795Z Has data issue: true Feature Flags: { "shouldUseShareProductTool": true, "shouldUseHypothesis": true, "isUnsiloEnabled": true, "metricsAbstractViews": false, "figures": true, "newCiteModal": false, "newCitedByModal": true, "newEcommerce": true }

Emerging languages: An alternative approach to teaching programming languages

Published online by Cambridge University Press:  26 September 2019

SAVERIO PERUGINI
Affiliation:
University of Dayton, 45469–2160USA (e-mail: saverio@udayton.edu)
Corresponding
E-mail address:

Abstract

We challenge the idea that a course intended to convey principles of languages should be structured according to those principles, and present an alternate approach to teaching a programming language course. The approach involves teaching emerging programming languages. This approach results in a variety of course desiderata including scope for instructor customization; alignment with current trends in language evolution, practice, and research; and congruence with industrial needs. We discuss the rationale for, the course mechanics supporting, and the consequences of this approach.

Type
Educational Column
Copyright
© Cambridge University Press 2019 

Access options

Get access to the full version of this content by using one of the access options below.

References

Adams, E., Baldwin, D., Bishop, J., English, J., Lawhead, P., & Stevenson, D. (2006). Approaches to teaching the programming languages course: A potpourri. In Proceedings of the 11th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (ITiCSE). New York, NY: ACM, pp. 299300.CrossRefGoogle Scholar
Alesandrini, K. & Larson, L. (2002) Teachers bridge to constructivism. Clearing House 75(3), 119121.CrossRefGoogle Scholar
Arnold, Z. L. & Perugini, S. (To appear) An introduction to concatenative programming in Factor. J. Comput. Sci. Coll. 35.Google Scholar
Budd, T. (1993) A brief introduction to Smalltalk. ACM SIGPLAN Not. 28(3), 367368.CrossRefGoogle Scholar
Budd, T. (1995) Multiparadigm Programming in Leda. Boston, MA, USA: Addison-Wesley.Google Scholar
Butcher, P. (2014) Seven Concurrency Models in Seven Weeks: When Threads Unravel. Dallas, TX: Pragmatic Bookshelf.Google Scholar
Cass, S. (2018) The 2018 top programming languages. IEEE Spectrum. Accessed June 19, 2019. Available at: https://spectrum.ieee.org/at-work/innovation/the-2018-top-programming-languages Google Scholar
CRLT. (2016) Teaching strategies: Large classes and lectures. Accessed June 19, 2019 http://www.crlt.umich.edu/tstrategies/tsllc Google Scholar
Dean, J. & Ghemawat, S. (2004). MapReduce: Simplified data processing on large clusters. Proceedings of the 6th Conference on Symposium on Operating Systems Design and Implementation (OSDI), vol. 6. Berkeley, CA, USA: USENIX Association.Google Scholar
Felleisen, M., Findler, R. B., Flatt, M., Krishnamurthi, S., Barzilay, E., McCarthy, J. & Tobin-Hochstadt, S. (2018). A programmable programming language. Commun. ACM 61(3), 6271.CrossRefGoogle Scholar
Fraser, S. D., Bak, L., DeLine, R., Feamster, N., Kuper, L., Lopes, C.V. & Wu, P. (2015) The future of programming languages and programmers. In Companion Proceedings of the 2015 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH). New York, NY, USA: ACM, pp. 6366.CrossRefGoogle Scholar
Freeman, S., Eddy, S. L., McDonough, M., Smith, M. K., Okoroafor, N., Jordt, H. & Wenderoth, M. P. (2014) Active learning increases student performance in science, engineering, and mathematics. Proc. Nat. Acad. Sci. USA 111(23), 84108415.CrossRefGoogle ScholarPubMed
Friedman, D. P., Wand, M. & Haynes, C. T. (2001) Essentials of Programming Languages. 2nd ed. Cambridge, MA, USA: MIT.Google Scholar
Graham, P. (2004). Revenge of the Nerds. Beijing: O’Reilly. Accessed June 19, 2019. Available at: http://www.paulgraham.com/icad.html Google Scholar
Guzdial, M. & Landau, S. (2018) Programming programming languages, and analyzing facebook’s failure. Commun. ACM 61(6), 89.CrossRefGoogle Scholar
Hamer, J., Cutts, Q., Jackova, J., Luxton-Reilly, A., McCartney, R., Purchase, H., Riedesel, C., Saeli, M., Sanders, K. & Sheard, J. (2008) Contributing student pedagogy. SIGCSE Bull . 40(4), 194212.CrossRefGoogle Scholar
Krishnamurthi, S. (2008) Teaching programming languages in a post-Linnaean age. ACM SIGPLAN Not . 43(11), 8183.CrossRefGoogle Scholar
Krishnamurthi, S. (2012). Programming languages: Application and interpretation. Accessed June 19, 2019. Available at: https://cs.brown.edu/~sk/Publications/Books/ProgLangs Google Scholar
Kumar, A. N. (2005). Projects in the programming languages course. In Proceedings of the 10th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (ITiCSE). New York, NY, USA: ACM, p. 395.CrossRefGoogle Scholar
Kumar, V. (2019) 9 new programming languages to learn in 2019. Accessed June 19, 2019. Available at: https://www.rankred.com/new-programming-languages-to-learn Google Scholar
Lee, K. D. (2015) A framework for teaching programming languages. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education (SIGCSE). New York, NY: ACM, pp. 162167.Google Scholar
Lewis, M. C., Blank, D., Bruce, K. & Osera, P.- M. (2016) Uncommon teaching languages. Proceedings of the 47th ACM Technical Symposium on Computer Science Education (SIGCSE). New York, NY: ACMs, pp. 492493.CrossRefGoogle Scholar
Louden, K. C. (2002) Programming Languages: Principles and Practice, 2nd ed. Pacific Grove, CA, USA: Brooks/Cole.Google Scholar
McCartney, R., Boustedt, J., Eckerdal, A., Sanders, K., Thomas, L., & Zander, C. (2016) Why computing students learn on their own: Motivation for self-directed learning of computing ACM Trans. Comput. Educ. 16(1), 2:12:18.CrossRefGoogle Scholar
Miller, H., Haller, P., Rytz, L. & Odersky, M. (2014) Functional programming for all! Scaling a MOOC for students and professionals alike. In Companion Proceedings of the 36th International Conference on Software Engineering (ICSE). New York, NY, USA: ACM, pp. 256263.Google Scholar
NCAT. (2014) How to redesign a college course using NCAT’s methodology. Accessed June 19, 2019. Available at: http://thencat.org/Guides/AllDisciplines/How%20to%20Redesign%20A%20College%20Course.pdf. Chap. VI: How to Create Small within Large.Google Scholar
Papert, S. (1980) Mindstorms: Children, Computers, and Powerful Ideas. New York, NY, USA: Basic Book, Inc. Google Scholar
Papert, S. (1987) Constructionism: A new opportunity for elementary science education. Accessed June 19, 2019.Available at: https://nsf.gov/awardsearch/showAward?AWD_ID=8751190. National Science Foundation Award Abstract #8751190.Google Scholar
Perugini, S. (2018a) The design of an emerging/multi-paradigm programming languages course. J. Comput. Sci. Coll. 34(1), 5262.Google Scholar
Perugini, S. (2018b) Programming languages: Concepts and implementation. Accessed June 19, 2019. Draft. 1,240 pages. Course notes developed in conjunction with and for this textbook. Available at: http://academic.udayton.edu/SaverioPerugini/PLCI.Google Scholar
Perugini, S. & Watkin, J. L. (2018) ChAmElEoN: A customizable language for teaching programming languages. J. Comput. Sci. Coll. 34(1), 4453.Google Scholar
Pintrich, P. R. (2003). A motivational science perspective on the role of student motivation in learning and teaching contexts. J. Educ. Psychol. 95(4), 667686.CrossRefGoogle Scholar
Pombrio, J., Krishnamurthi, S. & Fisler, K. (2017) Teaching programming languages by experimental and adversarial thinking. In Proceedings of the 2nd Summit on Advances in Programming Languages (SNAPL), Lerner, B.S., Bodík, R., & Krishnamurthi, S. (eds), Germany: Leibniz International Proceedings in Informatics Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl Publishing, pp. 13:113:9.Google Scholar
Prince, D. G. & Perugini, S. (2018). An application of the Actor model of concurrency in Python: Euclidean rhythm music sequencer. J. Comput. Sci. Coll. 34(1), 3546.Google Scholar
Queinnec, C. (2003). LISP in Small Pieces. Cambridge, UK: Cambridge University.Google Scholar
Ray, B., Posnett, D., Devanbu, P. & Filkov, V. (2017) A large-scale study of programming languages and code quality in GitHub. Commun. ACM 60(10), 91100.CrossRefGoogle Scholar
Savage, N. (2018) Using functions for easier programming. Commun. ACM 61(5), 2930.CrossRefGoogle Scholar
Scott, M. L. (2009) Programming Language Pragmatics. 3rd ed. Amsterdam: Morgan Kaufmann.Google Scholar
Sebesta, R. W. (2015) Concepts of Programming Languages. 11 ed. Boston, MA, USA: Addison Wesley.Google Scholar
Tate, B. A. (2010) Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages. Dallas, TX, USA: Pragmatic Bookshelf.Google Scholar
Tate, B. A., Daoud, F., Dees, I. & Moffit, J. (2014) Seven More Languages in Seven Weeks: Languages That are Shaping the Future. Dallas, TX, USA: Pragmatic Bookshelf.Google Scholar
The Joint Task Force on Computing Curricula: Association for Computing Machinery (ACM) and IEEE Computer Society. (December 20, 2013). Computer science curricula 2013: Curriculum guidelines for undergraduate degree programs in computer science. Tech. rept. Association for Computing Machinery (ACM) and IEEE Computer Society. Accessed June 19, 2019. Available at: https://www.acm.org/binaries/content/assets/education/cs2013_web_final.pdf.Google Scholar
Wexelblat, R. L. (ed) (1993). ACM SIGPLAN Not., vol. 28. New York, NY, USA: ACM.Google Scholar

Perugini supplementary material

Perugini supplementary material

Download Perugini supplementary material(Video)
Video 24 MB
Submit a response

Discussions

No Discussions have been published for this article.

Send article to Kindle

To send this article to your Kindle, first ensure no-reply@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about sending to your Kindle. Find out more about sending to your Kindle.

Note you can select to send to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be sent to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

Find out more about the Kindle Personal Document Service.

Emerging languages: An alternative approach to teaching programming languages
Available formats
×

Send article to Dropbox

To send this article to your Dropbox account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your <service> account. Find out more about sending content to Dropbox.

Emerging languages: An alternative approach to teaching programming languages
Available formats
×

Send article to Google Drive

To send this article to your Google Drive account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your <service> account. Find out more about sending content to Google Drive.

Emerging languages: An alternative approach to teaching programming languages
Available formats
×
×

Reply to: Submit a response

Please enter your response.

Your details

Please enter a valid email address.

Conflicting interests

Do you have any conflicting interests? *