CS 205 in 202010

In the Past:

Topics and Learning Outcomes for the Knowledge Units, within the Knowledge Areas, explored in this course are based on the ACM/IEEE Curriculum Guidelines for Undergraduate Degree Programs in Computer Science (2013) report, a version of which is available in HTML on this website . That report associates one of three levels of mastery with each Learning Outcome. The mastery levels are defined as:

  • Familiarity: The student understands what a concept is or what it means. This level of mastery concerns a basic awareness of a concept as opposed to expecting real facility with its application. It provides an answer to the question “What do you know about this?”
  • Usage: The student is able to use or apply a concept in a concrete way. Using a concept may include, for example, appropriately using a specific concept in a program, using a particular proof technique, or performing a particular analysis. It provides an answer to the question “What do you know how to do?”
  • Assessment: The student is able to consider a concept from multiple viewpoints and/or justify the selection of a particular approach to solve a problem. This level of mastery implies more than using a concept; it involves the ability to select an appropriate approach from understood alternatives. It provides an answer to the question “Why would you do that?”

Topics and Learning Outcomes with:

  • 2 stars ( ★ ★ ) appear in the CS2013 report as Core-Tier1
  • 1 star ( ★ ) appear in the CS2013 report as Core-Tier2
  • 0 stars appear in the CS2013 report as Elective
  • grey text are not covered in this course offering
AR / Machine Level Representation of Data
  1. Bits, bytes, and words ★
  2. Numeric data representation and number bases ★
  3. Fixed- and floating-point systems ★
  4. Signed and twos-complement representations ★
  5. Representation of non-numeric data (character codes, graphical data) ★
  6. Representation of records and arrays ★
Learning Outcomes
  1. Explain why everything is data, including instructions, in computers. [Familiarity] ★
  2. Explain the reasons for using alternative formats to represent numerical data. [Familiarity] ★
  3. Describe how negative integers are stored in sign-magnitude and twos-complement representations. [Familiarity] ★
  4. Explain how fixed-length number representations affect accuracy and precision. [Familiarity] ★
  5. Describe the internal representation of non-numeric data, such as characters, strings, records, and arrays. [Familiarity] ★
  6. Convert numerical data from one format to another. [Usage] ★
  7. Write simple programs at the assembly/machine level for string processing and manipulation. [Usage] ★
CN / Data, Information, and Knowledge

Many topics are discussed in detail in other knowledge areas in this document, specifically Information Management (IM/Information Management Concepts, IM/Database Systems, and IM/Data Modeling), Algorithms and Complexity (AL/Basic Analysis, AL/Fundamental Data Structures and Algorithms), and Software Development Fundamentals (SDF/Fundamental Programming Concepts, SDF/Development Methods).

  1. Content management models, frameworks, systems, design methods (as in IM. Information Management) 
  2. 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 
  3. Digital content creation / capture and preservation, including digitization, sampling, compression, conversion, transformation / translation, migration / emulation, crawling, harvesting 
  4. 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
  5. 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 
  6. User / society support for presentation and interaction, including browse, search, filter, route, visualize, share, collaborate, rate, annotate, personalize, recommend 
  7. Modeling, design, logical and physical implementation, using relevant systems/software 
Learning Outcomes
  1. Identify all of the data, information, and knowledge elements and related organizations, for a computational science application. [Assessment] 
  2. Describe how to represent data and information for processing. [Familiarity] 
  3. Describe typical user requirements regarding that data, information, and knowledge. [Familiarity] 
  4. Select a suitable system or software implementation to manage data, information, and knowledge. [Assessment] 
  5. List and describe the reports, transactions, and other processing needed for a computational science application. [Familiarity] 
  6. Compare and contrast database management, information retrieval, and digital library systems with regard to handling typical computational science applications. [Assessment] 
  7. Design a digital library for some computational science users/societies, with appropriate content and services. [Usage] 
GV / Fundamental Concepts

For nearly every computer scientist and software developer, an understanding of how humans interact with machines is essential. While these topics may be covered in a standard undergraduate graphics course, they may also be covered in introductory computer science and programming courses. Part of our motivation for including immediate and retained modes is that these modes are analogous to polling vs. event driven programming. This is a fundamental question in computer science: Is there a button object, or is there just the display of a button on the screen? Note that most of the outcomes in this section are at the knowledge level, and many of these topics are revisited in greater depth in later sections.

  1. Media applications including user interfaces, audio and video editing, game engines, cad, visualization, virtual reality ★★
  2. 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) ★★
  3. Use of standard APIs for the construction of UIs and display of standard media formats (see HCI/GUI construction) ★★
  4. Standard media formats, including lossless and lossy formats ★★
  5. Additive and subtractive color models (CMYK and RGB) and why these provide a range of colors ★
  6. Tradeoffs between storing data and re-computing data as embodied by vector and raster representations of images ★
  7. Animation as a sequence of still images ★
  8. Double buffering 
Learning Outcomes
  1. Identify common uses of digital presentation to humans (e.g., computer graphics, sound). [Familiarity] ★★
  2. Explain in general terms how analog signals can be reasonably represented by discrete samples, for example, how images can be represented by pixels. [Familiarity] ★★
  3. Explain how the limits of human perception affect choices about the digital representation of analog signals. [Familiarity] ★★
  4. Construct a simple user interface using a standard API. [Usage] ★★
  5. 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] ★★
  6. Describe color models and their use in graphics display devices. [Familiarity] ★
  7. Describe the tradeoffs between storing information vs. storing enough information to reproduce the information, as in the difference between vector and raster rendering. [Familiarity] ★
  8. Describe the basic process of producing continuous motion from a sequence of discrete frames (sometimes called “flicker fusion”). [Familiarity] 
  9. Describe how double-buffering can remove flicker from animation. [Familiarity] 
GV / Basic Rendering

This section describes basic rendering and fundamental graphics techniques that nearly every undergraduate course in graphics will cover and that are essential for further study in graphics. Sampling and anti-aliasing are related to the effect of digitization and appear in other areas of computing, for example, in audio sampling.

  1. Rendering in nature, e.g., the emission and scattering of light and its relation to numerical integration 
  2. Forward and backward rendering (i.e., ray-casting and rasterization) 
  3. Polygonal representation 
  4. Basic radiometry, similar triangles, and projection model 
  5. Affine and coordinate system transformations 
  6. Ray tracing 
  7. Visibility and occlusion, including solutions to this problem such as depth buffering, Painter’s algorithm, and ray tracing 
  8. The forward and backward rendering equation 
  9. Simple triangle rasterization 
  10. Rendering with a shader-based API 
  11. Texture mapping, including minification and magnification (e.g., trilinear MIP-mapping) 
  12. Application of spatial data structures to rendering 
  13. Sampling and anti-aliasing 
  14. Scene graphs and the graphics pipeline 
Learning Outcomes
  1. 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] 
  2. Describe the basic graphics pipeline and how forward and backward rendering factor in this. [Familiarity] 
  3. Create a program to display 3D models of simple graphics images. [Usage] 
  4. Derive linear perspective from similar triangles by converting points (x, y, z) to points (x/z, y/z, 1). [Usage] 
  5. Obtain 2-dimensional and 3-dimensional points by applying affine transformations. [Usage] 
  6. Apply 3-dimensional coordinate system and the changes required to extend 2D transformation operations to handle transformations in 3D. [Usage] 
  7. Contrast forward and backward rendering. [Assessment] 
  8. Explain the concept and applications of texture mapping, sampling, and anti-aliasing. [Familiarity] 
  9. Explain the ray tracing/rasterization duality for the visibility problem. [Familiarity] 
  10. Implement simple procedures that perform transformation and clipping operations on simple 2-dimensional images. [Usage] 
  11. Implement a simple real-time renderer using a rasterization API (e.g., OpenGL) using vertex buffers and shaders. [Usage] 
  12. Compare and contrast the different rendering techniques. [Assessment] 
  13. Compute space requirements based on resolution and color coding. [Assessment] 
  14. Compute time requirements based on refresh rates, rasterization techniques. [Assessment] 
HCI / Designing Interaction

CS students need a minimal set of well-established methods and tools to bring to interface construction.

  1. Principles of graphical user interfaces (GUIs) 
  2. Elements of visual design (layout, colour, fonts, labelling) 
  3. Task analysis, including qualitative aspects of generating task analytic models 
  4. Low-fidelity (paper) prototyping 
  5. Quantitative evaluation techniques, e.g., keystroke-level evaluation 
  6. Help and documentation 
  7. Handling human/system failure 
  8. User interface standards 
Learning Outcomes
  1. For an identified user group, undertake and document an analysis of their needs. [Assessment] 
  2. Create a simple application, together with help and documentation, that supports a graphical user interface. [Usage] 
  3. Conduct a quantitative evaluation and discuss/report the results. [Usage] 
  4. Discuss at least one national or international user interface design standard. [Familiarity] 
IM / Multimedia Systems
  1. Input and output devices, device drivers, control signals and protocols, DSPs 
  2. Standards (e.g., audio, graphics, video) 
  3. Applications, media editors, authoring systems, and authoring 
  4. Streams/structures, capture/represent/transform, spaces/domains, compression/coding 
  5. Content-based analysis, indexing, and retrieval of audio, images, animation, and video 
  6. Presentation, rendering, synchronization, multi-modal integration/interfaces 
  7. Real-time delivery, quality of service (including performance), capacity planning, audio/video conferencing, video-on-demand 
Learning Outcomes
  1. Describe the media and supporting devices commonly associated with multimedia information and systems. [Familiarity] 
  2. Demonstrate the use of content-based information analysis in a multimedia information system. [Usage] 
  3. Critique multimedia presentations in terms of their appropriate use of audio, video, graphics, color, and other information presentation concepts. [Assessment] 
  4. Implement a multimedia application using an authoring system. [Usage] 
  5. 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] 
  6. 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] 
PBD / Web Platforms
  1. Web programming languages (e.g., HTML5, JavaScript, PHP, CSS) 
  2. Web platform constraints 
  3. Software as a Service (SaaS) 
  4. Web standards 
Learning Outcomes
  1. Design and implement a simple web application. [Usage] 
  2. Describe the constraints that the web puts on developers. [Familiarity] 
  3. Compare and contrast web programming with general purpose programming. [Assessment] 
  4. Describe the differences between Software-as-a-Service and traditional software products. [Familiarity] 
  5. Discuss how web standards impact software development. [Familiarity] 
  6. Review an existing web application against a current web standard. [Assessment]