Apr 23, 2024  
2019-2020 Course Catalog 
    
2019-2020 Course Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

CSCI 2010 - BattleCode

Credits: 1
Hours/Week: Lecture 1 Lab None
Course Description: This course is taught as an artificial intelligence programming contest in Java. Students work individually or in teams to program virtual robots to play Battlecode, a real-time strategy game. Commands and features to control the robots and interact with the virtual environment will be presented.  Supporting concepts in AI, concurrency, and communication will be introduced.  Students will complete a final project which is a program which controls their robots.  Student robots are then combined to compete against each other in a live Battlecode tournament. This course requires thorough knowledge of Java programming language.
MnTC Goals
None

Prerequisite(s): CSCI 1081  or instructor consent.
Corequisite(s): None
Recommendation: None

Major Content
  1. Overview of BattleCode software and process
  2. BattleCode concepts including objectives, maps, players, actions, timing
  3. BattleCode programming interface and tools
  4. Tip and hints for effective strategies
  5. AI concepts and techniques in gaming
  6. Communication concepts and techniques
  7. Concurrent process creation and coordination in a multi-tasking environment
  8. Performance metrics used to analyze software performance
  9. Collaboration and version control software
  10. Design, debugging and documentation in large concurrent applications

Learning Outcomes
At the end of this course, students will be able to:

  1. demonstrate an understanding of the BattleCode game including objectives, maps, rules, process, players, and actions.
  2. learn the battlecode programming interface and tools and how they interact with Java
  3. develop an effective strategy given parameters of the competition.
  4. use principles of artificial intelligence, concurrency and communication to implement an effective strategy for a robot army.
  5. utilize effective design, documentation and debugging practices to produce effective code.
  6. collaborate with others in a team using version control software.
  7. analyze tournament results and describe improvements or optimizations in design.

Competency 1 (1-6)
None
Competency 2 (7-10)
None


Courses and Registration



Add to Portfolio (opens a new window)