BibTeX for papers by David Kotz; for complete/updated list see https://www.cs.dartmouth.edu/~kotz/research/papers.html @InProceedings{jois:sigcse, author = {Tushar Jois and Tina Pavlovich and Brigid McCarron and David Kotz and Timothy Pierson}, title = {Smart Use of Smart Devices in Your Home: A Smart Home Security and Privacy Workshop for the General Public}, booktitle = {Proceedings of the ACM Technical Symposium on Computer Science Education (SIGCSE)}, year = 2024, month = {March}, pages = {611--617}, publisher = {ACM}, copyright = {ACM}, DOI = {10.1145/3626252.3630925}, URL = {https://www.cs.dartmouth.edu/~kotz/research/jois-sigcse/index.html}, abstract = {With 'smart' technology becoming more prevalent in homes, computing is increasingly embedded into everyday life. The benefits are well-advertised, but the risks associated with these technologies are not as clearly articulated. We aim to address this gap by educating community members on some of these risks, and providing actionable advice to mitigate risks. To this end, we describe our efforts to design and implement a hands-on workshop for the public on smart-home security and privacy. \par Our workshop curriculum centers on the smart-home device lifecycle: obtaining, installing, using, and removing devices in a home. For each phase of the lifecycle, we present possible vulnerabilities along with preventative measures relevant to a general audience. We integrate a hands-on activity for participants to put best-practices into action throughout the presentation. \par We ran our designed workshop at a science museum in June 2023, and used participant surveys to evaluate the effectiveness of our curriculum. Prior to the workshop, 38.8\% of survey responses did not meet learning objectives, 22.4\% partially met them, and 38.8\% fully met them. After the workshop, only 9.2\% of responses did not meet learning objectives, while 29.6\% partially met them and 61.2\% fully met them. Our experience shows that consumer-focused workshops can aid in bridging information gaps and are a promising form of outreach.}, } @InProceedings{mangar:testbed, author = {Ravindra Mangar and Jingyu Qian and Wondimu Zegeye and Mounib Khanafer and Abdulrahman AlRabah and Ben Civjan and Shalni Sundram and Sam Yuan and Carl Gunter and Kevin Kornegay and Timothy J. Pierson and David Kotz}, title = {Designing and Evaluating a Testbed for the Matter Protocol: Insights into User Experience}, booktitle = {Proceedings of the NDSS Workshop on Security and Privacy in Standardized IoT (SDIoTSec)}, year = 2024, month = {February}, publisher = {NDSS}, copyright = {the authors}, DOI = {10.14722/sdiotsec.2024.23012}, URL = {https://www.cs.dartmouth.edu/~kotz/research/mangar-testbed/index.html}, note = {Distinguished Paper Award}, abstract = {As the integration of smart devices into our daily environment accelerates, the vision of a fully integrated smart home is becoming more achievable through standards such as the Matter protocol. In response, this research paper explores the use of Matter in addressing the heterogeneity and interoperability problems of smart homes. We built a testbed and introduce a network utility device, designed to sniff network traffic and provide a wireless access point within IoT networks. This paper also presents experience of students using the testbed in an academic scenario.}, } @TechReport{carrigan:fitbit, author = {Joseph Carrigan and David Kotz and Aviel Rubin}, title = {STEM Outreach Activity with Fitbit Wearable Devices}, institution = {Dartmouth College and Johns Hopkins University}, year = 2018, month = {February}, number = {TR2018-839}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/carrigan-fitbit/index.html}, abstract = {This document provides a toolkit for an STEM outreach activity based on Fitbit wearable fitness devices. The activity is targeted toward high-school students. This document provides guidance preparing for and executing the activity and measuring outcomes. This document contains templates that can be used as is or altered to suit your specific needs.}, } @Article{kotz:jdapple, author = {David Kotz}, title = {A DAta-Parallel Programming Library for Education (DAPPLE)}, journal = {Computer Science Education}, year = 1996, volume = 6, number = 2, pages = {141--159}, publisher = {Ablex Publishing}, copyright = {Ablex Publishing}, DOI = {10.1080/0899340950060203}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-jdapple/index.html}, abstract = {In the context of our goal to bring parallel computing into the undergraduate curriculum, we needed a parallel-programming language that was accessible to students and independent of any particular hardware platform. Finding nothing appropriate, we chose to design our own language. The result, DAPPLE, is a C++ class library designed to provide the illusion of a data-parallel programming language on conventional hardware and with conventional compilers. DAPPLE defines \emph{Vector} and \emph{Matrix} classes, with most C++ operators overloaded to provide elementwise arithmetic, and supports data-parallel operations like scans, permutations, and reductions. DAPPLE also provides a parallel if-then-else statement to restrict the scope of the above operations to partial vectors or matrices. In this article we describe the DAPPLE language, the pedagogical decisions that went into its design, and our experience using DAPPLE in the classroom. DAPPLE is freely available on the Internet.}, } @InProceedings{kotz:dapple, author = {David Kotz}, title = {A DAta-Parallel Programming Library for Education (DAPPLE)}, booktitle = {Proceedings of the SIGCSE Technical Symposium on Computer Science Education}, year = 1995, month = {March}, pages = {76--81}, publisher = {ACM}, copyright = {ACM}, DOI = {10.1145/199688.199730}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-dapple/index.html}, abstract = {In the context of our overall goal to bring the concepts of parallel computing into the undergraduate curriculum, we set out to find a parallel-programming language for student use. To make it accessible to students at all levels, and to be independent of any particular hardware platform, we chose to design our own language, based on a data-parallel model and on C++. The result, DAPPLE, is a C++ class library designed to provide the illusion of a data-parallel programming language on conventional hardware and with conventional compilers. DAPPLE defines \emph{Vectors} and \emph{Matrices} as basic classes, with all the usual C++ operators overloaded to provide elementwise arithmetic. In addition, DAPPLE provides typical data-parallel operations like scans, permutations, and reductions. Finally, DAPPLE provides a parallel if-then-else statement to restrict the scope of the above operations to partial vectors or matrices.}, } @InProceedings{johnson:freshmen, author = {Donald Johnson and David Kotz and Fillia Makedon}, title = {Teaching Parallel Computing to Freshmen}, booktitle = {Proceedings of the Conference on Parallel Computing for Undergraduates}, organization = {Colgate University}, editor = {Chris Nevison}, year = 1994, month = {June}, numpages = 7, publisher = {Colgate University}, copyright = {Colgate University}, URL = {https://www.cs.dartmouth.edu/~kotz/research/johnson-freshmen/index.html}, abstract = {Parallelism is the future of computing and computer science and should therefore be at the heart of the CS curriculum. Instead of continuing along the evolutionary path by introducing parallel computation ``top down'' (first in special junior-senior level courses), we are taking a radical approach and introducing parallelism at the earliest possible stages of instruction. Specifically, we are developing a completely new freshman-level course on data structures that integrates parallel computation naturally, and retains the emphasis on laboratory instruction. This will help to steer our curriculum as expeditiously as possible toward parallel computing. \par Our approach is novel in three distinct and essential ways. First, we will teach parallel computing to freshmen in a course designed from beginning to end to do so. Second, we will motivate the course with examples from scientific computation. Third, we use multimedia and visualization as instructional aids. We have two primary objectives: to begin a reform of our undergraduate curriculum with an laboratory-based freshman course on parallel computation, and to produce tools and methodologies that improve student understanding of the basic principles of parallel computing.}, } @TechReport{kotz:dapple-tr, author = {David Kotz}, title = {A DAta-Parallel Programming Library for Education (DAPPLE)}, institution = {Dartmouth Computer Science}, year = 1994, month = {November}, number = {PCS-TR94-235}, copyright = {David Kotz}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-dapple-tr/index.html}, abstract = {In the context of our overall goal to bring the concepts of parallel computing into the undergraduate curriculum, we set out to find a parallel-programming language for student use. To make it accessible to students at all levels, and to be independent of any particular hardware platform, we chose to design our own language, based on a data-parallel model and on C++. The result, DAPPLE, is a C++ class library designed to provide the illusion of a data-parallel programming language on conventional hardware and with conventional compilers. DAPPLE defines \emph{Vectors} and \emph{Matrices} as basic classes, with all the usual C++ operators overloaded to provide elementwise arithmetic. In addition, DAPPLE provides typical data-parallel operations like scans, permutations, and reductions. Finally, DAPPLE provides a parallel if-then-else statement to restrict the scope of the above operations to partial vectors or matrices.}, } @Misc{kotz:dapple-sw, author = {David Kotz}, title = {DAta-Parallel Programming Library for Education DAPPLE}, howpublished = {a C++ class library that provides the illusion of data-parallel programming on sequential computers}, year = 1994, copyright = {the author}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-dapple-sw/index.html}, abstract = {DAPPLE is a C++ class library designed to provide the illusion of a data-parallel programming language on conventional hardware and with conventional compilers. DAPPLE defines Vectors and Matrices as basic classes, with all the C operators overloaded to provide for elementwise arithmetic. In addition, DAPPLE provides typical data-parallel operations such as scans, permutations, and reductions. Finally, DAPPLE provides a parallel if-then-else statement to restrict the context of the above operations to subsets of vectors or matrices.}, } @InProceedings{astrachan:contest, author = {Owen Astrachan and Vivek Khera and David Kotz}, title = {The Internet Programming Contest: A Report and Philosophy}, booktitle = {Proceedings of the SIGCSE Technical Symposium on Computer Science Education}, year = 1993, month = {February}, pages = {48--52}, publisher = {ACM}, copyright = {ACM}, DOI = {10.1145/169070.169105}, URL = {https://www.cs.dartmouth.edu/~kotz/research/astrachan-contest/index.html}, abstract = {Programming contests can provide a high-profile method for attracting interest in computer science. We describe our philosophy as it pertains to the purpose and merits of programming contests as well as their implementation. We believe that we have successfully combined the theoretical and practical aspects of computer science in an enjoyable contest in which many people can participate. \par The contests we describe have distinct advantages over contests such as the ACM scholastic programming contest. The primary advantage is that there is no travel required --- the whole contest is held in cyberspace. All interaction between participants and judges is via electronic mail. \par Of course all contests build on and learn from others, and ours is no exception. This paper is intended to provide a description and philosophy of programming contests that will foster discussion, that will provide a model, and that will increase interest in programming as an essential aspect of computer science.}, } @TechReport{astrachan:contest-tr, author = {Owen Astrachan and Vivek Khera and David Kotz}, title = {The Duke Internet Programming Contest}, institution = {Dept. of Computer Science, Duke University}, year = 1990, month = {December}, number = {CS-1990-21}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/astrachan-contest-tr/index.html}, abstract = { On the evening of October 23, 1990 electronic mail messages started to pour into the computers at the Duke University Computer Science Department. Teams of programmers from all over the world were registering to compete in the first global (as far as the authors are aware) programming contest to be held on the Internet. During the three-hour competition, modeled after the annual ACM scholastic programming contest, 60 teams from 37 institutions in 5 countries attempted to solve a set of six programming problems using C or Pascal. Their solutions were sent by electronic mail to Duke, where their programs were judged and the results returned by electronic mail. At the conclusion of the contest, 330 program submissions had been judged and 65 clarification requests were answered.}, }