Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 1
Figure 1: FalconCode's data collection methodology. Students write code in a Python development e... more Figure 1: FalconCode's data collection methodology. Students write code in a Python development environment (a), which is automatically uploaded to a database prior to each code execution (b). To create the dataset, automated scripts remove PII from each code sample and attach metadata tags (c). The final dataset is exported for researchers to download and use (d).
Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 1
Much debate surrounds the choice of programming language for teaching computer science. Our insti... more Much debate surrounds the choice of programming language for teaching computer science. Our institution's replacement of a visual programming language (RAPTOR) with a textual programming language (Python) provided a novel opportunity to explore the impacts of the programming language on students' learning and perception of programming. We conducted a randomized comparative study that involved 1083 students who took our introductory computing course in the 2019-2020 academic year. A unique aspect of our work stems from our course being a general education requirement; thus, our study includes students with a wide variety of backgrounds and majors. This report presents a comparison of student performance in each version of the course, including the impact of the programming language on underrepresented groups, and provides a summary of student feedback. Our results show that students in our introductory course performed similarly overall, but overwhelmingly perceived Python to be more valuable.
Ant colony optimization algorithms have long been touted as providing an effective and efficient ... more Ant colony optimization algorithms have long been touted as providing an effective and efficient means of generating high quality solutions to NP-hard optimization problems. Unfortunately, while the structure of the algorithm is easy to parallelize, the nature and amount of communication required for parallel execution has meant that parallel implementations developed suffer from decreased solution quality, slower runtime performance, or both. This thesis explores a new strategy for ant colony parallelization that involves Area of Expertise (AOE) learning. The AOE concept is based on the idea that individual agents tend to gain knowledge of different areas of the search space when left to their own devices. After developing a sense of their own expertness on a portion of the problem domain, agents share information and incorporate knowledge from other agents without having to experience it first-hand. This thesis shows that when incorporated within parallel ACO and applied to multi-...
Proceedings of the 52nd ACM Technical Symposium on Computer Science Education, 2021
The Nifty Assignments special session is about promoting and sharing the ideas and ready-to-use m... more The Nifty Assignments special session is about promoting and sharing the ideas and ready-to-use materials of successful assignments. Each presenter will introduce their assignment, give a quick demo, and describe its niche in the curriculum and its strengths and weaknesses. The presentations (and the descriptions below) merely introduce the assignment. A key part of Nifty Assignments is the mundane but vital role of distributing the materials - handouts, data files, starter code, rubrics, autograders - that make each assignment ready to adopt. Each assignment presented has complete materials freely available on the Nifty Assignments home page nifty.stanford.edu. If you have an assignment that works well and would be of interest to the CSE community, please consider applying to present at Nifty Assignments.
Proceedings of the 52nd ACM Technical Symposium on Computer Science Education, 2021
As artificial intelligence (AI) becomes more widely utilized, there is a need for non-computer sc... more As artificial intelligence (AI) becomes more widely utilized, there is a need for non-computer scientists to understand 1) how the technology works, and 2) how it can impact their lives. Currently, however, computer science educators have been reluctant to teach AI to non-majors out of concern that the topic is too advanced. To fill this gap, we propose an AI and machine learning (ML) curriculum that is specifically designed for first-year students. In this paper, we describe our curriculum and show how it covers four key content areas: core concepts, implementation details, limitations, and ethical considerations. We then share our experiences teaching our new curriculum to 174 randomly-selected Freshman students. Our results show that non-computer scientists can comprehend AI/ML concepts without being overwhelmed by the subject material. Specifically, we show that students can design, code, and deploy their own intelligent agents to solve problems, and that they understand the importance and value of learning about AI in a general-education course.
Proceedings of the 52nd ACM Technical Symposium on Computer Science Education, 2021
The Nifty Assignments special session is about promoting and sharing the ideas and ready-to-use m... more The Nifty Assignments special session is about promoting and sharing the ideas and ready-to-use materials of successful assignments. Each presenter will introduce their assignment, give a quick demo, and describe its niche in the curriculum and its strengths and weaknesses. The presentations (and the descriptions below) merely introduce the assignment. A key part of Nifty Assignments is the mundane but vital role of distributing the materials - handouts, data files, starter code, rubrics, autograders - that make each assignment ready to adopt. Each assignment presented has complete materials freely available on the Nifty Assignments home page nifty.stanford.edu. If you have an assignment that works well and would be of interest to the CSE community, please consider applying to present at Nifty Assignments.
Proceedings of the 8th ACM SIGCHI Symposium on Engineering Interactive Computing Systems, 2016
Context-aware applications oftentimes require devices to share a user's context in order to p... more Context-aware applications oftentimes require devices to share a user's context in order to provide them with relevant information and services. However, current context-sharing techniques require significant amounts of setup before they can be used, making them cumbersome when devices need to share information once or spontaneously. To address this problem, we present Bluewave, a Bluetooth-based technique that allows devices to opportunistically share context when they are nearby. With Bluewave, devices upload context to a trusted server, and extend their Bluetooth name with a URL and a set of temporary credentials. Other devices can obtain this information via Bluetooth discovery, and use it to request and receive context without having to pair. Bluewave provides a simple but effective way for users to share context through their mobile devices, supporting applications where the environment needs to collect information about the user. Our system's design has been guided by user feedback, and integrates privacy controls to let users manage how their context is being shared. In this paper, we describe Bluewave's architecture, and show how it can be used to create a wide range of "just in time" services. We argue that Bluewave's low battery consumption, combined with its speed and compatibility with existing devices, significantly reduces the cost of sharing context, and provides a practical way to create, deploy, and prototype a new generation of context-aware applications.
Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems, 2016
The physical constraints of smartwatches limit the range and complexity of tasks that can be comp... more The physical constraints of smartwatches limit the range and complexity of tasks that can be completed. Despite interface improvements on smartwatches, the promise of enabling pro ductive work remains largely unrealized. This paper presents WearWrite, a system that enables users to write documents from their smartwatches by leveraging a crowd to help trans late their ideas into text. WearWrite users dictate tasks, re spond to questions, and receive notifications of major edits on their watch. Using a dynamic task queue, the crowd re ceives tasks issued by the watch user and generic tasks from the system. In a week-long study with seven smartwatch users supported by approximately 29 crowd workers each, we val idate that it is possible to manage the crowd writing process from a watch. Watch users captured new ideas as they came to mind and managed a crowd during spare moments while go ing about their daily routine. WearWrite represents a new ap proach to getting work done from wearables using the crowd.
Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems, 2016
The ability to quickly interact with any nearby appliance from a mobile device would allow people... more The ability to quickly interact with any nearby appliance from a mobile device would allow people to perform a wide range of one-time tasks (e.g., printing a document in an unfamiliar office location). However, users currently lack this capability, and must instead manually configure their devices for each appliance they want to use. To address this problem, we created Snap-To-It, a system that allows users to opportunistically interact with any appliance simply by taking a picture of it. Snap-To-It shares the image of the appliance a user wants to interact with over a local area network. Appliances then analyze this image (along with the user's location and device orientation) to see if they are being "selected," and deliver the corresponding control interface to the user's mobile device. Snap-To-It's design was informed by two technology probes that explored how users would like to select and interact with appliances using their mobile phone. These studies highlighted the need to be able to select hardware and software via a camera, and identified several novel use cases not supported by existing systems (e.g., interacting with disconnected objects, transferring settings between appliances). In this paper, we show how Snap-To-It's design is informed by our probes and how developers can utilize our system. We then show that Snap-To-It can identify appliances with over 95.3% accuracy, and demonstrate through a two-month deployment that our approach is robust to gradual changes to the environment.
A liberdade a manifestacao do pensamento e um principio que acompanha o homem desde que se tinha ... more A liberdade a manifestacao do pensamento e um principio que acompanha o homem desde que se tinha uma expectativa de um estado democratico de direito. E tida por uma das mais importantes, e que se o estado que vivemos hoje e democratico, e porque a luta pela liberdade de expressao foi vencida, e continua caminhando para mais conquistas. Historicamente este figura nos primeiros rois de direitos individuais, assim sera encontrada na Declaracao de Direitos do Homem de 1789 os seguintes trechos falando: ‘’ Ninguem pode ser perturbado por suas opinioes, mesmo religiosas, desde que a sua manifestacao nao inquiete a ordem publica estabelecida pela lei’’ e no art. 11 que reforca dizendo: ‘’ A livre comunicacao dos pensamentos e das opinioes e um dos direitos mais preciosos do homem; todo cidadao pode, pois falar, escrever, exprimir-se livremente, sujeito a responder pelo abuso desta liberdade nos casos determinados pela lei’’. Tambem podemos ver claramente a busca do direito a liberdade de expressao na Primeira Emenda da Constituicao dos Estados Unidos que impede textualmente o congresso de infringir seis direitos fundamentais, e um desses direitos e a liberdade de expressao. Retirado da Constituicao dos Estados Unidos o texto da primeira emenda diz:’’O congresso nao deve fazer leis a respeito de se estabelecer uma religiao, ou proibir o livre exercicio das mesmas; ou diminuir a liberdade de expressao, ou da imprensa; ou sobre o direito das pessoas de se reunirem pacificamente, e de fazerem pedidos ao governo para que sejam feitas reparacoes por ofensas. ’’ A liberdade acompanha o momento historico que vive homem de acordo com suas necessidades, ela mostra que o conteudo da liberdade se amplia com a evolucao da humanidade. Fortalece-se, estende-se, a medida que a atividade humana se alarga, liberdade e conquista constante. O direito de expressar-se para pessoas indeterminadas, pode ser feito atraves de livros, jornais, radio,televisao,musica, se esses nao expressos de forma correta se torna uma fonte de tormento aos individuos da sociedade.A todo instante se nao controlados,poderiam ser objeto de informacoes inveridicas, e expressoes valorativas de conteudo negativo,tudo isso feito sem qualquer beneficio social,mas com a inevitavel consequencia de causar danos morais as pessoas referidas.A Constituicao Federal do Brasil procurando um sistema de responsabilidade bastante desenvolvido e eficaz diz no art. 5°,IV, que e proibido o anonimato,isso porque ela considera que a falta de coragem para assumir o que pensa, e terrivel.Mas este fenomeno e ainda mais grave,ele estimula opinioes futeis e maldosas,pois a falta de autor impede que o ofendido possa se colocar contra.Sem duvida a identificacao do responsavel pelos atos e indispensavel para que se desenvolvam os atos posteriores tendentes a sua responsabilizacao.
Parallelizing Ant Colony Optimization via Area of Expertise Learning
Ant colony optimization algorithms have long been touted as providing an effec-tive and efficient... more Ant colony optimization algorithms have long been touted as providing an effec-tive and efficient means of generating high quality solutions to NP-hard optimization problems. Unfortunately, while the structure of the algorithm is easy to parallelize, the nature and amount of communication required for parallel execution has meant that parallel implementations developed suffer from decreased solution quality, slower runtime performance, or both. This thesis explores a new strategy for ant colony parallelization that involves Area of Expertise (AOE) learning. The AOE concept is based on the idea that individual agents tend to gain knowledge of different ar-eas of the search space when left to their own devices. After developing a sense of
The Use of Ubiquitous Computing for Business Process Improvement
IEEE Transactions on Services Computing, 2016
ABSTRACT Due to the cut throat competition among organizations, business process improvement is n... more ABSTRACT Due to the cut throat competition among organizations, business process improvement is now an everyday activity. A relentless activity that makes business processes more complex than ever. As they get more complex, the improvement rounds become time-consuming, costly and the quality of each outcome is put into jeopardy, which is somehow paradoxical with the concept of improvement. In this paper, we propose a business process improvement technique based on ubiquitous computing. First, we couple business processes with ubiquitous computing and define a ubiquitous business process. Then, we explain how ubiquitous computing positively impacts the performance metrics of business processes. Afterwards, we set a specification for designing ubiquitous business processes by extending BPMN. Finally, we propose a concrete case study about time-banking to corroborate our theory. A comparative study of the same process, in ubiquitous and non-ubiquitous versions, is established. The results clearly illustrate that ubiquitous computing impacts positively the business process performance metrics. Still, the case study corroborates that ubiquitous computing not only improves a business process but also enables it to get improved with the least of human interventions.
Using Multiple Contexts to Detect and Form Opportunistic Groups
Proceedings of the 18th ACM Conference on Computer Supported Cooperative Work & Social Computing, 2015
We present a new technique that allows mobile devices to opportunistically group with one another... more We present a new technique that allows mobile devices to opportunistically group with one another, thus improving their ability to facilitate one-time or spontaneous exchanges of information. In our approach, devices share context with each other, and form groups when these readings are found to be similar to one another. Through a formative study, we examine the limitations of using a single type of context to form groups, and show how leveraging multiple contexts improves our ability to detect and form relevant groupings. We then present DIDJA, a robust software toolkit that automatically collects and analyzes contextual information in order to find and form groups. Through two prototypes, we demonstrate how DIDJA enhances existing user experiences, and show how developers can use our toolkit to easily facilitate frictionless collaborations between users and their environment. We then perform an extended experiment and show how DIDJA is able to accurately form groups under realistic conditions.
Proceedings of the 18th ACM Conference on Computer Supported Cooperative Work & Social Computing, 2015
In this paper, we present the Group Context Framework (GCF), a general-purpose toolkit that allow... more In this paper, we present the Group Context Framework (GCF), a general-purpose toolkit that allows mobile devices to opportunistically share contextual information. GCF provides a standardized way for developers to request contextual data for their applications. The framework then intelligently groups with other devices to satisfy these requirements. Through two prototypes, we demonstrate how GCF can be used to support a broad range of collaborative and cooperative tasks. We then show how our framework's architecture allows devices to opportunistically detect and collaborate with one another, even when running different applications. Finally, we present two real-world domains that show how GCF's ability to form groups increases users' access to relevant and timely information, and discuss possible incentives and safeguards to context sharing from a user standpoint.
Proceedings of the 9th annual conference on Genetic and evolutionary computation, 2007
We examine the Genetically Modified Ant Colony System (GMACS) algorithm [3], which claims to dyna... more We examine the Genetically Modified Ant Colony System (GMACS) algorithm [3], which claims to dynamically tune an Ant Colony Optimization (ACO) algorithm to its near-optimal parameters. While our research indicates that the use of GMACS does result in higher quality solutions over a hand-tuned ACO algorithm, we found that the algorithm is ultimately hindered by its emphasis on randomized ant breeding. Specifically, our investigation shows that tuning ACO parameters on a single colony using a genetic algorithm, as done by GMACS, is not as effective as it may first appear and has several drawbacks.
Uploads
Papers by Adrian Freitas