![]() A discussion of the motivation, design, problems and successes experienced during the project are presented. In essence, the project was a small capstone project for beginning software developers. This paper documents a project given to a CS1 class which took the second half of the semester to complete and addressed most, if not all of the issues cited. ![]() Capstone projects are frequently used in other computer science courses for the purpose, but are not often cited in connection with CS1 courses. Perhaps the most egregious error is assigning programs which do not require students to synthesize and reflect on earlier learning. Problematic issues that arise include programs which are too small or too well-defined to be relevant to real-world software development, assignments which do not relate implementation to design in any significant way, assignments which ignore the importance and motivational aspects of team programming, and assignments which are simply not challenging or fun to write. Providing meaningful programming assignments for students who are just learning how to write software is an important task. This research project is well suited to an ITiCSE working group as the synthesis and discussion of the literature will benefit from input from a variety of researchers drawn from different backgrounds and countries. The working group will conduct a systematic literature review based on the guidelines proposed by Kitchenham et al. It is therefore timely to conduct and present such a review in order to gain an understanding of the research focuses, to highlight advances in knowledge since 2003, and to indicate possible future directions for research. There does not appear to have been a comprehensive review of research into introductory programming since that of Robins et al. Some notable areas that have not been reviewed are assessment, academic integrity, and novice student attitudes to programming. While these aspects encompass a wide range of issues, they do not cover the full scope of research into novice programming. However, these reviews have focused on highly specific aspects, such as student misconceptions, teaching approaches, program comprehension, potentially seminal papers, research methods applied, automated feedback for exercises, competency-enhancing games, and program visualisation. ![]() Since this work there have been several reviews of research concerned with the teaching and learning of programming, in particular introductory programming. With this capability students see creating class diagrams not as a separate and tedious activity, but as an easy way to turn designs into code and to discover the design of existing code.Green's distinguishing features when compared to similar tools are that it has been developed to meet the needs of CS1-CS2 students, the semantics of its relationships are customizable, additional class relationships can be defined and it is integrated with Eclipse, a mature development environment.Ī broad review of research on the teaching and learning of programming was conducted by Robins et al. This capability makes it easy for students to alternate between a detailed code-level view and a more abstract design view of their projects. Green (an Eclipse plug-in) provides complete round-tripping between code and class diagram. This paper describes Green, a simple to use yet flexible and extensible UML class diagramming tool. While drawing diagrams by hand is in itself useful, beginning students do not always perceive the benefit of designing before coding, and create these diagrams only if they have to, and then only as an afterthought.We have found that students are much more receptive to using UML class diagrams as an integral part of their development if they see immediate benefits from doing so. The benefits of using these diagrams include providing a programming-language independent way of communicating program design, in an industry standard language. UML class diagrams are used quite commonly in CS1-CS2 courses and textbooks.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |