110 research outputs found

    Tool support for implementation of object-oriented class relationships and patterns

    Get PDF

    A gentle transition from Java programming to Web Services using XML-RPC

    Get PDF
    Exposing students to leading edge vocational areas of relevance such as Web Services can be difficult. We show a lightweight approach by embedding a key component of Web Services within a Level 3 BSc module in Distributed Computing. We present a ready to use collection of lecture slides and student activities based on XML-RPC. In addition we show that this material addresses the central topics in the context of web services as identified by Draganova (2003)

    ClockIt: Monitoring and Visualizing Student Software Development Profiles

    Get PDF
    Monitoring software development practices can result in improved estimation abilities and increased software quality. A common drawback associated with many monitoring schemes is the manual overhead needed to make the monitoring effective. This overhead results in users abandoning the monitoring scheme shortly after it is adopted or poor quality in the data produced. Alternatives have been introduced that automate part, or all of the monitoring. ClockIt is a fully automated extension for the pedagogical integrated development environment (IDE) BlueJ, and focuses on aspects of the development practices seen in introductory level students. By automatically monitoring introductory student development behavior, instructors and students gain insight about development practices. In addition to the ClockIt extension, Visualization tools are provided to assist students or instructors in exploring the data. Data collected via ClockIt for four semesters confirm previous independent findings. And, new insights about how compilation error frequency changes in introductory students and the relationships between pairs of compilations have been discovered

    The Design and Implementation of a Notional Machine for teaching Introductory Programming

    Get PDF
    Comprehension of both programming and programs is a difficult task for novices to master, with many university courses that feature a programming component demonstrating significant failure and drop out rates. Many theories exist that attempt to explain why this is the case. One such theory, originally postulated by du Boulay, is that students do not understand the properties of the machine; they do not understand what they are or how they are controlling them by writing code. This idea formed the development of the notional machine, which exists solely as an abstraction of the physical machine to aid with its understanding and comprehension. This work contributes a design for a new notional machine and a graphical notation for its representation. The notional machine is designed to work with object-oriented languages (in particular Java). It provides several novel contributions over pre-existing models -- while existing similar models are generally constrained to line by line operation, the notional machine presented here can scale effectively across many program sizes, from few objects and lines to many. In addition, it is able to be used in a variety of formats (in both electronic and unplugged form). It also melds together three traditionally separate diagrams that had to be understood simultaneously (the stack trace, class diagram and object heap.) Novis, an implemented version of the notional machine, is also presented and evaluated. It is able to create automatic and animated versions of notional machine diagrams, and has been integrated into BlueJ's main interface. Novis can present static notional machine diagrams at selected stages of program execution, or animate ongoing execution in real time. The evaluation of Novis is presented in two parts. It is first tested alongside a selection of methodically chosen textbook examples to ensure it can visualise a range of useful programs, and it then undergoes usability testing with a group of first year computer science students

    Approaches to Support Student Learning in Introductory Programming Laboratory Classes

    Get PDF
    Objectives: This thesis will explore some innovative solutions to communication difficulties that exist in higher education teaching of introductory programming. Communication between a teacher and student is important, as it is the main opportunity where a student can ask a teacher questions about a particular problem they have, and a teacher can give feedback to direct them towards a solution. It is expected that through utilising technology in laboratory practical classes, communication between teachers and student can be improved. Methods: This thesis primarily explores the possibilities of using student compiler and method invocation data, collected during a practical class and sent directly to a teacher. This data maybe beneficial as a method of allowing teachers to see if a student requires help. This thesis utilises a variety of research methods including questionnaires, observations of classroom interactions and collection of data recorded from student and teachers interactions with the technology. The approaches are used during an investigation into the current approaches of laboratory practical teaching, before progressing onto investigations using the technology developed that accompanies this thesis. Results: The results identified that the majority of the students and teachers who used the technology felt that it improved their ability to communicate within laboratory practical classes. The teachers felt that they could use the data collected by the technology to view activity from the students and see a student’s progress. The teachers could interpret the data collected from the technology and students who needed help could be identified. Conclusions: This thesis has demonstrated that technology has the potential to improve communication in laboratory classes, and enable teachers to support students more effectively. However, the technology developed in this thesis, does not eliminate the requirement for a teacher to interact with a student face-to-face, but rather its role is to act as an indicator of students who may need assistance

    SKot: A web-based Structured Code Editor for introductory programming in Kotlin

    Get PDF
    The use of Structured Code Editors such as Scratch for introduction to programing, especially at a younger age is prevalent in modern education systems. Transitioning to text-based editors sometimes proves to be challenging for beginners especially when it comes to learning the syntax of a modern language. This work goes into the research on Structured Code Editors and delves into the implementation of a Projectional Editor that presents the code to the user as it would appear in a text-based editor in a modern programing language such as Kotlin, while preserving syntactical correctness during edits. A web-based editor, named SKot for Structured Kotlin was implemented using JavaScript (JSON, React and Redux). A technique for implementing the Projectional Editor using these technologies is described in detail. Then, SKot is compared to other modern code editors and further work is proposed to improve it.O uso de Editores Estruturados de Código como o Scratch para introdução à programação, especialmente em idades mais jovens, é prevalente nos sistemas de educação modernos. A transição para editores de código baseados em texto pode ser desafiante para iniciantes, principalmente no que diz respeito à aprendizagem da sintaxe de uma linguagem moderna. Este trabalho explora a investigação atual sobre Editores Estruturados de Código e explica a implementação de um Editor Projecional que apresenta o código ao utilizador com a mesma aparência que teria num editor de texto numa linguagem de programação moderna, como Kotlin, enquanto preserva a correção sintática durante edições. Um editor no web browser, chamado SKot (Structured Kotlin), foi implementado usando JavaScript (JSON, React e Redux). Uma técnica para implementar o Editor Projecional usando estas tecnologias é descrita em detalhe. Por fim, o SKot é comparado com outros editores de código modernos e descreve-se trabalho futuro relativo a melhoramentos no mesmo

    Introductory programming: a systematic literature review

    Get PDF
    As 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 several reviews that focus on specific aspects of introductory programming, there has been no broad overview of the literature exploring recent trends across the breadth of introductory programming. This paper is the report of an ITiCSE working group that conducted a systematic review in order to gain an overview of the introductory programming literature. Partitioning the literature into papers addressing the student, teaching, the curriculum, and assessment, we explore trends, highlight advances in knowledge over the past 15 years, and indicate possible directions for future research

    Computer Science Principles with Java

    Get PDF
    This textbook is intended to be used for a first course in computer science, such as the College Board’s Advanced Placement course known as AP Computer Science Principles (CSP). This book includes all the topics on the CSP exam, plus some additional topics. It takes a breadth-first approach, with an emphasis on the principles which form the foundation for hardware and software. No prior experience with programming should be required to use this book. This version of the book uses the Java programming language.https://rdw.rowan.edu/oer/1018/thumbnail.jp
    • …
    corecore