Passwords and Python: Introducing Security Concepts in Lower-Division Programming

One important concept for all computing students to understand is security—both their own, and for the technologies and systems they might eventually develop. This open educational resource provides an assignment to introduce to students in an introductory programming class to a foundational security concept: password security. The assignment begins with a basic introduction to security as an important concept in computing, drawing from real world examples of security breaches with a focus on the importance of good password practices. It then explains password strength as a concept and has students use conditionals, logical operators, and for and while loops to code a password strength checker and simple password management system.

ACM Digital Library Entry

A CS1 Open Data Analysis Project with Embedded Ethics

This final project combines key CS1 programming concepts with ethical analysis. It helps students gain experience with lists, dictionaries, for/while loops, conditional statements, file handling, and functions in Python. Through a data analysis and visualization task, the students put to action their prior knowledge of the aforementioned programming concepts, embedded with an ethics-led discussion of open source data. Open source data (or “open data”) is data that is available and accessible to anyone, including for reuse of the data [8]. Students will learn how to think critically about the ethical dimensions of their selected open source data (and future open source data), and provide an analysis of the data within its contemporary cultural context.

ACM Digital Library Entry

Embedded Ethics: Pandemic Contact Tracing and Ethical Trade-offs

This course module, designed for use in a first-year programming course, gets students thinking about ethical issues that arise from the technology they will build. The module is on the topic of contract tracing, employed during pandemics and other disease outbreaks to limit the spread of communicable diseases such as COVID-19. The module includes pre-class, in-class, and post-class components. As students learn how a graph can represent contacts and consider the data that a contact tracing system might record, they are guided through an active learning exercise to discover an issue: Private information can sometimes be inferred from a contact tracing system. The ethical issue of balancing public health against individual privacy arises naturally from the technical discussion. In the remainder of the module, students learn how to imagine and discuss the perspectives of different stakeholders on this ethical trade-off. For example, an overwhelmed acute care doctor has different priorities than someone with precarious employment and a chronic illness, who is afraid their private information might be leaked.

OER for Ethics and Computing Open Access Collection

Coverage of ethics and computing is proliferating at universities, at both undergraduate and graduate levels. This includes standalone courses, and incorporation of ethics into technical computer science and related courses. Most of these courses, particularly the standalone ones, make extensive use of recent media articles, papers, videos, and other resources about issues related to ethics and computing. Thousands of such media articles alone are published annually. There is enormous duplication of effort by people who are teaching these courses, as discovering these resources is not always an easy process.

Usability Testing Plan Template: A flexible tool for planning and teaching usability evaluation

Usability testing is a key research method in human-computer
interaction (HCI). When students are designing for others, usability
testing is an opportunity to learn how the design is currently
working and how it can be improved. This usability testing plan
template gives individual students or teams a structure to help plan,
conduct, and analyze data from a study. The template walks
students through the process of planning a study through a series of
questions and planning materials. The template is especially helpful
for students new to usability testing and can be adapted and
adjusted as needed.

ACM Digital Library Entry

Using Affect-Aware Computing as a Theme for a User-Centered Design Course

This user-centered design project invites students to conduct hands-on human-computer interaction research and design by exploring affect-aware technology. These technologies seek to account for users’ emotions, moods, and other affective phenomena in the user experience. Examples include emojis used while texting, social robots that model emotional responses, and emotionally-aware chatbots. This project is for a user-centered design and usability testing course offered to undergraduate computer science students. The course learning objectives are to use research and design methods to (1) build an empirical understanding of technology stakeholders and (2) apply that knowledge to design and evaluate an interactive prototype. By immersing themselves in the complex domain of affect-aware computing, students learn to apply user-centered design to emerging technologies. Students create and refine common user-centered design artifacts, including personas, interaction designs, and prototypes. The reader of this paper will obtain recommendations for structuring the user-centered design projectand a high-level understanding of affect-aware computing.

Meme Magic: Project in Sprints

Meme Magic is a series of six assignments intended to provide progressive exposure to programming in Java using a popular and recent concept: Memes. Memes utilize an image conveying a concept or feeling with a caption provided by the Meme author. The series of assignments, designed as sprints in the context of a larger project, begin with the design and scaffolding of Java classes needed to write a program to produce text-based Memes and end with a fully-functional graphical user interface. For a detailed list of learning goals, please see the Learning Goals section. In the first sprint, students depict the overall project structure of a text-based meme application using Unified Markup Language (UML) and write method stubs in Java. In each of the next two sprints, students implement half of the specified functionality and integrate those components to a fully working application. Students are asked to add Comparators to sort memes to their application in sprint 4 and to unit test all of their code using JUnit in sprint 5. In the final sprint, students extend the functionality once more to a graphical user interface to experience event-driven programming.

Micro:Vote: An Introduction to Python using the BBC micro:bit

The Micro:Vote project is designed as an introduction to text- based programming through a 12-week project aimed at 11 to 13 year olds. The project is designed as a School-University partnership whose aim is to highlight the role of creativity and social impact in computing through the design of digital voting posters using the BBC micro:bit and MicroPython.

Adopting a Design Studio approach, the project scaffolds students in the creation of a physical computing voting system and informative poster, to gather responses on an issue of social importance within the community. Through the lens of Human- Computer Interaction, students investigate the role of computing in activism and learn to implement data and control structures.

ACM Digial Library Entry

Decision Trees for Text Classification in CS2

In CS2 courses centering programming with recursion and data structures, binary trees can be used to represent hierarchical relationships between data. Drawing on a machine learning context, this assignment presents an application of binary trees toward text classification that demonstrates how the design of programming abstractions shapes social outcomes. By the end of this assignment, students will not only be able to define methods that recursively construct, traverse, and modify binary trees, but also begin to engage with ethical questions around the design and use of sociotechnical text classification systems.

ACM Digital Library Entry

TEACHING PAPER: Implementing UNL’s Computational Creativity Exercises

In this teaching paper, the creators of the Computational Creativity unplugged activities explain the rationale for their approach to combining instruction in computational thinking and in creativity, and provide guidance on implementing their activities in your courses.

Subscribe to Doctoral/Research Universities - Extensive