Courses

Humanities Computing Course Descriptions

Special Topics Courses Winter 2018

HUCO 617 Section B3: Game Design in Theory and Practice
 
Instructor: Dr. Mark Johnson
 
This course will explore game design in theory and in practice. It aims to both educate and generate a critical dialogue about game design as a concept and as a set of tools, and also teach students about not just the "creative" elements of game design, but also the "pragmatic" ones - testing, iterating on concepts, thinking about playability and user interface, and so forth. 
 
Conceptually, the course will teach students about dominant paradigms in game design over the last several decades, the emergence and codification of "genres" and their design rationales, some dominant contemporary approaches to thinking about game design, how game design practice differs with small and large development teams, and what precisely it is we "design" for when creating games - "fun", "challenge", "exploration", "unpredictability", "narrative", or other concepts? It will also explore the process by which gameplay mechanics and gameplay elements are created, the emergence of relationships between the two, the concept of game balance, different kinds of game designs that emphasise skill or luck (or sometimes both), and how to design games which are meant to evoke particular emotional or psychological responses in players. This part of the course additionally considers a number of contemporary political issues around game design, focused on debates surrounding contested practices such as gamification and micro-transactions, tensions between game designs with "casual" and "competitive" players in mind, the question of video game "addiction", and also questions of equity and representation in character and world design.
 
In the practical half of the course, students will construct a game, either working independently or in small groups. For students with existing computer programming knowledge, that will be encouraged as the route for game design; for students without, or with but looking to do something new, we will instead seek to develop board games. Board games have become increasingly used in game design courses in recent years because - without a reliance on graphics, audio, or artificial intelligence - board games force their designers to focus on game mechanics, the core of any game design course. Equally, the ongoing "renaissance" in independent board games makes the construction of board games an equally viable economic opportunity to video games, and developing knowledge in both domains will leave students with a range of potential game design options beyond graduation. Alongside the development of the games themselves, the course will also consider the importance and role of concepts such as playtesting and iterating on a game design, how rules and gameplay mechanics are conveyed to and taught to players. By combining these two elements, students should leave the course with an understanding of both the theory and practice of game design, a newly-designed game, and a critical engagement with the wider trends in the contemporary games industry.

HUCO 617 Section B2:  Advanced Web Scripting

Instructor: Prof. H. Quamen

Advanced Web Scripting, continues the concepts explored in Huco 520. The first half of the semester will be dedicated to applying the concepts of object-oriented programming to what we already know about PHP. Object-oriented ideas are found in almost every programming language (Python, Ruby, Java, Perl, PHP, etc.). One part of your work for the semester, then, will be to write some object-oriented PHP. In the second half of the semester, we’ll learn about JavaScript, a language that runs in all modern web browsers. JavaScript facilitates user interactivity, so we’ll learn the dynamics of event-driven programming, how JavaScript manipulates HTML on the-fly (via the tree-like structure called the Document Object Model or DOM) and we’ll learn about two interesting JavaScript implementations: Ajax (“Asynchronous JavaScript and XML”) and the impressive D3 library (“Data-Driven Documents”), which is a popular means of incorporating interactive data visualization into websites. Along the way, we’ll learn about the GitHub code repository, collaborative programming, the wonderful and magical string pattern-matching templates known as regular expressions, a little bit about web scrapers, and maybe even something about the weather.

As in HUCO 520, your project in this class will be to build something that could be one project that uses both object-oriented PHP and JavaScript, or you could build two projects (one that uses PHP and one that uses JavaScript). You can decide if you want to integrate those two components into one website or not. But the general idea is that you’ll write object-oriented PHP on the server-side and will write some JavaScript interactivity on the browser side. Some project ideas are listed at the bottom of the syllabus.

 

Core Courses (offered every year)

HUCO 500: Introduction to Humanities Computing

This course will provide students with an overview of the discipline of Humanities Computing and its varied applications across a range of disciplines and domains of knowledge. The course is designed to enable students to situate their own research interests within the broader framework of Humanities Computing / Digital Humanities and to make informed choices about how they structure the rest of their program. The course is divided into three key areas: 1) debates, theories, and key concepts; 2) emblematic projects and organizations; and 3) tools of the trade. Upon completion of the course, students will be able to situate their own research interests within the larger context of the field, evaluate existing methodologies and projects, consider the ability of computer systems to represent knowledge, and analyze the impact of technology on cultural production. HUCO 500 is designed to be accompanied by HUCO 520, a more technically oriented course.

HUCO 510: Theoretical Issues in Humanities Computing

This course aims to give students the theoretical grounding they’ll require to pursue advanced research in the Digital Humanities.  We begin by asking basic, fundamental questions:  What are the Humanities?  What is a discipline?  What is Interdisciplinarity?  What is theory?  What is the difference between a theory and a methodology?  We will then extend those questions by asking more focused and specific questions like: What theoretical concepts form the core of Digital Humanities research?  What theoretical debates have formed, and continue to form, the field?  How are the practices and projects of the field theoretically informed, and how should they be informed? Finally, we will apply those questions to students’ own research programs by asking questions like: what is a thesis?  What enabling theoretical frameworks will I need for my work?  What do these theories give me to think?

HUCO 520: Technical Approaches and Concepts

Huco 520, Technical Approaches & Concepts, is designed to give you hands-on experience in a few different database and web technologies. Your project in this course will be to build a database-driven website, which will introduce you to the concepts of markup languages (HyperText Markup Language and Cascading Style Sheets), elementary web scripting (PHP), and database theory (Structured Query Language and hands-on experience with the open source database, MySQL).  That should give you a good foundation when you go on to learn other technologies later.

HUCO 530: Project Design and Management in Humanities Computing

Humanities Computing research is unlike traditional humanities research in many respects: the scope of projects usually extends beyond the single-scholar research model, the computer tools needed for research are expensive and the technology changes rapidly, electronic publishing is a largely unknown and expensive undertaking rarely tackled by conventional print publishers, and electronic research requires updating and maintenance beyond project funding. This course will prepare students for the various aspects of designing, implementing, managing, and maintaining a Humanities Computing research project.

Optional Courses

The Humanities Computing program offers a selection of optional courses each year.

This is a representative sample of recent optional courses.

Big Data: The Web as Evidence (HUCO 617: Topics in Humanities Computing)

Instructor: Prof. G. Rockwell

The web is big data for the study of contemporary culture and society. It is being scraped and mined by governments, commercial interests and academics to identify trends, to create new value, for surveillance and to study recent history. In this course we are going to look at the hype and opportunities around big data through the lens of how the web can be treated as evidence. We are going to look at the definitions, projects, and the ethics of big data with special attention to how the web and social media are being used for research, surveillance, governance, and commerce. Students will be trained in how to use web scraping tools and analytical environments for the purpose of analyzing web cultures. The idea is to think through the big data revolution and claims made about data science by doing it. Students don't need to have a programming background to take this course, but you should be prepared to use complex research tools like Archive-It, Gephi, Mallet, and Voyant as needed. Training on these tools and others will be provided as part of the course.

Advanced Web Scripting (HUCO 617: Topics in Humanities Computing)

Instructor: Prof. H. Quamen

Advanced Web Scripting, continues the concepts explored in Huco 520. The first half of the semester will be dedicated to applying the concepts of object-oriented programming to what we already know about PHP. Object-oriented ideas are found in almost every programming language (Python, Ruby, Java, Perl, PHP, etc.). One part of your work for the semester, then, will be to write some object-oriented PHP. In the second half of the semester, we’ll learn about JavaScript, a language that runs in all modern web browsers. JavaScript facilitates user interactivity, so we’ll learn the dynamics of event-driven programming, how JavaScript manipulates HTML on the-fly (via the tree-like structure called the Document Object Model or DOM) and we’ll learn about two interesting JavaScript implementations: Ajax (“Asynchronous JavaScript and XML”) and the impressive D3 library (“Data-Driven Documents”), which is a popular means of incorporating interactive data visualization into websites. Along the way, we’ll learn about the GitHub code repository, collaborative programming, the wonderful and magical string pattern-matching templates known as regular expressions, a little bit about web scrapers, and maybe even something about the weather.

As in HUCO 520, your project in this class will be to build something that could be one project that uses both object-oriented PHP and JavaScript, or you could build two projects (one that uses PHP and one that uses JavaScript). You can decide if you want to integrate those two components into one website or not. But the general idea is that you’ll write object-oriented PHP on the server-side and will write some JavaScript interactivity on the browser side. Some project ideas are listed at the bottom of the syllabus.

Digital Mapping | Digital Urbanism (HUCO 617: Topics in Humanities Computing)

Instructor: Prof. M. Engel

Understanding the urban has always involved understanding the complex and contradictory relationship between place and space.  Space is a set of coordinates, an area that is delimited by objective data: latitude and longitude, topography, the location of rivers and roads and bridges.  Place, on the other hand, is an area composed of subjective data: the stories of history, the experiences of its residents, the values that we inscribe in space, and the uses to which we put it.  Conventionally, we have chosen different methodologies for expressing our analyses of space and place.  Space has been the purview of the map, of GIS systems and their spatial representations; place has been most fully expressed in language, in the narratives of history and fiction.

This course will bring the concepts of "space" and "place" together and challenge students both to analyze and to build “maps,” broadly conceived, that can bridge that divide.  The course will follow both a theoretical and a highly practical trajectory.  Theoretically, weekly readings will ground and frame our work in the Digital Humanities; practically, we will learn what GIS is, what it can be used for, and how to use it to create your final projects. The course will begin with basic web-based mapping tools, but will switch to an intensive introduction to QGIS for the majority of the course.