Anda di halaman 1dari 7

Computational Social Science 605 (3:3:0) George Mason University

Fall 2010 Semester Innovation Hall, Room 320

Handout #1 - SYLLABUS Thursdays, 4:30-7:10pm

Object-Oriented Modeling in Social Science

Maksim Tsvetovat, Ph.D.

Asst. Professor of Computational Social
Tel. (703) 993–1405

Welcome to CSS 605! This is a course about discovery and invention in the social
sciences, so be prepared to learn in a way that may be unlike any previous social science
course you may have taken. We hope you will learn from this course as much as we have
learned in envisioning, designing, developing, and implementing it for you.

This syllabus covers the main features of CSS 605—or “attributes” and “methods”, as
you shall soon learn to view and understand these characteristics in the “object
paradigm”—while additional information is contained in separate handouts that will be
distributed as the course develops. This Syllabus is Handout #1 and covers course
description, assumptions, learning objectives, grading guidelines, material to be covered,
and some initial references. Welcome aboard!

Description: This graduate course presents and applies concepts and principles from the
object-based modeling (OOM) paradigm, specifically applied to social science domains.
Emphasis is on the Unified Modeling Language (UML; see OMG 2005) as a tool for
modeling the structure and operation of complex adaptive social systems and processes,
and using Java as a programming language for implementing such models.

Prerequisites or co-requisites: CSS 600 Introduction to Computational Social Science,

or permission of instructor. This is also a core requirement for candidates in the
computational social science Ph.D. program, and an elective course for the CSS

This course assumes basic foundations in computing and some programming language
(e.g., BASIC, Fortran, or SAS code). Neither knowledge of object-oriented programming

(OOP) or advanced mathematics are required. A sample of specific desirable

programming skills is explained in Barker (2003: 4). Basic computing skills include
understanding simple data types (integer, floating point, string, etc.); variables and their
scope (including the notion of global data); control flow (IF-THEN-ELSE statements,
FOR/DO/WHILE loops, etc.); what arrays are and how to use them; the notion of a
function/subroutine/subprogram: how to pass data in and get results back out (Barker
2003: 4). These programming assumptions will be discussed the first week.

On the first day of class, you will be given a pre-test that will place your knowledge of
major programming concepts. The goal is to both understand your abilities and to tailor
the course to be neither “over-the-head” nor too easy for all.

Speaking of “too easy”... Don’t count on it :-)

Learning Objectives and Grading

The main learning objectives are as follows:

1. Learn to think about social dynamics primarily (fundamentally) in terms of

“objects” (as opposed to variables, the traditional paradigm);
2. Learn to describe and model social objects in terms of their characteristic
properties (“attributes”) and behaviors (“methods”), and to represent these using
UML notation;
3. Learn Java as a formal programming language with which to simulate social
phenomena; and
4. Use your skills to develop an interesting model of a simple polity and participate
in a final contest
Given these objectives, a student earns an A if s/he
1’-understands and can reason in terms of the object-oriented (OO) paradigm in a social
science context (e.g., anthropology, economics, political science, sociology, or other
social science context or interdisciplinary area such as regional systems, human ecology,
social network analysis, international relations, war and peace, social dynamics, …, space
exploration and colonization);
2’-can describe significant (nontrivial) social phenomena in terms of objects constituted
by attributes and operations, and represent such phenomena using UML;
3’- can formalize/instantiate/implement the social phenomenon/system/process of interest
in basic Java code, and
4’- can use these skills in a practical context, as demonstrated by the final project.
The final grade will be calculated on the basis of homework assignments (40%), class
project (40%) and class presentations (20%). Attendance and active class participation
are expected.

You can submit assignments up to 24 hours late with no penalty, and 10% penalty for
each subsequent day.

Final Project
This will be your crowning achievement and your main grade contribution, and the
source of your headaches for the next 15 weeks.
We, as a collective, will undertake building an ambitious model of the world political
system, one country at a time.
During the course of the semester, we will build from the ground-up a model of a simple
polity (SimPol), with governance, resources, and simple manner of relating to its
neighbours. As one of your assignments you will need to demonstrate that a polity you
have implemented is a viable state on its own.
After the states have become viable by themselves, it will be your goal to think about and
implement the foreign policy of your state, directed to neighbors near and far, including
economic cooperation, simple attempts at diplomacy and wars. You can design any
strategy you want - from world domination to total neutrality, from gregarious trading to
As the end of semester gets closer, we will provide a simulation framework that will
integrate all of our simulated states into a single world-system. At the final presentations
for the course, we will put all of our simulated states together, and watch in amazement
as they battle to the death - or build a peaceful and harmonious world society.
What happens at the final battle is up to you.
You may work as individuals or in small groups (3 people max.). For groups, you will
both receive the same grade. Also, feel free to share information about your strategies to
the other groups (strategic lying is par for the course, naturally).
The grades will not depend on whether your agent takes over the world, but rather on the
quality of implementation and your understanding of the modeling paradigms, as well as
on the realism of your strategies.

In leu of having a formal class website
Schedule of Study: Calendar, Topics, Assignments
(subject to change depending on our progress in the course)

Week 1 (Aug. 30) Introduction, modeling approaches in the social sciences: statistical,
mathematical, and computational (CC). Learn the motivation for OOM in the
social sciences, or what distinguishes it from other modeling approaches, and
some initial achievements. Overview of the course; “walk through” the syllabus.

Programming ability pre-test.

Read or review the following if they are unfamiliar: Axelrod (1997), Gilbert & Troitzch
(1999: chs. 1–2), Simon (1965, 1996: ch. 1), Taber & Timpone (1996).
Brush up on any prior programming experience, even if not necessarily in an object-
oriented language.


Week 2 Abstraction and modeling; Introduction to Java syntax (JB). Compare OO

abstraction and modeling with comparable procedures in more traditional
(variable-based) modeling (Gilbert & Troitzch 1999: 15; Taber & Timpone 1996:
14) (CC). Understand similarities and differences.

A practical session in Java - Hello World

Please bring a thumb-drive for downloading software

Reading due: Barker (2003: chapters 1 and 2).

Week 3 Objects; Classes; Attributes; Object Instantiation; Object References (JB). These
are the foundations of OOM necessary for successful Java programming.

Reading due: Barker (2003: chapter 3). Study also Handout #3 (OOM of a Simple
Polity), to be used as a running example of OOM in a social domain.

Week 4 Object Interactions; Method Signatures; Message Passing (JB).

Reading due: Barker (2003: chapter 4). Review Handout #3 in connection to object
interactions and message passing.

Week 5 Relationships Between Objects: Associations, Links, Aggregation; Object

Collaboration (JB).

Reading due: Barker (2003: chapter 5)

Week 6 Inheritance; Constructors (JB).

Reading due: Handout/*.

Week 7 Collections of Objects; Polymorphism (JB).


Reading due: Barker (2003: chapter 6). Distribute “Problem Statement To Be Rendered
In UML: A Country With Provinces, A Committee, An Election, An Economic
Market, …”, between now and 3/21/05, for discussion on Week 11 (4/4/05).

Week 8 Abstract Classes; Interfaces; Static Attributes/Methods; Utility Classes (JB).

Reading due: Barker (2003: chapter 7).

Week 9 Miscellaneous Java topics (JB).

Reading due: Barker (2003: chapters 13, 14).


Week 11 The Object Modeling Process; Advanced UML Considerations (JB). Group
modeling exercise in class, plus homework assignment to do in groups. Problem
Statement for group exercise to be distributed earlier (after Week 7).
Reading due: Barker (2003: chapter 10).

Week 12 Practical session - integrating agents into the simulation framework

Week 13 Common Social Science Design Patterns in OOM. (CC)

Recommended reading: Lau (2001: chapter 2).

Week 14 Thanksgiving - NO CLASS

Week 15 Practical session - tuning the simulated world-system;

Week 16 Final Battle and presentations

Final Write-ups for class project due on ... class day during finals week ...

Required Textbooks and Readings

The following textbooks are required and available at the University Bookstore or online:
Barker (2003), Lau (2001).

Additional recommended readings are listed in the References below and in handouts
distributed in class. Handout #2 is a bibliography of classic and recent publications in
Computational Social Science, which contains entries in OOM. The Center for Social
Complexity and its affiliated faculty aim to maintain an extensive bibliographic archive
of publications in OOM and agent-based social science. Reading suggestions and

additional bibliographic information are always welcome and encouraged, including

foreign publications.


Axelrod, Robert. 2003. Advancing the Art of Simulation in the Social Sciences. Japanese
Journal for Management Information Systems 12 (3). An earlier version of this
paper also appeared in Complexity 3(2) 1997: 193–199.
Cioffi-Revilla, Claudio, Sean Paus, Sean Luke, James L. Olds, and Jason Thomas. 2004.
Mnemonic Structure and Sociality: A Computational Agent-Based Simulation
Model. Proceedings of the Agent 2004 Conference on Social Dynamics:
Interaction, Reflexivity and Emergence, David Sallach and Charles Macal, eds.,
Argonne National Lab and University of Chicago, 7–9 October 2004.
Barker, Jacquie. 2003. Beginning Java Objects: From Concepts to Code. APress.
Gilbert, Nigel, and Klaus Troitzsch, eds. 1999. Simulation for the Social Scientist.
Buckingham and Philadelphia: Open University Press.
Gulyás, László. 2002. On the transition to agent-based modeling: Implementation
strategies from variables to agents. Social Science Computer Review 20 (4):
Lau, Yun-Tung. 2001. The Art of Objects: Object-Oriented Design and Architecture.
Boston: Addison-Wesley.
Luke, Sean, Claudio Cioffi-Revilla, Liviu Panait, and Keith Sullivan. 2005. MASON: A
Java Multi-Agent Simulation Environment. Simulation: Transactions of the
Society for Modeling and Simulation International 81: in press.
Macy, Michael W., and Robert Willer. 2002. From factors to actors: Computational
sociology and agent-based modeling. Annual Review of Sociology 28:143-66.
OMG Object Modeling Group. 2005.
Scott, Kendall. 2004. Fast Track UML 2.0. New York: Apress Springer-Verlag.
Simon, Herbert A. 1965. The architecture of complexity. General Systems 10:63-64.
Simon, Herbert A. 1996. The Sciences of the Artificial. 3rd ed. Cambridge, MA: MIT
Taber, Charles S., and Richard J. Timpone. 1996. Computational Modeling. Edited by M.
S. Lewis-Beck. Vol. 07-113, Sage University Papers, Quantitative Applications in
the Social Sciences. Thousand Oaks, London and New Dehli: Sage Publications.
Weisfeld, Matt. 2004. The Object-Oriented Thought Process. Second ed. Indianapolis,
IN: Developer's Library.

1 A more extensive list of references is contained in Handout #2 – An Annotated Bibliography of CSS.