Open Access. Powered by Scholars. Published by Universities.®

Physical Sciences and Mathematics Commons

Open Access. Powered by Scholars. Published by Universities.®

Computer Sciences

PDF

City University of New York (CUNY)

Series

Programming

Articles 1 - 6 of 6

Full-Text Articles in Physical Sciences and Mathematics

Exploratory Programming In The Arts And Humanities [Book Review], Kelly Hammond Jan 2022

Exploratory Programming In The Arts And Humanities [Book Review], Kelly Hammond

Publications and Research

Exploratory Programming is a testament to what open-access can mean, especially in an e-learning environment. Used in full, it is a free course (that relies on free and open software) from a gifted MIT professor whose pedagogy is clear in structure and tone. He scaffolds, promotes predictive thinking, lauds collaborative learning, and urges readers to do not just to read. Used in part, it can be equally powerful.


Introduction To Computers And Programming Using Python: A Project-Based Approach, Esma Yildirim, Daniel Garbin, Mathieu Sassolas, Kwang Hyun Kim Jan 2021

Introduction To Computers And Programming Using Python: A Project-Based Approach, Esma Yildirim, Daniel Garbin, Mathieu Sassolas, Kwang Hyun Kim

Open Educational Resources

Welcome to the “Introduction to Computers and Programming using Python: A Project-based Approach”. This book is designed to teach basic programming skills to students who are new to the field of computing using a project-based learning approach. It has been designed to give freedom to the instructor, both in format and topics ultimately used throughout the course. While we provide 13 turnkey projects, it is only expected that 3 or 4 are used over the course of a semester, and all projects are provided both as textual instructions (the student version of this OER) and Jupyter Notebooks (one with and …


Automated Refactoring Of Legacy Java Software To Default Methods, Raffi T. Khatchadourian, Hidehiko Masuhara May 2017

Automated Refactoring Of Legacy Java Software To Default Methods, Raffi T. Khatchadourian, Hidehiko Masuhara

Publications and Research

Java 8 default methods, which allow interfaces to contain (instance) method implementations, are useful for the skeletal implementation software design pattern. However, it is not easy to transform existing software to exploit default methods as it requires analyzing complex type hierarchies, resolving multiple implementation inheritance issues, reconciling differences between class and interface methods, and analyzing tie-breakers (dispatch precedence) with overriding class methods to preserve type-correctness and confirm semantics preservation. In this paper, we present an efficient, fully-automated, type constraint-based refactoring approach that assists developers in taking advantage of enhanced interfaces for their legacy Java software. The approach features an extensive …


Hackathons For Libraries And Librarians, Robin Camille Davis Sep 2016

Hackathons For Libraries And Librarians, Robin Camille Davis

Publications and Research

Hackathons can be ideal opportunities for libraries and librarians to promote new services and tools. In these social events, attendees form teams and work on a project together within a given time limit. This article explains hackathons, provides a brief history, and details how libraries and librarians can get involved. Similar event structures, like hack days and edit-a-thons, are also considered.


Detecting Broken Pointcuts Using Structural Commonality And Degree Of Interest, Raffi T. Khatchadourian, Awais Rashd, Hidehiko Masuhara, Takuya Watanabe Nov 2015

Detecting Broken Pointcuts Using Structural Commonality And Degree Of Interest, Raffi T. Khatchadourian, Awais Rashd, Hidehiko Masuhara, Takuya Watanabe

Publications and Research

Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base code can lead to join points incorrectly falling in or out of the scope of pointcuts. Deciding which pointcuts have broken due to base-code changes is daunting, especially in large and complex systems. We present an automated approach that recommends pointcuts that are likely to require modification due to a certain base-code change and ones that do not. Our hypothesis is that join points selected by a pointcut exhibit common structural characteristics. Patterns describing such commonalities recommend pointcuts that have potentially broken to the developer. The approach …


Pointcut Rejuvenation: Recovering Pointcut Expressions In Evolving Aspect-Oriented Software, Raffi T. Khatchadourian, Phil Greenwood, Awais Rashid, Harry Xu May 2012

Pointcut Rejuvenation: Recovering Pointcut Expressions In Evolving Aspect-Oriented Software, Raffi T. Khatchadourian, Phil Greenwood, Awais Rashid, Harry Xu

Publications and Research

Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base code can lead to join points incorrectly falling in or out of the scope of pointcuts. In this paper, we present an automated approach that limits fragility problems by providing mechanical assistance in pointcut maintenance. The approach is based on harnessing arbitrarily deep structural commonalities between program elements corresponding to join points selected by a pointcut. The extracted patterns are then applied to later versions to offer suggestions of new join points that may require inclusion. To illustrate that the motivation behind our proposal is well founded, …