The functional programming paradigm has a long and storied history, with its beginnings in the Lambda Calculus. In recent decades, pure functional languages such as Haskell have been shown to be highly effective in producing robust software due to immutable data structures, among other functional features. The advantages of programming with immutable data structures can also be had in non-functional languages such as Python. Over the years, non-functional languages have introduced immutable data structures as well as comprehension and lambda expressions, and it is possible to program in a purely functional style in them. In this paper, we present a ``best practice'' idea in introductory programming classes that forces students to learn and complete programming assignments in a purely functional subset of Python. By doing so, the student can learn functional ideas such as immutability, pure functions with no side effects, and stateless programming. We define a functional subset of Python and illustrate the best practice using small examples. We strongly feel that students in computing need familiarity with pure functional programming and argue that this can be taught in introductory programming courses that use Python.
Model of active and collaborative learning applied in training specific subject makes clear advantage due to the goals of knowledge, enhanced activeness, skills that students got to develop successful future job. Studying and applying the model to build a learning environment in the Introductory Physics course with the support of ICT, especially social network and eLearning system of HNUE.
This article is about the author's experience with developing and teaching an introductory electrical engineering course for students of Faculty (department) of Information Technology of a Russian university. The curriculum of this department conforms to typical computer science curricula of US engineering schools with a noticeable omission of comparable electrical engineering courses. When developing the course, I did my best to pay attention to learning preferences of the department's student body. I also hoped to contribute to a degree to meeting labor market demands for developers of elect…
The University of Texas at San Antonio(德克萨斯大学圣安东尼奥分校);The University of Texas at Austin(德克萨斯大学奥斯汀分校);Texas Tech University(德克萨斯理工大学)
This paper investigates how high school students approach computing through an introductory computer science course situated in the Logic Programming (LP) paradigm. This study shows how novice students operate within the LP paradigm while engaging in foundational computing concepts and skills, and presents a case for LP as a viable paradigm choice for introductory CS courses.
Contribution: This study examined student effort and performance in an introductory programming course with respect to student-held implicit theories and self-efficacy. Background: Implicit theories and self-efficacy shed a light into understanding academic success, which must be considered when developing effective learning strategies for programming. Research Questions: Are implicit theories of intelligence and programming, and programming-efficacy related to each other and student success in programming? Is it possible to predict student course performance using a subset of these constructs…
We analyze learning data of an e-assessment platform for an introductory mathematical statistics course, more specifically the time of the day when students learn. We propose statistical models to predict students' success and to describe their behavior with a special focus on the following aspects. First, we find that learning during daytime and not at nighttime is a relevant variable for predicting success in final exams. Second, we observe that good and very good students tend to learn in the afternoon, while some students who failed our course were more likely to study at night but not suc…
For an offer of the same course for thousands of students, for face-to-face or distance learning, some uniformities must be adopted to allow a comparison of performance in the teaching-learning processes. The Evaluation Unified Process (EUP) was designed and used in an introductory programming course called the Information Process (IP) for students of the Bachelor of Science and Technology of the Federal University of ABC. Initially, the face-to-face scenario (IP-Class) is presented, pointing out the problems identified, describing the EUP designed and applied in mixed learning environments (I…
Model of active and collaborative learning applied in training specific subject makes clear advantage due to the goals of knowledge, skills that students got to develop successful future job. The author exploits the learning management system of Hanoi National University of Education to establish a learning environment in the Introductory Physics course Part 2, which supports to the blended learning, for the 1st year student. The method of pattern languages is taken to redesign learning content in the framework of ACLM, which focused on analysing real-life application and doing exercises, with…
This paper tries to justify the relevance of an introductory course in Mathematical Logic in the Philosophy curriculum for analyzing philosophical arguments in natural language. It is argued that the representation of the structure of natural language arguments in Freeman's diagramming system can provide an intuitive foundation for the inferential processes involved in the use of First Order Logic natural deduction rules.
Many have argued that statistics students need additional facility to express statistical computations. By introducing students to commonplace tools for data management, visualization, and reproducible analysis in data science and applying these to real-world scenarios, we prepare them to think statistically. In an era of increasingly big data, it is imperative that students develop data-related capacities, beginning with the introductory course. We believe that the integration of these precursors to data science into our curricula-early and often-will help statisticians be part of the dialogu…
Statistics students need to develop the capacity to make sense of the staggering amount of information collected in our increasingly data-centered world. Data science is an important part of modern statistics, but our introductory and second statistics courses often neglect this fact. This paper discusses ways to provide a practical foundation for students to learn to "compute with data" as defined by Nolan and Temple Lang (2010), as well as develop "data habits of mind" (Finzer, 2013). We describe how introductory and second courses can integrate two key precursors to data science: the use of…
Teaching object-oriented programming in an introductory programming course poses considerable challenges to the instructor. An often advocated approach to meeting this challenge is the use of a simple, object-oriented graphics library. We have developed a simple, portable graphics library for teaching object-oriented programming using C++. The library, EzWindows, allows beginning programmers to design and write programs that use the graphical display found on all modern desktop computers. In addition to providing simple graphical objects such as windows, geometric shapes, and bitmaps, EzWindow…
A personalized learning system needs a large pool of items for learners to solve. When working with a large pool of items, it is useful to measure the similarity of items. We outline a general approach to measuring the similarity of items and discuss specific measures for items used in introductory programming. Evaluation of quality of similarity measures is difficult. To this end, we propose an evaluation approach utilizing three levels of abstraction. We illustrate our approach to measuring similarity and provide evaluation using items from three diverse programming environments.
Design and Deployment of a Course-Aware AI Tutor in an Introductory Programming Course
Johannes Kepler University Linz, Institute of Business Informatics – Software Engineering(林茨约翰内斯·开普勒大学商业信息学研究所-软件工程);University of Innsbruck, Department of Computer Science(因斯布鲁克大学生物科学系)
This paper introduces the "Search, Align, and Repair" data-driven program repair framework to automate feedback generation for introductory programming exercises. Distinct from existing techniques, our goal is to develop an efficient, fully automated, and problem-agnostic technique for large or MOOC-scale introductory programming courses. We leverage the large amount of available student submissions in such settings and develop new algorithms for identifying similar programs, aligning correct and incorrect programs, and repairing incorrect programs by finding minimal fixes. We have implemented…
The proliferation of vast quantities of available datasets that are large and complex in nature has challenged universities to keep up with the demand for graduates trained in both the statistical and the computational set of skills required to effectively plan, acquire, manage, analyze, and communicate the findings of such data. To keep up with this demand, attracting students early on to data science as well as providing them a solid foray into the field becomes increasingly important. We present a case study of an introductory undergraduate course in data science that is designed to address…
Integrating Natural Language Prompting Tasks in Introductory Programming Courses
Simon Fraser University(西蒙菲莎大学);University of Auckland(奥克兰大学);University of Illinois(伊利诺伊大学);Abilene Christian University(阿比林基督教大学);Aalto University(阿尔托大学);Temple University(天普大学)
Computer Science Circles is a free programming website for beginners that is designed to be fun, easy to use, and accessible to the broadest possible audience. We teach Python since it is simple yet powerful, and the course content is well-structured but written in plain language. The website has over one hundred exercises in thirty lesson pages, plus special features to help teachers support their students. It is available in both English and French. We discuss the philosophy behind the course and its design, we describe how it was implemented, and we give statistics on its use.
We describe an introductory data science course, entitled Introduction to Data Science, offered at the University of Illinois at Urbana-Champaign. The course introduced general programming concepts by using the Python programming language with an emphasis on data preparation, processing, and presentation. The course had no prerequisites, and students were not expected to have any programming experience. This introductory course was designed to cover a wide range of topics, from the nature of data, to storage, to visualization, to probability and statistical analysis, to cloud and high performa…