1,131 research outputs found

    Proceedings of the Resolve Workshop 2006

    Get PDF
    The aim of the RESOLVE Workshop 2006 was to bring together researchers and educators interested in: Refining formal approaches to software engineering, especially component-based systems, and introducing them into the classroom. The workshop served as a forum for participants to present and discuss recent advances, trends, and concerns in these areas, as well as formulate a common understanding of emerging research issues and possible solution paths

    A 2007 Model Curriculum For A Liberal Arts Degree In Computer Science

    Get PDF

    The Quest for a Practical Sophomore-Level Software Engineering Course

    Get PDF
    This paper describes our efforts starting since 2014 when we began developing a practical introductory sophomore-level software engineering course. The aim is to guide students into the fundamental theory and practice of building reliable software, with an emphasis on agile and object-oriented practices. Course topics revolve around three main themes: 1) managing complexity (how to model and scale software), 2) achieving quality (how to minimize defects) and 3) supporting usability (how to deliver user functionality). Students are exposed to theoretical and practical aspects of software production, such as software life-cycle models, strong-typing, testing, documentation, graphical user interfaces, UML, design patterns, version control systems and software deployment. The course is in constant evolution: near-future plans include adding build automation tools and DevOps concepts. We made the early decision to use reference materials available to our students at no cost; therefore, all reference materials are accessed online through resources afforded by our library

    A 2007 Model Curriculum for a Liberal Arts Degree in Computer Science

    Get PDF
    In 1986, guidelines for a computer science major degree program offered in the context of the liberal arts were developed by the Liberal Arts Computer Science Consortium (LACS) [4]. In 1996 the same group offered a revised curriculum reflecting advances in the discipline, the accompanying technology, and teaching pedagogy [6]. In each case, the LACS models represented, at least in part, a response to the recommendations of the ACM/IEEE-CS [1][2]. Continuing change in the discipline, technology, and pedagogy coupled with the appearance of Computing Curriculum 2001 [3] have led to the 2007 Model Curriculum described here. This report begins by considering just what computer science is and what goals are appropriate for the study of computer science in the landscape of the liberal arts. A curricular model for this setting follows, updating the 1996 revision. As in previous LACS curricula, [4] and [6], the model is practical; that is, students can schedule it, it can be taught with a relatively small size faculty, and it contributes to the foundation of an excellent liberal arts education. Finally, this 2007 Model Curriculum is compared with the recommendations of CC2001 [3]

    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

    From Walls to Steps: Using online automatic homework checking tools to improve learning in introductory programming courses

    Get PDF
    We describe the motivation, design, and implementation of a web-based automatic homework checker for Programming I and Programming II courses. Motivated by a problem-based-learning approach, we redesigned our first course to have over 70 short programming assignments. The goal was to change conceptual walls into steps , so that students would not feel overwhelmed at any point in time. At each step along the way, it must be clear where the student is and the next step must feel attainable. Over the last 3 years, we have learned much about proper step-size and sequencing of problems. We describe how current computer science technologies both hurt and help our students. We conclude by a critique of the system, recommendations for undergraduate programming courses, and our goals for the next release

    Static Application-Level Race Detection in STM Haskell using Contracts

    Get PDF
    Writing concurrent programs is a hard task, even when using high-level synchronization primitives such as transactional memories together with a functional language with well-controlled side-effects such as Haskell, because the interferences generated by the processes to each other can occur at different levels and in a very subtle way. The problem occurs when a thread leaves or exposes the shared data in an inconsistent state with respect to the application logic or the real meaning of the data. In this paper, we propose to associate contracts to transactions and we define a program transformation that makes it possible to extend static contract checking in the context of STM Haskell. As a result, we are able to check statically that each transaction of a STM Haskell program handles the shared data in a such way that a given consistency property, expressed in the form of a user-defined boolean function, is preserved. This ensures that bad interference will not occur during the execution of the concurrent program.Comment: In Proceedings PLACES 2013, arXiv:1312.2218. [email protected]; [email protected]

    ChatGPT in the classroom. Exploring its potential and limitations in a Functional Programming course

    Full text link
    In November 2022, OpenAI has introduced ChatGPT, a chatbot based on supervised and reinforcement learning. Not only can it answer questions emulating human-like responses, but it can also generate code from scratch or complete coding templates provided by the user. ChatGPT can generate unique responses which render any traditional anti-plagiarism tool useless. Its release has ignited a heated debate about its usage in academia, especially by students. We have found, to our surprise, that our students at POLITEHNICA University of Bucharest (UPB) have been using generative AI tools (ChatGPT and its predecessors) for solving homework, for at least 6 months. We therefore set out to explore the capabilities of ChatGPT and assess its value for educational purposes. We solved all our coding assignments for the semester from our UPB Functional Programming course. We discovered that, although ChatGPT provides correct answers in 68% of the cases, only around half of those are legible solutions which can benefit students in some form. On the other hand, ChatGPT has a very good ability to perform code review on student programming homework. Based on these findings, we discuss the pros and cons of ChatGPT in education

    Proceedings of the RESOLVE Workshop 2002

    Get PDF
    Proceedings of the RESOLVE Workshop 200
    corecore