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.
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
This paper describes the use of clickers in a Java programming course. However, instead of using ordinary hardware clickers, we use software clickers, implemented in Java, that allow for much richer problem types than the traditional multiple-choice question. The problem types we introduce in this paper give students a much higher degree of freedom in solving a problem, and thus more opportunities for making mistakes. We look at mistakes as learning opportunities, and we introduce a pedagogical approach that allows students to learn from mistakes of their peers. We finish with a case study and evaluation of our implementation of these ideas in an undergraduate Java programming course.
Games have been a form of entertainment for centuries and used to focus and motivated which is a great feature that can be utilize games as the basis for creating game-based educational applications. Games are part fun and part leisure, trying to educate using games is very interesting, but care must be taken in designing the game interfaces as they should be simple, attractive, usable, and at the same time portray the concept of learning. Many students have found Computer Science as a very challenging subject and some of the most challenging for some new CS1 students is their first programming language. We lose many students to other majors at the level of CS1 and can weed out potential great future computer scientists. In our computing department, Java is the first programming language and many students have problems with it because they do not understand the concepts of classes, objects, encapsulation, inheritance and polymorphism. It has been found that games motivate students and focuses them for long period of time. With long periods of time being required to have basic functional understanding of programming language, games can play an important role for intrinsic motivation. We propose a Java game called " JavaZOO " to demonstrate the concepts of programming by mapping the animal kingdom to the object-oriented design principles.
Vojnotehnicki glasnik, 2012
The paper describes the self-directed problem-based learning system (PBL) named Java PBL. The expert module is the kernel of Java PBL. It involves a specific domain model, a problem generator and a solution generator. The overall system architecture is represented in the paper. Java PBL can act as the stand-alone system, but it is also designed to provide support to learning management systems (LMSs). This is provided by a modular design of the system. An LMS can offer the declarative knowledge only. Java PBL offers the procedural knowledge and the progress of the learner programming skills. The free navigation, unlimited numbers of problems and recommendations represent the main pedagogical strategies and tactics implemented into the system.
International Journal of Artificial Intelligence & Applications, 2011
The paper describes the design of a web based intelligent tutoring system for teaching Java objects to students to overcome the difficulties they face. The basic idea of this system is a systematic introduction into the concept of Java objects. The system presents the topic of Java objects and administers automatically generated problems for the students to solve. The system is dynamically adapted at run time to the student's individual progress. The system provides explicit support for adaptive presentation constructs. An initial evaluation study was done to investigate the effect of using the intelligent tutoring system on the performance of students enrolled in computer science III in the Faculty of Engineering and Information technology at Al-Azhar University, Gaza. The results showed a positive impact on the evaluators.
Science of Computer Programming, 2004
Most of the Java tutorials found on the Web are more or less well reformatted versions of lecture notes or textbooks. As a consequence these tutorials have just as little interactivity and adaptivity as the printed originals. The tutorial JOSH-online presented in this article enables students to learn Java programming step by step, by interactive trial and error. The tutorial not only provides exercises, but encourages students to consolidate and extend their newly acquired knowledge by means of own hypotheses and their experimental verification. In this paper we describe the design of the tutorial, the underlying interpreter and its integration.
Foreword When planning a Java programming course in a school or even in a business context, the reduced number of hours available often has to be taken into account. A program that includes all aspects of the language is not feasible (for a much more extensive approach, from the syntactic point of view and for the topics dealt with, see note 3), but rather topics must be chosen with the aim of involving and also entertaining users, and hopefully encouraging to study the subject in greater depth in the future. Here we put forward a"possible method" (one of many) that has been repeatedly tested on many students. The method includes the advice to students to use the help and online help often (instructions on how to do this will be provided) to encourage autonomy in those who write programs from the outset. At the end, you will have learned to write some programs and be ready to start creating other projects (not exclusively in Java). The cognitive structures transmitted during the course are first and foremost linguistic structures. Noam Chomsky's Generative Transformational Grammar is the basic text from which the initial idea of the method started. In a 2001 interview, Dijkstra stated a desire for "elegance", whereby the correct approach would be to process thoughts mentally, rather than attempt to render them until they are complete. Here we can add that the constant correct use of formal language can contribute to the correct formulation of thoughts. If then, as in the case of Java, we are dealing with an object-oriented language, the syntactic structure contributes greatly to the organisation of thought. A linguistic model must therefore be proposed at the same time as the problem to be solved is presented, whether the problem is mathematical or otherwise. It is preferable to first analyse the algorithm in a discussion and then immediately formalise it in Java: no metalanguages or intermediate formal languages are needed as it could be misleading to isolate the problem from its final "linguistic solution". Finally, structured and functioning examples containing different linguistic constructs in relation to each other are analysed, and in this way more information is communicated to users than when single separate syntactic examples are used. Introduction From a technical point of view, every program in Java can be described as follows • It consists essentially of classes: the class is the linguistic unit that contains data (variables or properties) and operations (methods) on the data and it is recognisable because its name is preceded by the keyword class; • The classes are divided into packages, which group the classes according to their functionality (program start, graphics, mathematical or other operations and so on); • The classes are mutually related through two possible types of relationship: inheritance or composition; • Each class is given a constructor, a particular method that has the same name as the class, which is activated every time a class is created (with the instruction new) and contains all the instructions that must be executed first and only once each time the class is instantiated (created); • The call or activation of a class method by a method of another class can occur every time two classes are related (through inheritance or composition). If the method is public, the call can also be made from a class belonging to another package. Typically, when the program starts with a graphical interface (window), data is usually entered in the graphics package (frame) and this data is then processed by methods belonging to the classes of another package, whose name (mathematics, dictionaries, etc.) will be representative of the type of operations it contains; • At this point we provide the syntax tools that allow you to write any program as a set of classes in relation to each other, containing both data and operations on the data (see yes concept algebraic structure); • We provide information on the important concept of data encapsulation and introduce the use of the keyword private, thanks to which the data of a class are not directly accessible and modifiable by the operations of another class, for security reasons; • Use of get methods are introduced, followed by some setmethods. • We explain the fundamental concept of listener, which allows the program to interact with the operating system. • It should be noted that the language has many pre-defined class packages, which can be used by means of import instructions. • The imported classes that are often used include those that implement the basic data structures of computing: ArrayList, List, Hashmap, Map. In all the dictionaries created in the text examples, the HashMapis implemented, where the clear and constructive implementation of the function concept can be seen. Once the syntactic rules of language and the fundamental principles of object-oriented programminghave been learnt, with reference to examples written correctly in Java, the first step is to start writing programs by modifying or extending the available code, then, in the second step, code is created directly. The first step should not be omitted as, before starting to speak or write in a new language, it is essential to hear it spoken and see it written by those who have already mastered it. Learning syntactic rules is important but not sufficient, not even for a formal language. At the beginning the code writing method may involve a certain degree of automatism, for example a second button is created by observing how the first one was created, a class is instantiated and then a method is recalled, taking an example from a similar operation, and so on. It is in fact a constructive automatism, which helps to fix the essential basic linguistic models in the mind, which will then allow creative code to be generated later on. The correction of projects written by the students must be constant and immediate, in order to allow them to interact in a continuous manner with the code, which should lead to working programs as quickly as possible. When possible, hours of lectures can be reinforced by e-learning activities, thus using learning techniques in blended learning . Type 1 information containers For years we have called them e-books, even if the projects do not fully correspond to what is generally known as ebooks . Students create hundreds of them each year, choosing the multilingual, heterogeneous contents that most interest them . When they create these information containers that are interactive and can always be modified, they come into contact with very important aspects of language, including, not in order of importance: • Interfaces • Inheritance • XML files • String management • Redefinition of the paintComponent () method and use of the device context • Uploading images as wallpapers • Creation of multiple panels • Scroll management • HashMap, list, ArrayList and other Collections with parameterised types • The BufferedImage class and the getRGB () method with practical applications such as geographic maps (selection of a region by colour, etc.) • Use of the coordinates of an image to identify some of its parts (identification of planets and so on) • Links to websites through the URL and URI classes Finally arriving at the creation of a jar executable from any project, which can be run outside of an integrated environment and used on any computer on which the Java run-time has been installed. From a mathematical point of view, important concepts such as those of function and of algebraic structure can be seen applied in practice. As all this may be contained within a single program, we will be able to document it in detail. In any case, bringing together many significant aspects of language in one project helps to understand and remember them more easily.
2000
Abstract Problem solving is an important part of learning computer science, yet the choice of problems offered in textbooks (which is the traditional source of problems) is limited, static, non-interactive and lacks animation. In order to address these issues, we propose Java applets that automatically generate problems, provide the necessary visualization and animation, solve problems and provide feedback to the user. They are also capable of logging usage. We refer to such applets as “problets”.
Proceedings of the 27th ACM Conference on on Innovation and Technology in Computer Science Education Vol. 1, 2022
We present Jask, a system capable of generating questions about a learner's code written in Java. Given Java code as input, Jask provides a set of meaningful questions formulated in terms of the actual code (using its constructs and identifiers) and the corresponding correct answers. We integrated Jask in a web-based system where students submit their code (e.g., from lab exercises), answer questions about it, and obtain immediate formative feedback with the correct answers. An initial study involving 123 distinct introductory programming students providing 2274 answers revealed that questions pertaining to program dynamics tend to register low scores, possibly evidencing fragile comprehension of programming constructs. Participants were surveyed, revealing a positive view towards the usefulness of Jask, especially with respect to consolidating terminology.
This paper describes an interactive programming assistance tool (iPAT) which is designed to assist students in solving introductory programming problems in C# and to reduce the instructor's work load in handling programming lab sessions. This is the only tool developed to assist students and instructors in solving their practical lab session problems, which comes with features such as error handling, screen sharing, a lab resource management system and a solution archive to solve common errors in C# programming. During a large computer lab setting with over 50 students, communication can be very limited between students and lab instructors. This problem was addressed via a fully integrated desktop application which allows students to undertake programming exercises and receive interactive guidance in getting their programs to compile and run. To ensure the accuracy of the system, it was deployed in a LAN network of ten computers which gave the idea of virtual lab environment. Then according to a five point scale ten undergraduates were asked to rank the usefulness of the system giving one to indicate that the system is 'not at all useful' and five to indicate that the system is 'extremely useful'. According to the provided rankings an average rating of 4.3 was obtained.
Proceedings of the fifth annual CCSC northeastern …, 2000
Proceedings, 2018
In this work we present a methodology of “learning by example” assisted by computers in the study of mathematics. We propose the use of mathematical computational packages to program applets aimed to solve mathematical problems. Each time the student runs the applet, a new random instance of the problem is generated, and he is guided, step by step to solve it. The student can repeat the process as many times as necessary until his knowledge is consolidated, by taking a more active role in the process after the first repetitions of several instances.
Proceedings of the 21st Central European Conference on Information and Intelligent Systems
Teaching programming faces some general teaching problems, but also confronts some specific problems such as understanding of programming concepts as well as algorithms for solving programming tasks. Our teaching experience with students at university beginner's level has shown that students often try to avoid understanding programming concepts by some "shortcuts", like learning program code by rote, copying programs from colleagues etc. In this paper we introduce automatic on-line generation of programming exercises with code examples for students. This enables high level personalization of student's programming tasks and makes avoiding of understanding concepts more difficult. Along with introduction of the on-line solution, some open questions about correctness of exercises, controlling the solutions and the whole teaching process are also discussed.
We have designed this third edition of Java, Java, Java to be suitable for a typical Introduction to Computer Science (CS1) course or for a slightly more advanced Java as a Second Language course. This edition retains the “objects first” approach to programming and problem solving that was characteristic of the first two editions. Throughout the text we emphasize careful coverage of Java language features, introductory programming concepts, and object-oriented design principles.
2002
Problem Solving is as important for learning Computer Science as programming. Yet, the choice of problems offered in textbooks, the traditional source of problems, is limited. In order to provide students with a vast supply of problems, we propose to build Java applets that automatically generate problems and provide necessary feedback to the user. We refer to such problem applets as problets. In this paper we will discuss the design and features of a problet for static referencing environment in Pascal.
Algorithms, 2010
Both learning how to program and understanding algorithms or data structures are often difficult. This paper presents three complementary approaches that we employ to help our students in learning to program, especially during the first term of their study. We use a web-based programming task database as an easy and risk-free environment for taking the first steps in programming Java. The Animal algorithm visualization system is used to visualize the dynamic behavior of algorithms and data structures. We complement both approaches with tutorial videos on using the Eclipse IDE. We also report on the experiences with this combined approach.
2015
The popularity of the Java language for educational materials development continues to increase. Unfortunately, most of these developed tools are isolated Java applets that explain a single “textbook ” educational concept. These disjoint Java applets, while sometimes providing excellent educational materials, lack the system level, top-down approach that is prevalent in engineering. In this paper, we present our work on developing Java applets, and web-based courseware materials, for microelectronics and photonics (lasers and optics) that incorporates this system-level top-down approach. Specifically, we will discuss the use of consumer products, such as barcode scanners and CD-ROM’s, as effective microelectronic and photonic systems learning modules. The implementation of this top-down consumer product approach requires that the developer understand the applications of these theoretical and educational materials. In this way, the developed web-based courseware provides excellent en...
Journal of Mathematics and Science Teacher
This article presents two different classroom situations in which two pairs of students, one in grade 2 and the other in grade 6, attempted mathematically challenging problems through GeoGebra applets. Their reasoning, conjecture making, and argumentation is analyzed using Pea's (1985, 1987) theory of technology as amplifier and reorganizer and the notion of internal and external representations. GeoGebra played the role of amplifier and reorganizer in enabling students' explorations and led them to make conjectures. Furthermore, it was observed that students' static internal representations were enhanced to more dynamic external representations and this played a significant role in developing students' thinking. The three aspects of fidelity have been discussed with regard to the use of GeoGebra based applets and how such applets need to be critically designed and assessed in order to support students' learning.
The Common Core State Standards in Mathematics state that students should be able to reason mathematically and be able to critique the reasoning of others. Applets (virtual manipulatives and simulations that usually run on a web page) allow teachers to create a classroom environment that supports these standards, but only if the applet, and the lesson using it, supports inquiry. This paper describes the process of searching for applets that support reasoning and sense-making, designing a student-centered lesson using an applet, and using the applet in a way that truly encourages students to reason mathematically and critique the reasoning of others. These techniques may be adapted for the use of apps on mobile devices.
Computer Applications in Engineering Education, 2020
Continuous assessment is essential in education. It should be an integral part of education that provides immediate feedback to students. Unfortunately, the assessment of programming source code is still a hand-operated and errorprone task, and can take weeks before the student gets feedback. This study presents a semiautomatic code assessment method able to automatically apply black-box assessment (which relies on the comparison of input-output pairs) and white-box assessment (which relies on checking different source code properties). The method proposed is a general-purpose assessment system that was originally designated to be used in engineering education, but that can be used in other educational contexts to assist the assessment of any Java programming assignments or exams. The main advantage of this system is that the assessment made is quicker, exhaustive, and objective; and it does not produce false positives. After the application of this method over two years in several
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.