Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
2008
Writing puzzle-solving and game-playing programs can generate excitement in students. Such programs are usually assigned as projects in an AI course. These are major software projects expected to be completed by students who usually have had no prior instruction in SE concepts. Often, these are required to be implemented in languages and paradigms in which the students have minimal expertise resulting in frustration among students as well as faculty. We discuss a "problem stereotypes and solution frameworks" approach to teaching CS1/2 (most likely prerequisites to AI) which ensures that the students have exposure to a judicious amount of SE methodology. We extend this approach to teaching an AI course by identifying the State-Space-Search and Two-Person-Zero-Sum-Game stereotypes. We have developed a solution framework (consisting of Java abstract classes) that can be used to solve typical problems falling into these stereotypes. Using the framework, a student will be able to develop a puzzle-solver or a game-player program mainly by focusing on problemspecific details. Preliminary experimentation has revealed that the students found it easy to use the framework and were successful in developing puzzle-solvers. We believe that our approach based on reusable software infrastructure enables students to develop interesting programs early in their undergraduate careers.
ACM SIGCSE Bulletin, 2008
We propose the use of a new design-first approach called Problem Stereotypes and Solution Frameworks, for teaching CS1 and CS2. A problem stereotype is a category of problems that can be solved using similar techniques. A solution framework is a typical solution to a problem, parts of which can be reused to solve other problems of this stereotype. Students are introduced to a stereotype through a selection of related problems, and common features among these are identified. Homework problems are selected from the same stereotype, with students expected to follow the "recipe" provided by the given examples to generate their own solutions. Using this approach reduces the stress level for beginner students, and prevents them falling prey to the "CS is HARD" myth. We present the results of our experience with this approach in two introductory classes and an upper-division Artificial Intelligence (AI) class at SUNY Brockport.
This paper describes a flexible method of teaching introductory artificial intelligence (AI) using a novel, Java-implemented, simple agent framework developed specifically for the purposes of this course. Although numerous agent frameworks have been proposed in the vast body of literature, none of these available frameworks proved to be simple enough to be used by first-year students of computer science. Hence, the authors set out to create a novel framework that would be suitable for the aims of the course, for the level of computing skills of the intended group of students, and for the size of this group of students. The content of the introductory AI course in question is a set of assignments that requires the students to use intelligent agents and other AI techniques to monitor, filter, and retrieve relevant information from the World Wide Web. It represents, therefore, a synthesis of the traditional objectivist approach and a real-world-oriented, constructivist approach to teaching programming to novices. The main aim of implementing such a pedagogy was to engage the students in learning to which they personally relate while attaining intellectual rigor. Classroom experience indicates that students learn more effectively when the traditional objectivist approach is combined with a constructivist approach than when this orthodox approach to teaching programming to novices is used alone. Index Terms-Agent framework, artificial intelligence (AI) course, intelligent agents, introductory engineering course, Java, rule-based reasoning, semantic network, World Wide Web search. I. INTRODUCTION A CCORDING to the Dutch Statistical Bureau, 77% of Dutch households have an Internet connection [1]. This ever-increasing role of computers in society clearly forecasts which type of working environment and information-communication space Dutch people, and people of the Western Hemisphere in general, are about to use in everyday activities. Even now, the majority of the people living in the Western Hemisphere use a computer to work and the Internet to communicate, to shop, to seek out new information, and to entertain themselves. This trend clearly indicates that in the future people will perform a larger and larger part of their daily activities with the aid of computers in cyberspace, across distance, cultures, and time. Of course, the specifics of such cyber worlds, smart environments, and the related interfaces (which should facilitate easy and natural communication within those environments and with a variety of embedded computing devices) are far Manuscript
Gaming and Artificial Intelligence (AI) are both seen as exciting domains by many Computer Science students. Many universities are using these two areas as a means to attract and retain students in Computer Science through course work and research projects. In this paper we discuss the development of Artificial Intelligence and game applications by students in undergraduate game and AI programming courses, and how these applications can be integrated into Computer Science courses to improve student engagement and attainment of learning outcomes.
The MAPLE Game Playing System is a web application and website that allows students to design and program game playing agents using the Python programming language. The system provides a platform for assignments in introductory computer science courses and senior and graduate-level A.I. courses. The website allows users to upload, use, and share agents that play games such as the Prisoner's Dilemma, Stag Hunt, and Matching Pennies. In this paper, we discuss the features and functionality of the system and suggest possible assignments within A.I. or introductory programming courses.
Mediterranean Journal of Social Sciences, 2014
The aim of this paper is to argue and demonstrate the use of a scriptable game-engine as a supportive technology for understanding and implementation in an active learning environment for computer science. It is argued that the use of an active learning environment as a suitable environment for computer science. As a case study, artificial intelligence is used as a representative subfield of computer science and implements an active learning environment with a scriptable game-engine for students. A demonstration is given of the use of a scriptable game-engine to teach intelligent agents using object-oriented programming concepts. The students were interviewed with general and specific open-ended questions in a written interview. Various Likert-type scale questions were also asked to rate their experience. Interpretive content analysis was used to understand their perceptions regarding the instructional design and their learning experience. Grounded in the students' and the authors' own learning experience, practical guidelines for the implementation of a scriptable game-engine as a supportive technology in any computer science classroom environment are provided.
2008
A student will be more likely motivated to pursue a field of study if they encounter relevant and interesting challenges early in their studies. The authors are PIs on two NSF funded course curriculum development projects (CCLI). Each project seeks to provide compelling curricular modules for use in the Computer Science classroom starting as soon as CS 1. In this paper, we describe one curriculum module which is the synergistic result of these two projects. This module provides a series of challenges for undergraduate students by using a game environment to teach machine learning and classic Artificial Intelligence concepts.
International Journal Of Engineering Research And Development, 2024
The increasing difficulty students face when learning programming logic has led to high rates of retention and dropout in introductory technology courses. To address this challenge, we developed a serious game designed to facilitate the learning of programming logic through an engaging, immersive experience. The game incorporates a non-linear learning approach, allowing students to progress at their own pace and revisit specific topics as needed. This flexibility supports students who may struggle with linear course structures, helping them to reinforce key concepts without feeling constrained. Additionally, the game employs a training and reuse model, enabling learners to continuously practice programming logic by returning to the game for further exercises. With cross-platform compatibility, the game can be compiled and deployed on various operating systems, making it accessible to a broad range of students. Preliminary results suggest that the game effectively aids students in mastering fundamental programming logic, potentially reducing dropout rates in technology courses and strengthening foundational skills.
34th Annual Frontiers in Education, 2004. FIE 2004., 2004
Programming is a difficult skill to acquire. It is best learned by practice and, if students are to learn effectively, at least some of this practice will have to be self-directed. Instructor's key role is to persuade our students to do this and thus to motivate them. In the past, our students identified programming as a vital skill in demand by industry. Consequently they were motivated to acquire a useful skill that would be relevant in some future job or lucrative career. Nowadays, our WEB age students have no idea why they have to study programming. Programming courses are seen simply as mandatory parts of the degree course to be negotiated. Their world of computing is multithreaded computer programs with impressive human interfaces for games and WEB. They cannot relate them with the classical programming exercises that ask for single-threaded programs performing a sequence of calculations. Given this, we decided to introduce our students in problem solving using what they view as real-world problems such as games and WEB-programming.
AI*IA 2017 Advances in Artificial Intelligence
This paper reports about teaching Artificial Intelligence (AI) by applying the experiential approach called "learning by doing", where traditional, formal teaching is integrated with a practical activity (a game competition, in our case), that is relevant for AI discipline and allows for an active and playful participation of students. Students of the course of Fundamentals of AI at the University of Bologna have been challenged (on a voluntary base) to develop an AI software able to play the game of Nine Men's Morris: at the end of the course, the software players have been compared within a tournament, so as to establish the competition winner. The game has been chosen to let the students deepen the knowledge about AI techniques in solving games, and to apply it in a real, not trivial setting. The significance and the impact of this approach, from the educational point of view, have been assessed through two questionnaires, a first one focused on the technical aspects, and a second one on the students' opinions about the initiative. The results are encouraging: students declare they felt highly motivated in studying AI algorithms and techniques, and they have been stimulated in autonomously search for extensions and new solutions not deeply investigated during traditional lessons.
2007
Artificial Intelligence (AI) is a field of both great breadth and depth. Thus, determining undergraduate material for an AI course can be problematic. Fortunately, AI is continually searching for new perspectives on problem solving that eventually propagate into the Computer Science mainstream. An approach is proposed for undergraduate AI education that utilizes these aspects of exploration and propagation. The approach introduces important individual techniques early in the computer science curriculum to form a foundation for the upper-level AI course focusing on research methods. This approach is explored using two Sudoku projects at different levels in the Computer Science curriculum, with constraint satisfaction used as the individual technique. Sudoku is a logic puzzle that has a great deal of appeal and is easily encoded as a constraint satisfaction problem domain. In the introductory-level CS 2 course, the Sudoku-based project uses a provided BackTrack class that can be employed to find a path through a maze, place eight queens, or schedule a knight's tour. This illustrates the power of recursion in general and backtracking in particular (a central aspect of constraint satisfaction techniques.) In the upper-level AI course, Sudoku is used as a problem domain for developing a puzzle solver using the full breadth of constraint satisfaction techniques and producing an optimal puzzle generator using a technique of the student's own selection. Students are required to write a research quality publication based on the results of their projects. The goal of the paper is to provide a research experience where not only a solution is derived but the reasoning process is directly explored. Due to the frequency that the AI course is taught, two separate student populations are discussed. The results from the dual population still allow for a viable exploration of this cross-curriculum approach. Finally, the paper illustrates that Sudoku is an excellent problem domain choice for teaching AI approaches in both introductory-and upper-level computer science courses.
Computer science is gradually changing, evolving and adapting according to the needs of each time period by incorporating the technological developments available. However, despite the occurring changes and the current progress in the domain, computer programming is still a vital chapter within computer science, and its teaching remains a difficult endeavour. On the other hand, students have changed the way with which they learn, interact with and search for knowledge. They spend significant amounts of their everyday lives from a very young age interacting with the computers by playing games. Thus, they are used to environments with impressive special effects and graphical interfaces where they have full control of the situation and interact with the environment's elements. Therefore, today's teachers are trying to connect computer programming learning with students' everyday usage of the computer, which does not include simple textual editors for programming lines of code with no other interaction functionalities. Hence, teachers face the challenge of incorporating environments that are similar to students' existing mentality and of creating tasks and assignments that can be executed within these environments and can provide students with the necessary programming knowledge and skills. A number of software solutions were developed towards facing the aforementioned difficulties. They can be classified into three main categories, namely educational programming environments, microworlds and educational games. Educational games used in computer programming courses are considered to present added value, due to their ability to motivate students towards actively participating in the learning process and to support high levels of interaction, group work and critical thinking. Thus, we have developed an educational game that aims to further enhance computer programming education by addressing occurring problems. This paper aims to introduce and elaborate on a holistic framework that has been constructed as a guide towards the development of this game. To this end, we collect documented difficulties identified in computer programming learning and teaching and study existing frameworks that have been proposed for the development of software solutions for computer programming courses and for the development of successful serious games that do not however focus on computer programming education. This information is thoroughly studied and refined and results in the proposed framework that could also be employed for the design and development of other future educational games focusing on computer programming education.
Computer programming is a core subject in most Computer science programmes at university level but many students have difficulties with both the understanding of theoretical concepts and with the learning of practical programming skills. Several studies have pointed out that there exist pedagogical and motivational problems resulting in high drop-out rates and low learning outcomes. On the other hand today’s students have grown up in a digital and internet connected world where playing computer games is a common and appreciated spare time activity. It has been discussed during many years amongst teachers and researchers which important features a programming language should have to support learning and which the appropriate programming paradigms are for introductory programming courses. Less has been discussed and written about modifying the actual course content and use the recognised attraction and catalytic effect of computer games. The aim of this case study is to describe, anal...
2015
In many disciplines in Science, including Computer Science, solving problems is an essential part of learning. Solving problems not only helps improve retention (Farnsworth, 1994), but also provides the practice necessary for students to be able to apply their learning. In this paper, we report on the use of Java applets to automatically generate problems on a given topic. Such applets may be used by students to reinforce their learning by solving problems online. The applets may be used as supplements to textbooks, for administering tests online, and as online resources in distance learning courses. We refer to the Java applets built to automatically generate problems, as problets. In the paper, we will discuss the characteristics and components of problets, and present the design of two problets that we have implemented for static scope in Pascal and nested selection statements in C++.
2009
Undergraduate students often start their academic course of studies with inadequate learning and thinking skills. Our college has a policy of setting high standards and demands, while supporting students' learning in a variety of ways. In this paper we present a distinctive course designed to aid students develop algorithmic problem-solving skills. The course is taught in parallel to a CS1 course and elaborates on activities such as analogical reasoning, prototyping problems, comparison between alternative solutions and reflection on problem-solving processes. It is one of the courses offered at our institution aimed at strengthening general learning and thinking skills, in addition to the regular disciplinary curriculum. Feedback from participants in the course demonstrates a developed awareness and appreciation of abstract ideas beyond programming knowledge. Students report on acquiring problem-solving skills that enable them to cope with compound problems. Additionally, stud...
Computer Science Education, 2010
Regardless of the course topic, every instructor in a computing field endeavors to engage their students in deep problem-solving and critical thinking. One of the specific learning outcomes throughout our computer science curriculum is the development of independent, capable problem solvingand we believe good pedagogy can bring such about. Our experiences indicate to us that students improve their ability to analyze and solve complex computational problems when we pursue pedagogies that support them in developing these skills incrementally. Specifically, we pursue a problem-based learning approach that we apply individually in each course as well as across the entire curriculum of our department, instead of solely considering our pedagogy on a course-by-course basis.
2017
This chapter aims to provide a general description of the preferred pedagogical approaches for the delivery and practice of computer science education based on a review of the literature. Pedagogical approaches mainly used in the teaching of computer science are unplugged activities, robotics program-ming, block-based or initial programming environments and cross-curricular activities. The preference of these pedagogical approaches varies according to the learners’ age and level. Whilst all of these ap-proaches can be used for all ages, some are aimed more at the beginner level than others. The benefits of using each of these approaches will be discussed in this chapter by way of considering educational tips.
Computer science is continuously evolving during the past decades. This has also brought forth new knowledge that should be incorporated and new learning strategies must be adopted for the successful teaching of all sub-domains. For example, computer programming is a vital knowledge area within computer science with constantly changing curriculum and its teaching remains a difficult endeavour. On the other hand, students start from a very early age to interact with computers through games and other entertaining multimedia software. Therefore, they seem to be keen on environments with impressive special effects and graphical interfaces where they interact with the environment's elements. In response, teachers are trying to connect computer programming learning with computer operations that students are familiar with, which does not include textual editors for programming lines of code with no other interaction. Educational games used in computer programming courses are considered to benefit learning, because they motivate students towards actively participating and interacting with the game's activities. Thus, we have developed an educational multiplayer game that aims to further enhance computer programming education by addressing occurring problems. This process, however, requires proper planning during the design of educational games, and thus the availability of adequate guidelines that include all characteristics that should be incorporated in such games. This paper aims to introduce and elaborate on a holistic framework that has been constructed as a guide towards the development of this game. To this end, we study existing frameworks that have been proposed for the design of educational games and document features currently supported by educational games that teach computer programming. We conclusively propose the framework we have constructed for the design of our game. This framework can be used for the design of other computer programming-specific educational games and extended for other educational domains.
Computer programming is a core subject in most Computer science programmes at university level but many students have difficulties with both the understanding of theoretical concepts and with the learning of practical programming skills. Several studies have pointed out that there exist pedagogical and motivational problems resulting in high drop-out rates and low learning outcomes. On the other hand today's students have grown up in a digital and internet connected world where playing computer games is a common and appreciated spare time activity. It has been discussed during many years amongst teachers and researchers which important features a programming language should have to support learning and which the appropriate programming paradigms are for introductory programming courses. Less has been discussed and written about modifying the actual course content and use the recognised attraction and catalytic effect of computer games. The aim of this case study is to describe, analyze and discuss the concept of learning to program by game construction. In this case study two course analyses have been combined with a literature review on pedagogy for Game Based Learning (GBL Findings from the literature review show that the idea of students constructing knowledge in their interactions with their environment is not a new one and that games have been used in educational contexts long before the introduction of computers. The idea of Game based learning has support in the constructivist learning theory concept that was introduced theoretically at university level in the 1970s by Jean Piaget and Lev Vygotsky. Results from the study also indicate that the practical application of the game construction concept has been successful in the two investigated programming courses both when it comes to student motivation and learning outcomes. Furthermore, this game based pedagogy can motivate students not only to develop themselves as future programmers but also to become more innovative and entrepreneurial by improving the quality and performance of the games in order to deploy, promote and sell them.
ACM SIGCSE Bulletin, 2009
We are developing games to increase student learning and attitudes in introductory CS courses. Wu's Castle is a game where students program changes in loops and arrays in an interactive, visual way. The game provides immediate feedback and helps students visualize code execution in a safe environment. We compared the game to a traditional programming assignment in an introductory CS course. In our study, half of the students were randomly selected to play the learning game first and half to write a program first. Our results show that students who play our learning game first outperform those who write a program before playing the game. Students in the game-first group felt they spent less time on the assignments, and all students preferred the learning game over the program. These results suggest that games like Wu's Castle can help prepare students to create deeper, more robust understanding of computing concepts while improving their perceptions of computing homework assignments.
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.