Research assistant - casual position

Start date: Will commence when a suitable candidate is found

Application deadline: Will remain until filled

Supervisor: Dr. Maiga Chang

Faculty: Faculty of Science and Technology

Location: The position can be done remotely from anywhere in Canada

Status: Depending on your availability, you can do 0 (zero) hour to maximum 15 hours per week for working (sub-)tasks.


I would like to make you aware of the research assistantship opportunities that are currently available in my research group (i.e., VIP Research Group, see research outcome at as well as

Successful candidates will be working on the projects under the supervision of Prof. Maiga CHANG ( at Athabasca University.

  • Start Date: As soon as possible
  • Term: 3- or 4-month term
  • Workload: The positions are part-time research assistantship. Depending on your availability, you can do 0 (zero) hour to maximum 15 hours per week for working (sub-)tasks. You will need to upload a hour-task done text file to the project's BitBucket repository.
  • Rate: The payment is $17.04 per hour basic, which equates to about $19.44 per hour including benefits.
  • Location: You can do the tasks remotely from anywhere in Canada.


For doing this project, the student is better to have the following skills/knowledge and better to have some experiences on:

  • Familiar with JSON, HTML, CSS, and AJAX.
  • Familiar with PHP.
  • Familiar with Python.
  • Familiar with Git commands.
  • Familiar with client-side (browser side) JavaScript development WITHOUT the use of jQuery and other frameworks.
  • Familiar with using browser side JavaScript to access a backend web page in PHP via AJAX and pass data in JSON format.
  • Familiar with mySQL/MariaDB and SQL commands.
  • Information collection, re-organization, summarization, and reports.
  • Using screen capture software and video editing software/tool to create instructional video clips in mp4 format.
  • [Asset] Having knowledge and experience on Neural Networks programming in Python.
  • [Asset] Having knowledge and experience on Regular Grammar.
  • [Asset] Having experience in Network Socket and/or WebSocket programming.
  • [Asset] Familiar with JavaScript library for producing dynamic, interactive data visualizations in web browsers (e.g., D3.js).
  • [Asset] Having experience in using BitBucket/GitHub Repository.
  • [Asset] Having experience in using Natural Language Processing library (NLTK) with Python.
  • [Asset] Having experience in doing time-series/sequential data mining, pattern extraction/recognition, clustering with Python.
  • [Asset] Having experience in developing Python standalone application (acts as startup daemons running via cron job in Ubuntu).

Important notes

  1. Open until filled.
  2. All applicants are thanked for their interest in this position; however, only candidates selected for an interview will be contacted.
  3. Selected candidates will be invited for an interview that will be scheduled via online with Microsoft Teams @ until the position is filled.
  4. For interview, please prepare a very short presentation (and live demonstration what you have done before, if applies) to show the required skills you have, e.g., showing the works/codes you have done before.

How to apply

Qualified individuals are encouraged to submit their application by email to Dr. Maiga CHANG ( The application should include:

  1. a cover letter that indicates the potential research project(s) you would like to apply for and summarizes your skills, interests and experience;
  2. a current resume or curriculum vitae;
  3. an unofficial copy of your transcript, and
  4. the contact information for 2 references.

The call will be kept open until successful candidates are found.

Research projects

  1. Trading Card Game as Educational Reward System (research areas: game-based learning, learning analytics, software development, human computer interaction, and visualization)
    • Task #1 - getting familiar with existing code (e., PHP, JavaScript, etc.) and the file structure -- putting the summary and perhaps drawing relationships among codes/files into a under Source folder;
    • Task #2 - using Phaser 2 to re-design and re-implement the UIs and functions (exclude the batle);
    • Task #3 - using Phaser 2 to re-implement the batle functions;
    • Task #4 - redesigning the operation of battles -- you may search some commercial Trading Card Game on Youtube (e.g., Hearthstone, etc.) to get some ideas about what kind of user interactions people now may want to use for playing in a trading card game; and,
    • Task #5 - checking and experimenting Responsive Web Design with CSS and
  2. Key Phrases Extraction for Writing Recommendations and Better Answering User’s Question (research areas: natural language processing, artificial intelligence, neural networks, pattern recognition, generative pre-trained transformers, text generation, software development)
    • Task #1 - creating, training, and testing a Neural Network for word prediction and next word candidate finder with selected methods and large language models (e.g., Ski-gram, CBOW, RoBERTa, etc.) with full text documents;
    • Task #2 - developing a web-based Dashboard that shows neural network training stats including the neural network structure, training dataset, time spent, epochs and the training progress (e.g., accuracy, loss, ) and testing results (e.g., test dataset, precision/recall, and f-measure), as well as allows visitors to download last-night version of the trained model;
    • Task #3 - improving Valid N-gram Verifier web-based service (htps:// that takes request and sends response in JSON format;
    • Task #4 - developing a communication bridge between Valid N-gram Verifier and GPTs (e.g., GPT 3, 3.5, and 4) applications for obtaining writing recommendations; and,
    • Task #5 - revising Try It web user interface (as well as How to Access instruction) for users to enter a text, select min and max n value that they want the system to identify valid n-grams from the entered text, and see the identified valid n-grams from (n-1)-grams and the potential correspondent predicted n-grams in hierarchical view, as well as the writing
  3. Training large language model with course content (research areas: natural language processing, artificial intelligence, neural networks, software development)
    • Task #1 - developing web-based dashboard (in PHP) for teachers to create courses and upload any kind of course materials (in PDF, DOCX, DOC, PPT, PPTX, TXT, and even MP3) to the server;
    • Task #2 - implementing a system that can read and digest (with NLTK and other NLP techniques in Python) the uploaded materials of courses for training the correspondent large language models (with TensorFlow or TensorFlow Lite in Python) -- i.e., each course will have a trained large language model;
    • Task #3 - designing and developing a chatbot who can load a trained large language model dynamically so it can respond students' messages according to the course(s) students are taking -- all the communications will be saved anonymously so we can have domain experts like the teachers to rate the chatbot's performance;
    • Task #4 - the chatbot will also, from time to time, actively ask the students back regarding how they feel about their satisfactions, perceived interactions, and the content it provides, etc.
    • Task #5 - creating system feature that allows teachers to give their students a course invite link so students can join the system and then interact with the chatbot;
  4. Multi-user and multi-chatbot (research areas: natural language processing, artificial intelligence, software development)
    • Task #1 - developing a web-based multi-user chatroom (i.e., the platform) with status, breakout room creation/management/access control, online user list, whisper/chat/group chat with emoticons, message recording and reviewing, etc.
    • Task #2 - designing and developing search filters (e.g., date, period, user, word string/combinations, emotions, chatbot flag, etc.) and statistics (e.g., user/chatbot act sequences, interactions, frequencies, co-presenting, etc.).
    • Task #3 - designing and developing chatbot developer's and their chatbot registration function as well as service entry points (in PHP) for chatbot to access the platform and emulate human user's behaviours.
    • Task #4 - implementing a demo chatbot by modularizing the chatbot's behaviours and actions (e.g., listening, processing/filtering, thinking/retrieving info from memory, constructing words, and talking) as well as providing the components with simple/abstract function so future chatbot developers can adopt and extend.
  5. Sequential behaviour patterns extraction, grouping, and similarity calculation (research areas: sequential data mining, pattern extraction, recommendation, software development)
    • Task #1 - identify the behavior such as walking, running, driving (take bus and subway OR driving) based on sequential data logged.
    • Task #2 - designing and implementing time-series/sequential pattern extraction
    • Task #3 - designing and implementing pattern similarity calculation
    • Task #4 - designing and implementing pattern clustering/grouping algorithm based on patterns' similarity.
    • Task #5 - designing and implementing recommendation algorithm for individuals based on their time-series/sequential patterns and the common pattern of the group/cluster they belong to.

Athabasca University and the researchers are committed and seek to support equity in employment and research opportunities. We strongly encourage applications from Indigenous people, people of colour, people with disabilities, 2SLGBTQ+ people, women, and other historically marginalized groups. Applicants are welcome, but not required, to self-identify in their letter of application.

For more information on this Research Assistant Opportunity, please contact Dr. Maiga CHANG at