ABSTRACT
This paper describes the experience of redesigning a traditional CS1 programming course, utilizing traditional coding practices as well as microcontroller units (MCU) based coding, to provide multiple programming environments. The objective of this redesign is to improve the programming skills for engineering students by 1) providing them with program development experience in multiple contexts and 2) relating the initial programming experience to the typical notion of engineering through significant hardware experience. Typical CS1 courses are designed with an instructor led lecture focusing on the introduction of specific computer skills and languages while programming assignments and laboratories help strengthen these skills in the students. For this remodeling, in addition to the typical programming exercises, supplementary MCU based lab exercises were used to provide an additional, different programming target for increased learning and highlighting the complementary relationship between hardware and software. The outcomes of this effort demonstrate that the addition of a MCU to an introductory programming course can work as an effective motivator, providing the students with a secondary context to reinforce programming skills developed during the course, and that providing multiple contexts (traditional desktop programming and hardware-based programming) together can aid in learning and the transfer of knowledge.
- Victor Adamchik and Ananda Gunawardena. 2005. Adaptive book: Teaching and learning environment for programming education. In Information Technology: Coding and Computing, 2005. ITCC 2005. International Conference on, Vol. 1. IEEE, 488–492. Google ScholarDigital Library
- John E Bean and John P Dempsey. 2007. Collaboration between Engineering Departments at Clarkson University for a Freshman-Level Engineering Programming Course Including an Experimental Lab Experience. In CIEC 2007 Conference, 4p.Google Scholar
- Jens Bennedsen and Michael E Caspersen. 2007. Failure rates in introductory programming. AcM SIGcSE Bulletin 39, 2 (2007), 32–36. Google ScholarDigital Library
- David E Clough, Steven C Chapra, and Gary S Huvard. 2001. A change in approach to engineering computing for freshmen–similar directions at three dissimilar institutions. age 6 (2001), 1.Google Scholar
- Mauricio A Colombo, María Rosa Hernández, and Jorge E Gatica. 2000. Combining high-level programming languages and spreadsheets an alternative route for teaching process synthesis and design. age 5 (2000), 2.Google Scholar
- Thomas J Cortina. 2007. An introduction to computer science for non-majors using principles of computation. In ACM SIGCSE Bulletin, Vol. 39. ACM, 218–222. Google ScholarDigital Library
- Michael Davis. 1998. Thinking like an engineer: Studies in the ethics of a profession. (1998).Google Scholar
- Barry S Fagin, Laurence D Merkle, and Thomas W Eggers. 2001. Teaching computer science with robotics using Ada/Mindstorms 2.0. In ACM SIGAda Ada Letters, Vol. 21. ACM, 73–78. Google ScholarDigital Library
- Mark Goadrich. 2014. Incorporating tangible computing devices into CS1. Journal of Computing Sciences in Colleges 29, 5 (2014), 23–31. Google ScholarDigital Library
- Louis S Nadelson and Janet Callahan. 2011. A comparison of two engineering outreach programs for adolescents. Journal of STEM Education: Innovations and Research 12, 1/2 (2011), 43.Google Scholar
- Carmen Fernández Panadero, Julio Villena Román, and Carlos Delgado Kloos. 2010. Impact of learning experiences using LEGO Mindstorms® in engineering courses. In Education Engineering (EDUCON), 2010 IEEE. IEEE, 503–512.Google ScholarCross Ref
- Julián Ramos, María A Trenas, Eladio Gutiérrez, and Sergio Romero. 2013. Eassessment of Matlab assignments in Moodle: Application to an introductory programming course for engineers. Computer Applications in Engineering Education 21, 4 (2013), 728–736.Google ScholarCross Ref
- Jerry Schumacher, Don Welch, and David Raymond. 2001. Teaching introductory programming, problem solving and information technology with robots at West Point. In Frontiers in Education Conference, 2001. 31st Annual, Vol. 2. IEEE, F1B–2. Google ScholarDigital Library
- Hugh Smith. {n. d.}. Microcontroller Based Introduction to Computer Engineering. ({n. d.}).Google Scholar
- Lynda Thomas, Mark Ratcliffe, John Woodbury, and Emma Jarman. 2002. Learning styles and performance in the introductory programming sequence. In ACM SIGCSE Bulletin, Vol. 34. ACM, 33–37. Google ScholarDigital Library
- Christopher Watson and Frederick WB Li. 2014. Failure rates in introductory programming revisited. In Proceedings of the 2014 conference on Innovation & technology in computer science education. ACM, 39–44. Google ScholarDigital Library
- Dianna Xu, Douglas Blank, and Deepak Kumar. 2008. Games, robots, and robot games: complementary contexts for introductory computing education. In Proceedings of the 3rd international conference on Game development in computer science education. ACM, 66–70. Abstract 1 Introduction 2 Related Works 3 Course Description 3.1 Course Hardware 3.2 Laboratory Assignments 4 Evaluation 5 Lessons Learned 6 Conclusion Acknowledgments References Google ScholarDigital Library
Index Terms
- Instruction of introductory programming course using multiple contexts
Recommendations
Introductory programming: a systematic literature review
ITiCSE 2018 Companion: Proceedings Companion of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science EducationAs computing becomes a mainstream discipline embedded in the school curriculum and acts as an enabler for an increasing range of academic disciplines in higher education, the literature on introductory programming is growing. Although there have been ...
A Survey of Introductory Programming Courses in Ireland
ITiCSE '19: Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science EducationBetween January and April of 2018, a comprehensive survey of introductory programming courses was undertaken across all sectors of Irish third-level institutions (universities, institutes of technology, and private colleges). The survey instrument was ...
A model for teaching an introductory programming course using ADRI
High failure and drop-out rates from introductory programming courses continue to be of significant concern to computer science disciplines despite extensive research attempting to address the issue. In this study, we include the three entities of the ...
Comments