CS 205 : Topics & Learning Outcomes

Topics and Learning Outcomes for this course are based on ACM/IEEE Curriculum Guidelines for Undergraduate Degree Programs in Computer Science (2013). This document associates one of three levels of mastery with each Learning Outcome. The mastery levels are defined as:

This course touches on ???, with the following knowledge areas (click on one to jump to details): AR/Machine Level Representation of Data, HCI/Designing Interaction, GV/Fundamental Concepts, GV/Basic Rendering, SP/Professional Ethics, SP/Intellectual Property, SP/Privacy and Civil Liberties, SP/Professional Communication, and SP/Sustainability.

AR/Machine Level Representation of Data

Topics

  • Bits, bytes, and words
  • Numeric data representation and number bases
  • Signed and twos-complement representations
  • Representation of non-numeric data (character codes, graphical data)

Learning Outcomes

  • Explain why everything is data, including instructions, in computers. [Familiarity]
  • Explain the reasons for using alternative formats to represent numerical data. [Familiarity]
  • Describe how negative integers are stored in sign-magnitude and twos-complement representations. [Familiarity]
  • Describe the internal representation of non-numeric data, such as characters, strings, records, and arrays. [Familiarity]
  • Convert numerical data from one format to another. [Usage]

CN/Data, Information, and Knowledge

Topics

  • Content management models, frameworks, systems, design methods (as in IM/Information Management)
  • Digital representations of content including numbers, text, images (e.g., raster and vector), video (e.g., QuickTime, MPEG2, MPEG4), audio (e.g., written score, MIDI, sampled digitized sound track) and animations; complex/composite/aggregate objects; FRBR
  • Digital content creation/capture and preservation, including digitization, sampling, compression, conversion, transformation/translation, migration/emulation, crawling, harvesting
  • Content structure / management, including digital libraries and static/dynamic/stream aspects for:
    • Data: data structures, databases
    • Information: document collections, multimedia pools, hyperbases (hypertext, hypermedia), catalogs, repositories
    • Knowledge: ontologies, triple stores, semantic networks, rules
  • Processing and pattern recognition, including indexing, searching (including: queries and query languages; central / federated / P2P), retrieving, clustering, classifying/categorizing, analyzing/mining/extracting, rendering, reporting, handling transactions
  • User / society support for presentation and interaction, including browse, search, filter, route, visualize, share, collaborate, rate, annotate, personalize, recommend
  • Modelling, design, logical and physical implementation, using relevant systems/software

Learning Outcomes

  • Identify all of the data, information, and knowledge elements and related organizations, for a computational science application. [Assessment]
  • Describe how to represent data and information for processing. [Familiarity]
  • Describe typical user requirements regarding that data, information, and knowledge. [Familiarity]
  • Select a suitable system or software implementation to manage data, information, and knowledge. [Assessment]
  • List and describe the reports, transactions, and other processing needed for a computational science application. [Familiarity]
  • Compare and contrast database management, information retrieval, and digital library systems with regard to handling typical computational science applications. [Assessment]
  • Design a digital library for some computational science users/societies, with appropriate content and services. [Usage]

HCI/Designing Interaction

Topics

  • Elements of visual design (layout, colour, fonts, labeling)
  • Task analysis, including qualitative aspects of generating task analytic models
  • Low-fidelity (paper) prototyping
  • Quantitative evaluation techniques, e.g., keystroke-level evaluation
  • User interface standards

Learning Outcomes

  • For an identified user group, undertake and document an analysis of their needs. [Assessment]
  • Conduct a quantitative evaluation and discuss/report the results. [Usage]
  • Discuss at least one national or international user interface design standard. [Familiarity]

GV/Fundamental Concepts

Topics

  • Media applications including user interfaces, audio and video editing, game engines, CAD, visualization, virtual reality
  • Digitization of analog data, resolution, and the limits of human perception, e.g., pixels for visual display, dots for laser printers, and samples for audio (HCI/Foundations)
  • Use of standard APIs for the construction of UIs and display of standard media formats (see HCI/GUI construction)
  • Standard media formats, including lossless and lossy formats
  • Additive and subtractive colour models (CMYK and RGB) and why these provide a range of colours
  • Tradeoffs between storing data and re-computing data as embodied by vector and raster representations of images
  • Animation as a sequence of still images
  • Double buffering

Learning Outcomes

  • Identify common uses of digital presentation to humans (e.g., computer graphics, sound). [Familiarity]
  • Explain in general terms how analogue signals can be reasonably represented by discrete samples, for example, how images can be represented by pixels. [Familiarity]
  • Explain how the limits of human perception affect choices about the digital representation of analogue signals. [Familiarity]
  • Construct a simple user interface using a standard API. [Usage]
  • Describe the differences between lossy and lossless image compression techniques, for example as reflected in common graphics image file formats such as JPG, PNG, MP3, MP4, and GIF. [Familiarity]
  • Describe colour models and their use in graphics display devices. [Familiarity]
  • Describe the tradeoffs between storing information vs. storing enough information to reproduce the information, as in the difference between vector and raster rendering. [Familiarity]
  • Describe the basic process of producing continuous motion from a sequence of discrete frames (sometimes called “flicker fusion”). [Familiarity]
  • Describe how double-buffering can remove flicker from animation. [Familiarity]

GV/Basic Rendering

Topics

  • Rendering in nature, e.g., the emission and scattering of light and its relation to numerical integration
  • Forward and backward rendering (i.e., ray-casting and rasterization)
  • Polygonal representation
  • Basic radiometry, similar triangles, and projection model
  • Affine and coordinate system transformations
  • Ray tracing
  • Visibility and occlusion, including solutions to this problem such as depth buffering, Painter’s algorithm, and ray tracing
  • The forward and backward rendering equation
  • Simple triangle rasterization
  • Rendering with a shader-based API
  • Texture mapping, including minification and magnification (e.g., trilinear MIP-mapping)
  • Application of spatial data structures to rendering
  • Sampling and anti-aliasing
  • Scene graphs and the graphics pipeline

Learning Outcomes

  • Discuss the light transport problem and its relation to numerical integration i.e., light is emitted, scatters around the scene, and is measured by the eye. [Familiarity]
  • Describe the basic graphics pipeline and how forward and backward rendering factor in this. [Familiarity]
  • Create a program to display 3D models of simple graphics images. [Usage]
  • Derive linear perspective from similar triangles by converting points (x, y, z) to points (x/z, y/z, 1). [Usage]
  • Obtain 2-dimensional and 3-dimensional points by applying affine transformations. [Usage]
  • Apply 3-dimensional coordinate system and the changes required to extend 2D transformation operations to handle transformations in 3D. [Usage]
  • Contrast forward and backward rendering. [Assessment]
  • Explain the concept and applications of texture mapping, sampling, and anti-aliasing. [Familiarity]
  • Explain the ray tracing/rasterization duality for the visibility problem. [Familiarity]
  • Implement simple procedures that perform transformation and clipping operations on simple 2-dimensional images. [Usage]
  • Implement a simple real-time renderer using a rasterization API (e.g., OpenGL) using vertex buffers and shaders. [Usage]
  • Compare and contrast the different rendering techniques. [Assessment]
  • Compute space requirements based on resolution and color coding. [Assessment]
  • Compute time requirements based on refresh rates, rasterization techniques. [Assessment]

GV/Geometric Modelling

Topics

  • Basic geometric operations such as intersection calculation and proximity tests
  • Volumes, voxels, and point-based representations
  • Parametric polynomial curves and surfaces
  • Implicit representation of curves and surfaces
  • Approximation techniques such as polynomial curves, Bezier curves, spline curves and surfaces, and non-uniform rational basis (NURB) spines, and level set method
  • Surface representation techniques including tessellation, mesh representation, mesh fairing, and mesh generation techniques such as Delaunay triangulation and marching cubes
  • Spatial subdivision techniques
  • Procedural models such as fractals, generative modelling, and L-systems
  • Graftals, cross referenced with programming languages (grammars to generate pictures)
  • Elastically deformable and freeform deformable models
  • Subdivision surfaces
  • Multiresolution modelling
  • Reconstruction
  • Constructive Solid Geometry (CSG) representation

Learning Outcomes

GV/Advanced Rendering

Topics

  • Solutions and approximations to the rendering equation, for example: o Distribution ray tracing and path tracing
  • Photon mapping
  • Bidirectional path tracing
  • Reyes (micropolygon) rendering
  • Metropolis light transport
  • Time (motion blur), lens position (focus), and continuous frequency (colour) and their impact on rendering
  • Shadow mapping
  • Occlusion culling
  • Bidirectional Scattering Distribution function (BSDF) theory and microfacets
  • Subsurface scattering
  • Area light sources
  • Hierarchical depth buffering
  • The Light Field, image-based rendering
  • Non-photorealistic rendering
  • GPU architecture
  • Human visual systems including adaptation to light, sensitivity to noise, and flicker fusion

Learning Outcomes

  • Demonstrate how an algorithm estimates a solution to the rendering equation. [Assessment]
  • Prove the properties of a rendering algorithm, e.g., complete, consistent, and unbiased. [Assessment]
  • Analyze the bandwidth and computation demands of a simple algorithm. [Assessment]
  • Implement a non-trivial shading algorithm (e.g., toon shading, cascaded shadow maps) under a rasterization API. [Usage]
  • Discuss how a particular artistic technique might be implemented in a renderer.[Familiarity]
  • Explain how to recognize the graphics techniques used to create a particular image. [Familiarity]
  • Implement any of the specified graphics techniques using a primitive graphics system at the individual pixel level. [Usage]
  • Implement a ray tracer for scenes using a simple (e.g., Phong model) BRDF plus reflection and refraction. [Usage]

GV/Computer Animation

Topics

  • Forward and inverse kinematics
  • Collision detection and response
  • Procedural animation using noise, rules (boids/crowds), and particle systems
  • Skinning algorithms
  • Physics based motions including rigid body dynamics, physical particle systems, mass-spring networks for cloth and flesh and hair
  • Key-frame animation
  • Splines
  • Data structures for rotations, such as quaternions
  • Camera animation
  • Motion capture

Learning Outcomes

  • Compute the location and orientation of model parts using a forward kinematic approach. [Usage]
  • Compute the orientation of articulated parts of a model from a location and orientation using an inverse kinematic approach. [Usage]
  • Describe the tradeoffs in different representations of rotations. [Assessment]
  • Implement the spline interpolation method for producing in-between positions and orientations. [Usage]
  • Implement algorithms for physical modelling of particle dynamics using simple Newtonian mechanics, for example Witkin & Kass, snakes and worms, symplectic Euler, Stormer/Verlet, or midpoint Euler methods. [Usage]
  • Discuss the basic ideas behind some methods for fluid dynamics for modelling ballistic trajectories, for example for splashes, dust, fire, or smoke. [Familiarity]
  • Use common animation software to construct simple organic forms using metaball and skeleton. [Usage]

GV/Visualization

Topics

  • Visualization of 2D/3D scalar fields: color mapping, isosurfaces
  • Direct volume data rendering: ray-casting, transfer functions, segmentation
  • Visualization of: Vector fields and flow data; Time-varying data; High-dimensional data: dimension reduction, parallel coordinates; Non-spatial data: multi-variate, tree/graph structured, text
  • Perceptual and cognitive foundations that drive visual abstractions
  • Visualization design
  • Evaluation of visualization methods
  • Applications of visualization

Learning Outcomes

  • Describe the basic algorithms for scalar and vector visualization. [Familiarity]
  • Describe the tradeoffs of visualization algorithms in terms of accuracy and performance. [Assessment]
  • Propose a suitable visualization design for a particular combination of data characteristics and application tasks. [Assessment]
  • Analyze the effectiveness of a given visualization for a particular task. [Assessment]
  • Design a process to evaluate the utility of a visualization algorithm or system. [Assessment]
  • Recognize a variety of applications of visualization including representations of scientific, medical, and mathematical data; flow visualization; and spatial analysis. [Familiarity]

HCI/Designing Interaction

Topics

  • Principles of graphical user interfaces (GUIs)
  • Elements of visual design (layout, colour, fonts, labelling)
  • Task analysis, including qualitative aspects of generating task analytic models
  • Low-fidelity (paper) prototyping
  • Quantitative evaluation techniques, e.g., keystroke-level evaluation
  • Help and documentation
  • Handling human/system failure
  • User interface standards

Learning Outcomes

  • For an identified user group, undertake and document an analysis of their needs. [Assessment]
  • Create a simple application, together with help and documentation, that supports a graphical user interface. [Usage]
  • Conduct a quantitative evaluation and discuss/report the results. [Usage]
  • Discuss at least one national or international user interface design standard. [Familiarity]

IM/Information Management Concepts

Topics

  • Information systems as socio-technical systems
  • Basic information storage and retrieval (IS&R) concepts
  • Information capture and representation
  • Supporting human needs: searching, retrieving, linking, browsing, navigating
  • Information management applications
  • Declarative and navigational queries, use of links
  • Analysis and indexing
  • Quality issues: reliability, scalability, efficiency, and effectiveness

Learning Outcomes

  • Describe how humans gain access to information and data to support their needs. [Familiarity]
  • Describe the advantages and disadvantages of central organizational control over data. [Assessment]
  • Identify the careers/roles associated with information management (e.g., database administrator, data modeller, application developer, end-user). [Familiarity]
  • Compare and contrast information with data and knowledge. [Assessment]
  • Demonstrate uses of explicitly stored metadata/schema associated with data. [Usage]
  • Identify issues of data persistence for an organization. [Familiarity]
  • Critique an information application with regard to satisfying user information needs. [Assessment]
  • Explain uses of declarative queries. [Familiarity]
  • Give a declarative version for a navigational query. [Familiarity]
  • Describe several technical solutions to the problems related to information privacy, integrity, security, and preservation. [Familiarity]
  • Explain measures of efficiency (throughput, response time) and effectiveness (recall, precision). [Familiarity]
  • Describe approaches to scale up information systems. [Familiarity]
  • Identify vulnerabilities and failure scenarios in common forms of information systems. [Usage]

IM/Information Storage and Retrieval

Topics

  • Documents, electronic publishing, markup, and markup languages
  • Tries, inverted files, PAT trees, signature files, indexing
  • Morphological analysis, stemming, phrases, stop lists
  • Term frequency distributions, uncertainty, fuzziness, weighting
  • Vector space, probabilistic, logical, and advanced models
  • Information needs, relevance, evaluation, effectiveness
  • Thesauri, ontologies, classification and categorization, metadata
  • Bibliographic information, bibliometrics, citations
  • Routing and (community) filtering
  • Multimedia search, information seeking behaviour, user modelling, feedback
  • Information summarization and visualization
  • Faceted search (e.g., using citations, keywords, classification schemes)
  • Digital libraries
  • Digitization, storage, interchange, digital objects, composites, and packages
  • Metadata and cataloguing
  • Naming, repositories, archives
  • Archiving and preservation, integrity
  • Spaces (conceptual, geographical, 2/3D, VR)
  • Architectures (agents, buses, wrappers/mediators), interoperability
  • Services (searching, linking, browsing, and so forth)
  • Intellectual property rights management, privacy, and protection (watermarking)

Learning Outcomes

  • Explain basic information storage and retrieval concepts. [Familiarity]
  • Describe what issues are specific to efficient information retrieval. [Familiarity]
  • Give applications of alternative search strategies and explain why the particular search strategy is appropriate for the application. [Assessment]
  • Design and implement a small to medium size information storage and retrieval system, or digital library. [Usage]
  • Describe some of the technical solutions to the problems related to archiving and preserving information in a digital library. [Familiarity]

IM/Multimedia Systems

Topics

  • Input and output devices, device drivers, control signals and protocols, DSPs
  • Standards (e.g., audio, graphics, video)
  • Applications, media editors, authoring systems, and authoring
  • Streams/structures, capture/represent/transform, spaces/domains, compression/coding
  • Content-based analysis, indexing, and retrieval of audio, images, animation, and video
  • Presentation, rendering, synchronization, multi-modal integration/interfaces
  • Real-time delivery, quality of service (including performance), capacity planning, audio/video conferencing, video-on-demand

Learning Outcomes

  • Describe the media and supporting devices commonly associated with multimedia information and systems. [Familiarity]
  • Demonstrate the use of content-based information analysis in a multimedia information system. [Usage]
  • Critique multimedia presentations in terms of their appropriate use of audio, video, graphics, color, and other information presentation concepts. [Assessment]
  • Implement a multimedia application using an authoring system. [Usage]
  • For each of several media or multimedia standards, describe in non-technical language what the standard calls for, and explain how aspects of human perception might be sensitive to the limitations of that standard. [Familiarity]
  • Describe the characteristics of a computer system (including identification of support tools and appropriate standards) that has to host the implementation of one of a range of possible multimedia applications. [Familiarity]