CS 410P/510 EVE: Analysis and Support Software For Application Communities

Term: Spring 2018
Credits: 4
Section: 40 (410P), 43 (510)
CRN: 64934 (410P), 64935 (510)
Meeting Time: Monday, Wednesday 1400-1600 (2-4PM)
Meeting Location: FAB 47

Instructor: Bart Massey (bart AT cs DOT pdx DOT edu)
Office Hours: TBA
Office Location: FAB 120-18

Prerequisites: CS 202

Disclaimer

Everything about this syllabus is entirely tentative, and maybe be changed at the whim of the instructor without warning.

Description

A large well-used application typically develops a user community. The community will often engage in analysis of the application's operation and develop third party software tools to support its use. This course will examine, explain and engage in these activities, using the massively-multiplayer game EVE Online as the model target.

Goals, Topics and Objectives

Large software applications with many users, ranging from Microsoft Excel to World of Warcraft, are typically supported by a number of external knowledge bases and software tools. Many of these knowledge bases and tools are developed and supported by the application's user community.

In this course EVE Online, a massively-multiplayer space adventure game, will be used as a vehicle for examining such a space of user-driven contributions and as a target for additional research and feature development.

Upon the successful completion of this course students will be able to:

  • Use a complex software system as a domain for innovation

  • Analyze a complex software system and derive underlying behaviors and properties by external analysis

  • Specify support tools for a complex software system, taking into account interfaces and support needs

  • Identify and evaluate domain-specific tools and technologies

  • Develop a substantial project with software and intellectual components

  • Package and present project work in a fashion suitable for general consumption

Course Text

Internet Spaceships Are Serious Business:
An EVE Online Reader
ed. Marcus Carter, Kelly Bergstrom, Darryl Woodford
U. Minnesota Press, March 2016

I recommend the e-book of this text, which is cheaply available and works fine. We will read and report on many essays in this book as part of our homework.

Other Prerequisites

  • Access to some machine capable of running the EVE Online client. We may be able to have the client running on machines in the Linux Lab. A laptop to bring to class would be ideal: it needn't be too powerful.

  • Some Python programming skill would be helpful, but is not required.

Course Communication

Communications for this course will primarily be through a shared workspace provided by the Discord game chat tool. Everyone is strongly encouraged to participate in the channel.

Course Work

Workload

This course requires substantial out-of-class homework including a major project, which may be done in a small group.

I encourage group collaboration on individual assignments: creating study groups or online chat-rooms to discuss the approach and understand the problem is an acceptable and encouraged methodology. The write-up, programming, and actual solutions must be your individual work. If you represent someone else's work as your own, you are committing plagiarism.

In-Class Discussion

This is partly a discussion course: class attendance is required. There will routinely be in-class assignments; these will not be accepted late without advance notice or extraordinary circumstances. If you think you might miss more than a couple of class meetings of this course, I would encourage you to avoid this class for now.

Participation In EVE Online

Creating a character and participating in game play in EVE Online is a required part of this course. EVE Online is free to play at the basic level, which is all that will be required. There will be in-game exercises.

EVE Online is a space adventure game known (among other things) for the toxicity of some of its playerbase. We will attempt to avoid this by doing most work on the largely-unhabited test server, and also by providing a safe corporation and basic instruction in avoiding griefing. However, if you are sensitive to adult language, bigotry of various kinds, in-game bullying, or highly-competitive play you may want to avoid this course: I cannot guarantee that you will experience none of these things over the course of 10 in-game weeks.

Course Project

Every student will be expected to create an EVE-related project as part of this course. This work must be released under an OSI-approved open source license at the end of the course.

Homework

I will assign graded in-class homework during some meetings. I will also assign take-home homework most weeks. Late homeworks will be accepted, if at all, only for good reasons and at a substantial penalty.

You may submit a homework as many times as you like, with the latest assignment received being the only one considered for a grade. Please submit something before the deadline, even if it is only your name—you can then continue to work on your assignment as desired up until they are graded.

Assignments will be graded for having been turned in and having made a reasonable effort, as well as for a reasonable degree of correctness.

Schedule

  • Week 1: Learning about EVE

    • Playing the game
    • Identifying learning resources
  • Week 2: Understanding the game ecosystem

    • Gameplay opportunities
    • Supporting tools
  • Week 3: Choosing an opportunity

    • Statcrafting opportunities
    • Existing tool opportunities
    • New tool opportunities
  • Week 4: Innovation I

    • Understanding requirements
    • Building an architecture
    • Choosing technologies
  • Week 5: Introduction to Statcrafting

    • How game mechanics are reverse-engineered
    • Existing examples and applications
  • Week 6: Introduction to web APIs

    • JSON and REST
    • Using existing APIs
    • Providing new APIs
  • Week 7: Innovation II

    • Building prototypes
    • Getting feedback
  • Week 8: Innovation III

    • Verification and Validation
    • Packaging and delivery
  • Weeks 9-10: Project presentations

Academic Honesty

Cheating on homework or the project will result in a grade of zero on the affected material, and will be reported to appropriate authorities. Plagiarism is a form of cheating. Please do not let me catch you plagiarizing.

Plagiarism: n 1: a piece of writing/work that has been copied from someone else and is presented as being your own work 2: the act of plagiarizing; taking someone's words or ideas as if they were your own.
—www.dictionary.com

If you use code, ideas, or text authored by someone else, cite them. It is OK to get help from external sources of knowledge, but citation is mandatory.