DCS 103 People, Places, Prose, and Programming

This course introduces digital and computational methods for the study of traditionally humanistic objects, including letters, fiction, prose, maps, or other kinds of documents. The course involves reading, critical reflection, and computer programming. Student projects combine computer-assisted methods and traditional humanities questions about authors, style, and how we understand literary works in a rich context, including historical, geographical, and cultural concerns. Topics may include text analysis, topic modeling, mapping and geocoding, and network analysis. The course is appropriate for students new to programming.

DCS 105 Calling Bull: Data Literacy and Information Science

Our world is rife with misinformation. This course is designed to hone digital citizenship skills. It is about “calling bullshit”: spotting, dissecting, and publicly refuting false claims and inferences based on quantitative, statistical, and computational analysis of data. Students explore case studies in policy and science and dissect the “who, what, where, when, why, and how” of bullshit propagation. Examples include election misinformation, interpreting health risk, facial recognition algorithms, and science communication. Students practice visualizing data; interpreting scientific claims; and spotting misinformation, fake news, causal fallacies, and statistical traps. In doing so, the course offers an introduction to programming with R for data analysis and visualization.

DCS 106 TechnoGenderCulture

Two premises inform this course: technologies have histories and cultures; technologies are gendered. The course brings together the disciplinary approaches of science and technology studies and gender and sexuality studies to explore contemporary problems at the intersection of gender and technology. Students explore classic texts in these fields and undertake design processes that help them apply those texts to real-world problems.

DCS 108 Introduction to Computation for Science and Mathematics

This course computationally explores mathematical, ecological, and environmental justice ideas and issues such as limits, integration, population dynamics, and climate change. The course introduces students to programming, from coding through spreadsheets to Octave/MATLAB. The course aims to deepen students’ understanding of mathematical concepts through computational approaches, explore how computation is changing science and mathematics, and help prepare students to productively engage with coding in upper-level science and mathematics courses. Prerequisite(s) or corequisite(s): MATH 106.

DCS 109 Introduction to Computing and Programming

This course explores computational thinking and problem solving via an introduction to computer programming. More specifically, the course considers computing as a discipline of study, discovering accurate solutions to interesting and challenging problems, and representing these solutions in a precise way so that computers can assist with solving the problems. Students learn fundamentals of programming using Python, including basic data structures, flow control structures, functions, recursion, elementary object-oriented programming, file I/O, and discussion of higher-level concepts including abstraction, modularity, testing, and debugging. Through detailed laboratory and project work, these concepts are developed using important real-world contexts.

DCS 111 Programming for the Humanities

This course is an introduction to computer science and programming designed for students in the humanities. It frames computation as a process of designing systematic solutions to problems, implementing those solutions, and making them accessible to other scholars and investigators. Students learn the fundamentals of computer programming in Python, through the development of algorithms that are helpful in answering humanistic questions. By the end of the semester, students have an understanding of how problem solving using computation works, as well as how to implement that problem solving in the context of the humanities.

DCS 203 Discrete Structures and Modeling

This course introduces students to the discrete approaches to modeling phenomena, and the mathematical and computational structures and techniques used in these approaches. Without advanced mathematical prerequisites, students explore questions about the nature of events, change, uncertainty, and interconnectedness in natural, physical, and social systems. Students use these contexts to engage actively with mathematical foundations of computation (i.e. logic, proofing, probability, matrices, eigenvectors, and graphs), practice fundamental structures and tools for scientific computation (e.g. arrays, control structures, graphing), and implement strategies for developing, testing, and interpreting mathematical and computational models. Results from our investigations are communicated through symbolic, numeric, visual, and verbal means in context of the complex and interconnected world we experience. Prerequisite(s): one prior course marked as (Digital and Computational Studies: Computational Modeling and Statistics Praxis.) or (Digital and Computational Studies: Programming and Computer Science Theory.).

DCS 204 Archives, Data, and Analysis

The computational humanities comprise a fast-growing and exciting field that is changing the way scholars work and think. This course provides an opportunity for students with some experience with programming to immerse themselves in semester-long projects in digital environments, moving from “analog” archives, through data structuring, and quantitative analysis, and culminating with a project that makes both the humanities and quantitative analyses legible for people from diverse backgrounds. Prerequisite(s): one 100-level digital and computational studies course.

DCS 206 The Past, Present, and Possible Dystopian Future of Computing

In this course students examine the history, present, and possible future of computing through film and literature, focusing on questions at the intersection of computing, digital studies, and communication: Who are the stakeholders and participants in this intersectional area? What are the uses and abuses of data and computing in society? Who has the power of technology and who does not, and what are the consequences of that power? Recommended background: Prior critical-studies-oriented digital and computational studies course or similar course work in Africana, American studies, Latin American and Latinx studies and/or gender and sexuality studies.

DCS 209 Pixelated Parts: Race, Gender, Video Games

This course considers the politics of race, gender, and sexuality as they emerge in video games and their surrounding ecosystems: in games and their conditions and processes of production, in the representations and spaces of identification that come with the play of games, in the communities that players generate among themselves, and in the affective and material interactions that result when players look at a screen, hold a controller, type on a keyboard, and move a mouse.

DCS 210 Programming for Data Analysis and Visualization

This course teaches computer programming with a focus on quantitative data analysis and visualization. Primarily using the R programming language, fundamental programming concepts and high-level tools for data manipulation, analysis, and visualization are introduced using a variety of projects with cross-disciplinary applicability. In addition to writing computer scripts to analyze data, students learn the concepts and methods for effective presentation of data in a reproducible way. Prerequisite(s); one digital and computational studies course.

DCS 211 Computing for Insight

Building on DCS 109 (Introduction to Computing and Programming), this course explores practical application of software composition as a bridge to other disciplines. Students continue to develop programming and problem-solving skills, with the clear purpose of providing insight to inquiry in other fields that is made possible by modern computing, software composition, and libraries. The course includes study of additional data structures and algorithms; data harvesting, analysis, and visualization; machine learning; modeling and simulation; and considerations of human- and machine-efficiency. As a final course project, students design, implement, and assess a computing project of their choosing. Prerequisite(s): DCS 109 or 210.

DCS 212 Digital History Methods

Through a combination of analytical, experiential, and collaborative exercises, students merge traditional historical methods with digital tools to explore new useful methodologies for collecting, analyzing, and disseminating historical knowledge. They develop technical and theoretical proficiency within the broader field of digital humanities. They engage digital tools and resources to rethink old historical questions. They develop with new questions that can be investigated only through digital practice. They contemplate avenues for collaboration between historical research and public communities. Finally, they weigh the practical and theoretical implications of using digital history to create more inclusive scholarship.

DCS 216 Computational Physics

An introduction to computational methods for simulating physical systems, this course focuses on the numerical analysis and algorithmic implementation necessary for efficient solution of integrals, derivatives, linear systems, differential equations, and optimization. While the course presents a rigorous introduction to the numerical analysis underlying these techniques, the emphasis remains on practical solutions to important physical problems. Students solve problems across the wide range of applications of computational physics including astrophysics, biological population dynamics, gravitational wave detection, urban traffic flow, and materials science. No prior experience in programming is required. Prerequisite(s): MATH 106 and PHYS S31. Prerequisite(s), which may be taken concurrently: MATH 205.

DCS 219 Composing Sonic Systems

This course takes computational and communications systems concepts, such as randomness, probability, generativity, signal processing, feedback, control (and non-control), and listening as parameters for electronic sound composition. Using the free, user-friendly visual programming environment, Pure Data (Pd), students create unique software-based artworks and compositions. Creative projects are grounded in theoretical and historical readings as well as listening assignments that provide context for the application of computational concepts and communications systems thinking to sonic arts practice. The course culminates in a final showing of sound art installations and performances. Recommended background: experience in one or more of the following: music composition, music performance, experimental arts, digital media, computer programming, electronics, media studies.

DCS 229 Data Structures and Algorithms

This course provides an introduction to common data structures and selected algorithms for solving more complex problems. Topics covered include concrete data types (arrays and linked structures); abstract data types (including stacks, queues, trees, and maps); an introduction to fundamental algorithms including sorting, graph-search algorithms (breadth-first search, depth-first search), and greedy algorithms; and basic algorithm analysis (big-Oh). The course focuses on applying data structures and algorithms for problem solving, rather than on data-structure implementation details and formal analysis. Prerequisite(s): DCS 109.

DCS 240 Neural Networks

Biological intelligence is characterized by selecting, processing, and storing information while flexibly adapting to changing conditions. How might biology inspire “smart” algorithms? This course explores the fundamental principles of artificial neural networks (ANNs). Students begin with modeling learning in a single computational unit (McCulloch-Pitts neuron), and then examine how many simple units can collectively give rise to complex behaviors. They examine both supervised networks that learn a predetermined input-output relationship, and unsupervised networks that learn “suspicious coincidences” from the input data. They implement neural networks with Python (previous experience is helpful but not necessary). Prerequisite(s), which may be taken concurrently: NS/PY 160. Recommended background: Experience with Python programming (such as from DCS 109) would be helpful, but is not strictly required.

DCS 252 Philosophy of Cognitive Science

Cognitive science is the interdisciplinary study of the mind, including psychology, neuroscience, linguistics, computer science, and philosophy as its core. This course examines the conceptual foundations of cognitive science, and different approaches to integrating findings and perspectives from across disciplines into a coherent understanding of the mind. Students also consider issues in the philosophy of science, the nature of mind, self, agency, and implicit bias. Prerequisite(s): one course in philosophy, psychology, or neuroscience.

DCS 301C Public History in the Digital Age

Public history takes place beyond history classrooms and academic contexts. Traditionally, it has been found in museums, walking tours, and performances, and has told the stories of people with social and political privilege. Increasingly, however, public history has come to focus on a greater range of voices, and takes place in a wider range of forms: on websites, graphic novels, interactive sensory experiences, social media, and other digital spaces. In this community-engaged course, students learn to see public history “in the wild,” engage with primary sources, and present those sources and historical interpretation to the public in digital form. Students with interests in history and public engagement are encouraged to enroll in this course.

DCS 304 Online Community Building and Digital Activism

In this course, students examine digital citizenship from the perspective of online community building. They explore theories of collective action, community building, and network assembly, for example, the use of community organizing to propagate information in systems. In this community-engaged learning course, students produce a plan for social media and online organization for a partner community in higher education or STEM education. Recommended background: Prior critical-studies-oriented digital and computational studies course or similar coursework in Africana, American studies, Latin American and Latinx studies, and/or gender and sexuality studies.

DCS 305 Digital Maps, Space, and Place

Space and place-visualized by maps-condition nearly every aspect of our lived experience. It is almost impossible to imagine everyday experiences without access to maps. Maps also encode power. They tell particular stories and represent dominant cultural understandings of spatial relationship. In this course, students consider the reasons for studying maps, the ways in which maps might inscribe or combat extant power structures, the tools needed for geospatial analysis, how to embed and analyze geographical information, and how to link historical maps to modern-day geographies. Prerequisite(s): one 200-level digital and computational studies course.

DCS 316 PIC Math: Topics in Industrial Mathematics

This PIC Math (Preparation for Industrial Careers in Mathematical Sciences) course is intended for students with a strong interest in industrial applications of mathematics and computation. Students work in teams on a research problem identified by a community partner from business, industry, or government. Students develop their mathematical and programming skills as well as skills and traits valued by employers of STEM professionals, such as teamwork, effective communication, independent thinking, problem solving, and final products. Prerequisite(s): MATH 205 and 206.

DCS 355A Numerical Analysis

This course studies the best ways to perform calculations that have already been developed in other mathematics courses. For instance, if a computer is to be used to approximate the value of an integral, one must understand both how quickly an algorithm can produce a result and how trustworthy that result is. While students implement algorithms on computers, the focus of the course is the mathematics behind the algorithms. Topics may include interpolation techniques, approximation of functions, solving equations, differentiation and integration, solution of differential equations, iterative solutions of linear systems, and eigenvalues and eigenvectors. Prerequisite(s): MATH 106 and 205.

DCS 355D Dynamical Systems and Computer Science

The study of long-term behaviors of feedback processes, the field of dynamical systems is best understood from both theoretical and computational viewpoints, as each informs the other. Students explore attracting and repelling cycles and witness the complicated dynamics and chaos a simple quadratic function can exhibit. Real and complex functions are considered. Simultaneously, students learn sound computer science fundamentals by writing Visual Basic programs that illustrate the theory of dynamical systems. In particular, students plot both orbit and bifurcation diagrams, Julia sets, and the Mandelbrot set. The course explores both dynamical systems and computer science in depth, thus requiring four meetings per week. Prerequisite(s): MATH 221 or s21.

DCS 360 Independent Study

Students, in consultation with a faculty advisor, individually design and plan a course of study or research not offered in the curriculum. Course work includes a reflective component, evaluation, and completion of an agreed-upon product. Sponsorship by a faculty member in the program/department, a course prospectus, and permission of the chair are required. Students may register for no more than one independent study per semester.

DCS 368 Big Data and Economics

Economics is at the forefront of developing statistical methods for analyzing data collected from uncontrolled sources. Since econometrics addresses challenges in estimation such as sample selection bias and treatment effects identification, the discipline is well-suited for the analysis of large and unsystematically collected datasets. This course introduces statistical (machine) learning methods, which have been developed for analyzing such datasets but which have only recently been implemented in economic research. The course also explores how econometrics and statistical learning methods cross-fertilize and can be used to advance knowledge in the numerous domains where large volumes of data are rapidly accumulating. Prerequisite(s): ECON 255 and ECON 260 or 270.

DCS 375 Network Analysis

Networks are everywhere. They describe how people, organisms, and ideas connect and interact. Studying networks reveals patterns, systems, and frameworks that are, in many cases, otherwise invisible. This course introduces network analysis as a tool that offers insights into the construction of social, biological, and information systems. It scaffolds the terminology and theoretical underpinnings of network science. It also introduces the data wrangling, qualitative analysis, quantitative analysis, critical analysis, and data visualization tools that often accompany the studies of networks. Prerequisite(s): DCS 204. Recommended background: Prior coursework in critical digital studies and R programming, data cleaning, and/or significant programming experience.

DCS 401 Internship in Digital and Computational Studies

Part-time internships, which may be local or distant, conducted in-person or remotely. Internships provide digital and computational studies students opportunities to apply what they have learned in courses, learn and apply new skills, gain knowledge in a specific field, build professional skills, and explore career paths in digital and computational studies. Prerequisite(s): one course in digital and computational studies. Enrollment is limited to available positions.

DCS S14 Communicating Climate Change


DCS S15 Sonic Arts and Crafts

A hands-on course in which students explore and create the materials of sound making using simple circuitry and everyday objects. Class activities include building microphones using piezo discs and old telephones, building simple synthesizers, experimenting with conductive ink and thread, turning objects into speakers using transducers, and crafting novel speakers using copper foil and everyday materials. Students listen to, watch, and/or respond to a variety of related artwork that engages sonic materiality. They experiment and create original artworks utilizing techniques and concepts covered during the course, concluding with a final installation event showcasing student work.

DCSS 30 Critical Digital Studies: Theory and Practice

Critical digital studies combines code studies, computational studies, and digital humanities to investigate questions across the disciplines in ways that are collaborative, participatory, visual, and innovative. Through a combination of analytical, experiential, and collaborative exercises, students merge traditional methods with digital tools to explore new useful methodologies for collecting, analyzing, and disseminating knowledge. They develop both technical and theoretical proficiency while engaging digital tools and resources to rethink old questions. They pose new questions, which can only be investigated through digital practice. Finally, they weigh the practical and theoretical implications of using digital methods to create more inclusive scholarship in the twenty-first century. Prerequisite(s): one digital and computational studies course.

DCS S45T Mathematical Image Processing

Digital image processing is a field essential to many disciplines, including medicine, astronomy, astrophysics, photography, and graphics. It is also an active area of mathematical research with ideas stemming from numerical linear algebra, multivariable calculus, Fourier analysis, partial differential equations and statistics. This course introduces mathematical methods in digital image processing, including basic image processing tools and techniques with an emphasis on their mathematical foundations. Students implement the theory using MATLAB. Topics may include image compression, image enhancement, edge detection, and image filtering. Prerequisite(s): MATH 205 or MATH 206.

FYS 502 Death in the Digital Age

Death in the real world raises interesting question about the afterlives of our virtual selves. These virtual selves include the social media accounts that we did not close out before our passing, our avatars in video games, and the archives and records that other people use to represent us after we die.