Velian Pandeliev
  • Projects
  • About
  • Teaching
  • Misc.
  • Contact

Computer science and HCI


CSC318: Design of Interactive Computational Media

University of Toronto
2014-2017

Introduction

CSC318 is the first of two HCI courses offered at the Department of Computer Science. It is meant to be a survey of interaction design from user requirements gathering through functional prototyping. The course is based on the User-Centred Design methodology. Over several iterations, I have expanded it to include elements of cognition and emotion, visual design, typography, and the Jobs-to-be-done framework as an alternative to UCD deliverables such as personas and user stories. The course roughly follows a single cycle of design from ascertaining user needs through interpreting research, ideating, prototyping, and evaluating solutions.

Topics

  • Definitions: User-centred design, user experience, interface design, interaction design
  • Understanding humans: memory, emotion, motivation, cognition, information scents, stages of action
  • Requirements gathering: literature reviews, questionnaires, interviews, observation, contextual inquiry, participatory design
  • Research interpretation: personas, scenarios, user requirements, job stories, experience maps
  • Conceptual models: affordances, signifiers, constraints, mappings, instructions, metaphors, idioms
  • Ideation and prototyping: sketches, storyboards, paper prototypes, wireframes, mockups
  • Visual design: layout, balance, negative space, colour, colour deficiency, typography, font pairing
  • Evaluation: heuristic evaluation, lost-our-lease usability testing

Group Project

Students complete a semester-long project in groups of 5. The project mirrors the stages of the UCD process.

  • Problem domain selection
  • Literature review
  • Research instrument drafts
  • Revised research instruments
  • Research results
  • Brainstorming
  • Initial prototype
  • Usability testing
  • Project pitch presentation
  • Final write-up

Assignments

Students complete three individual assignments:

  • New technology: solve a problem using a new technology's capabilities, e.g., Google's Project Soli
  • Heuristic evaluation: evaluate the department's web submission portal
  • Visual design: skin a wireframe with appropriate fonts, colours and visuals.

More info:

  • Course description
  • Course syllabus
  • Sample lecture: Research instruments

CSC108
Introduction to Computer Programming

University of Toronto
Spring 2011

Introduction

CSC108 is the first programming course in the Computer Science program, and it teaches programming fundamentals using Python. I taught CSC108 in 2011 alongside CS lecturer Paul Gries as a traditional lecture-based class.

In 2014 I was one of 5 teaching assistants hired to help transition the offering to a flipped classroom. I created 14 instructional videos and recorded voiceovers for them. The flipped classroom model is now implemented in the teaching of CSC108 in online and in-person sections alike.

Topics:

  • Data types and variables
  • Functions, return statements, parameters and arguments
  • Boolean logic, conditionals and loops
  • Modules, docstrings and __main__
  • Scope, namespaces and memory
  • Strings, tuples, lists, and dictionaries
  • Object-oriented programming fundamentals
  • Sorting algorithms and introduction to time complexity

More info:

  • Course description
  • Sample lecture: Inheritance
  • Sample lecture: CSC108 essentials summary

CSC148
Introduction to Computer Science

University of Toronto
2012-2014

Introduction

CSC148 expands on the fundamentals taught in CSC108 and begins to abstract away the particulars of Python in favour of abstract data types and algorithms.

Topics:

  • Objects, classes, inheritance, and self
  • Test-driven development and unittests
  • Queues and stacks
  • Exceptions
  • Recursion and iteration
  • Call stack and memory model
  • Lists vs linked lists
  • Trees and tree traversals
  • Binary search and binary search trees
  • Priority queues, heaps, and heapify
  • Sorting algorithms: bubble, insertion, selection, quicksort, mergesort, heapsort, timsort
  • Time complexity

More info:

  • Course description
  • Sample lecture: Binary search trees
  • Sample lecture: Priority queues and heaps
Back to Teaching
Copyright © Velian Pandeliev 2017-2020
Freelancer theme by Start Bootstrap