Documentation:COGS 300

From UBC Wiki

Introduction

Background

COGS 300: Understanding and Designing Cognitive Systems, a core course of the Cognitive Systems program, centers around the "theory and methods for integrating diverse disciplinary content in cognitive systems"[1].

The course is twofold: Lectures that touch on theories from Physical Symbol Systems (PSS) to Connectionism to Embodied Cognition; and hands-on Labs (0-9) where students use Unity and C# to explore these concepts from an intro to Unity to designing a Robot using Machine Learning for a tournament.

COGS combines Philosophy, Linguistics, Psychology, and Computer Science to explore cognitive agents and their environments, both artificial and natural[2].

Objective

The goal of this project is to firstly identify areas of potential improvement within the Labs component of the course, secondly explore and experiment with these improvements, and thirdly implement them.

We have identified the following branches of the project for improvement:

  • User Research & User Experience
  • Lab Functionality
  • Lab Visuals & Story
  • Instructions
  • Code Supports
  • Pedagogy & Structure

Format

The COGS 300 Labs come in a series of 10 pre-labs, labs, and post-labs. During the lab itself, students of the course explore different algorithms and concepts by solving pre-constructed problems in Unity.

Primary Features

Provide an overview of the key features of the project and what they do.

User Research

The aim for the user research for this project was to interview all the stakeholders of the COGS 300 labs and gain insight into the key problem areas that this project can target.

Methodologies for this user research included conducting surveys among both students who have completed the course and current COGS 300 students asking them about the challenges they faced with the labs. Focus group interviews were conducted with the TAs of the course, providing their experience with the students of the course. The principal investigator, Marton was also interviewed giving his insights in teaching this course and how he aims to convey different cognitive system concepts through these Unity labs. Lab visits were also hosted where our team could go in person to see how these labs are conducted and appraise the effectiveness of these labs.

Some key insights as a result of this user research were that the instructions needed more clarity for the students to effectively understand and complete the tasks. There was also a need to focus on making the labs more accessible for students who don’t have extensive knowledge with coding in C# and Unity as people seemed to spend more time on technical difficulties rather than the concepts of the labs. Additionally, there was a need to bridge the code to concept gap that was in order to allow the students to focus less on their code accuracy and more on grasping the cognitive systems theories that are explored in each lab.

Moving forward, the concrete tasks that were decided were to:

  • Clarify Instructions
  • Provide Code Supports
  • Strengthen Concept to Code Pipeline
  • Add Visual Elements

Instructions

A main goal for the instructions is to convey the tasks to the students in a manner that is clear and easily understandable. Firstly, the platform for the instructions were changed from it being accessed through a blog format to canvas to keep some consistency with the other course materials. Secondly, the instructions were clarified to aid the students’ understanding of Unity tasks and class concepts. Lastly, both visual and narrative elements were incorporated in instructions in order to make them more user friendly.

Lab Visuals

As for the visual element of the labs, in order to make them more engaging for the students, an entire redesign of the visual elements in the labs incorporating a more narrative structure was planned. The core narrative of these labs would loosely follow the plot of a single soul in different robot bodies, exploring the world of artificial intelligence. This was going to be implemented by having the robot character and details in the environment evolve across each lab starting from antique mechanical designs for the labs exploring simple hard coded logic to more futuristic modern designs for the later labs exploring more complex concepts such as embodied cognition.

The environment and robot characters were all designed on Blender after which it was imported into Unity along with assets such as skyboxes from the Unity asset store which were all used to create an engaging environment that supports the concepts explored in each lab.

Lab Functionality

Code Supports

Both a Unity as well as a C# cheat-sheets were created to aid students in case of any technical difficulties.

Structure & Pedagogy

As for pedagogical changes, the main challenges that the students were facing in the labs were that there was not enough time given to complete each lab. Students also struggled with a lot of the components of the lab being too technical and skewed in favor of people who already have a background in computer science.

Solutions for these problems involved changing the structure of the labs from a problem solving angle to an exploration angle connecting the tasks in the lab to theories learnt in class. Additionally, incorporating a post lab discussion element will allow the students to better understand and explore cognitive system theories with their peers. Adding participation marks into the marking scheme will also encourage the students to put more effort into exploring the labs.

Discussion & Findings

Challenges

Provide a top level overview of the major challenges encountered and how they were addressed.

Code

  • The Unity version for this project is 2020.3.40f1
  • The repository for this project can be found at https://github.com/ubcemergingmedialab/cogs300
  • Add a section explaining:
    • What third-party assets need to be added to the project? What are their locations on the EML Teamshare?
    • What the third-party asset does
    • Why the third-party asset is needed.

Art Assets

Artwork for this project was either developed on Blender or downloaded from the Unity asset store.

Libraries

What third party assets and plugins were used in the development of this project? Please thoroughly list all of them.

A section regarding Unity Engine components and art related elements pertaining to that Prefab or Gameobject

  • What components need to be present in the Prefab or Gameobject for the feature to work properly (eg. Rigidbody and Colliders)
  • Why the components are needed
  • What tags or layers the Prefab or Gameobject needs to be set as and why
  • Any additional special notes or quirks about the GameObject or Prefab

First Time Setup Guide

  • Provide enough information for a first time user to get up and running
  • Known Issues affecting functionality or stability of the program

Poster

File:Poster F22 COGS300.pdf

Development Team

Include everyone who worked on the project and their role.

FAQ

As the title suggests

Bibliography

Provide enough information for a first time user to get up and running.

  1. https://courses.students.ubc.ca/cs/courseschedule?pname=subjarea&tname=subj-course&dept=COGS&course=300​
  2. https://cogsys.ubc.ca/​

License

Last edit: May 6, 2019 by Jin Li


Emerging Media Lab
UBC Emerging Media Lab Signature.png
About EML
A collaborative space for UBC faculty, students and staff for exploration of emerging technologies and development of innovative tools and solutions. This wiki is for public-facing documentation for our projects and procedures.
Subpages


Some rights reserved
Permission is granted to copy, distribute and/or modify this document according to the terms in Creative Commons License, Attribution-ShareAlike 4.0. The full text of this license may be found here: CC by-sa 4.0
Attribution-Share-a-like
  1. "UBC Course Schedule COGS 300". zero width space character in |url= at position 104 (help)
  2. "COGS Program Website". zero width space character in |url= at position 23 (help)