Courses

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 109 Intro to Computer Science for Software Development

This course is an introduction to computational thinking and problem solving via an introduction to computer programming, designed for students interested in broadly applying computing and software solutions across a range of disciplines. It considers computing as a discipline of study, exploring the representation and manipulation of data, fundamental algorithms, efficiency, and limits of computing. Students learn fundamentals of computer programming using Python, including basic data structures, flow control structures, functions, recursion, elementary object-oriented programming, and file I/O, as well as discussion of higher-level concepts including abstraction, modularity, reuse, testing, and debugging. By implementing programs in contexts such as image processing, voting algorithms, DNA sequence analysis, and simple games, students develop an understanding of computational problem solving and gain experience in broadly applicable software development skills.

DCS 111 Intro to Computer Science for Text Analysis

This course is an introduction to computational thinking and problem solving via programming, designed for students interested in applying computation to the humanities and text analysis. It frames computation as a process of designing systematic solutions to problems; implementing, testing, and verifying those solutions; and making the solutions accessible to other scholars and investigators. Students learn fundamentals of computer programming using Python, including basic data structures, flow control structures, functions, recursion and elementary object-oriented programming, as well as discussion of higher-level concepts including abstraction, modularity, reuse, testing, and debugging. By the end of the semester, students develop an understanding of computational problem solving and gain experience implementing that problem solving in the context of text analysis.

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, 111, 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, though students without a technical computing background are encouraged to take PHYS s10 before enrolling. Prerequisite(s): MATH 106 and either PHYS 108 or 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 307 Theory and Implementation of Computer Simulation Models

This course introduces topics in computer simulation, focusing on the underlying theory, implementation, and analysis of discrete-event simulation models. Topics include discrete-event simulation, Monte Carlo simulation, random number generation, discrete and continuous stochastic models, input modeling, statistics and visualization for output analysis, and point and interval parameter estimation in simulation contexts. The course focuses heavily on real-world systems that are appropriately modeled using queuing and agent-based simulation models. The course is simultaneously theoretical and computational. Students use mathematical and statistical derivations, as well as existing software libraries in R and Python, to understand and analyze simulation models. Software development is also a significant component of the course, as students work in teams to design, implement, and analyze the results of their own models. Prerequisite(s): DCS 211 or 229.

DCS 311 Numerical Linear Algebra

This course studies the best ways to perform calculations that have been developed in Linear Algebra. Topics may include solving systems of equations, error and condition numbers, least squares, and eigenvalues and singular values.

DCS 316 PIC Math: Community Engaged Data Science

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 351 Computational Macroeconomics

This course is an introduction to dynamic general equilibrium models, which have become the workhorses of modern macroeconomics. These models involve intertemporal optimization by the different agents in the economy: households, firms, and the government. They are often used to analyze the modern theories of growth and aggregate fluctuations, and to study the role of monetary and fiscal policy. Most of these dynamic models, however, do not have analytical (closed form) solutions and one often has to rely on computational methods to analyze their behavior. The goal of this course is to provide an introduction to the computational tools that are necessary to solve dynamic economic models quantitatively. Prerequisite(s): ECON 255 and 270.

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 numerical evaluation, interpolation techniques, approximation of functions, solving equations, differentiation and integration, and solutions of differential equations.

DCS 355D Chaotic Dynamical Systems

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 function can exhibit. Topics include chaos in discrete versus continuous dynamical systems, bifurcations, and attractors, with applications to biology and physics. While there will be a significant computational component to the course, previous coding experience is not required. Prerequisite: MATH205. Recommended: MATH219.

DCS 355H Numerical Linear Algebra

This course studies the best ways to perform calculations that have been developed in Linear Algebra. Topics may include solving systems of equations, error and condition numbers, least squares, and eigenvalues and singular values.

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 Data Science for Economists

Economics is at the forefront of developing statistical methods for analyzing data collected from uncontrolled sources. Because econometrics addresses challenges such as sample selection bias and treatment effects identification, the discipline is well-suited to analyze large or unstructured datasets. This course introduces practical tools and econometric techniques to conduct empirical analysis on topics like equality of opportunity, education, racial disparities, and more. These skills include data acquisition, project management, version control, data visualization, efficient programming, and tools for big data analysis. The course also explores how econometrics and statistical learning methods cross-fertilize and can be used to advance knowledge on topics where large volumes of data are rapidly accumulating. We will also cover the ethics of data collection and analysis. 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. *F-1 visa holders are not eligible for this course.

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.

DCS s33 Introduction to Web Development

This course provides an introduction to full-stack Web development, including user-facing website design and construction, back-end frameworks, and client communication. The course will cover technologies for client-side development (HTML, CSS, and JavaScript), various web data formats (e.g., JSON, XML), server-side web frameworks (e.g., Django, Flask), fundamental UI and UX concepts (e.g., prototyping, usability, accessibility), and website security. Students will work directly with clients, with a focus on planning and maintenance. Prerequisites: DCS109 or DCS111.

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, 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. Students conceive and complete projects, either theoretical or practical, on an aspect of digital image processing. Prerequisite(s): MATH 205.

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.

GSS 319 The Future of Work at the Human-Technology Frontier

This seminar will explore privilege, power, place, and concepts of labor within digital economies of communication and information exchange. As digital technologies continue to blur the boundaries between leisure and work, surveillance and data collection become invisibilized and normalized processes. This class will combine methodologies from feminist research practices and critical digital studies while exploring the rapid coevolution of labor and technology. We will discuss place and transnational technological labor, unpack the black box of artificial intelligence and machine learning, and explore the digital spaces for activism towards an open and inclusive science. Students in this course will gain critical thinking and analytical skills in an interdisciplinary classroom setting that incorporates scholarship and methodologies from both humanities and STEM disciplines.

MATH 355H Numerical Linear Algebra

This course studies the best ways to perform calculations that have been developed in Linear Algebra. Topics may include solving systems of equations, error and condition numbers, least squares, and eigenvalues and singular values.