Courses/Computer Science/CPSC 203/CPSC 203 Template/Skills and Concepts

Skills and Concepts

 * Course Overview
 * Labs (skills)
 * Lecture (concepts)

Course Overview
CPSC 203 is an introduction to problem solving, analysis and design using spreadsheets, databases, and through the development of simple programs.

We focus on problem definition and solving from various perspectives: The relationship of problem solving to fundamental computer science concepts will be emphasized. Computer Science offers other fields a systematic approach to solving problems. This is why computers have become so prevalent in various fields of business, arts, science, and humanities. Problem will be based on examples from a diversity of fields. Throughout the course Internet technology will be emphasized and used to complete various exercises.
 * data organization and analysis
 * via spreadsheets
 * via databases
 * via simple programs
 * through the development of simple graphical models and appropriate spreadsheet, database and program designs.

No specialized background knowledge is required for this course, but students will be expected to become familiar with the concepts. Students will use personal computers to complete assignments in spreadsheet analysis, database management and developing simple custom programs.

Labs (skills)
Lab skills focus on hands-on skills that are introduced and practiced in the Lab tutorials, and that are demonstrated through Time Boxed Assignments (TBA) -- in class assignments where you must solve a problem in a fixed period of time.

Spreadsheets Skills List
Skill List for Spreadsheets is:

1.Type in some basic data – used for rest of the quiz

2.Autofill a field(s)

3.Set up appropriate Field formats (Currency, Numbers, Text, etc.)

4.Calculate Basic Statistics (Min, Max, Average, SD, Median)

5.Use Chart Wizard to do a default chart on a data set.

6.Customize a chart according to good chart design principles

7.Do a custom calculation using a formula (possibly in several steps)

8.Use a nested If ... Then statement to define classes.

9.Use a Lookup table to define classes.

10.Summarize data in a Pivot table.

11. Forecasting (examples may be spreadsheet for a budget, manufacturing, or a simple AI model)

12. Some basic text functions (examples are concatenation, count-if, and matches to a particular text value)

13. Spreadsheets design rules.

Example Time Boxed Assignment(TBA): Enter, chart, and analyze a small data set in a spreadsheet

Databases Skills List
Skill List for Databases is:

1.Type in some basic data into several tables

2.Set table field types and default values

3.Define Primary and Foreign keys for each table

4.Do a query selecting fields across tables (setting Join conditions)

5.Do a query with multiple constraints (Where clause)

6.Do an aggregate query including basic statistics (Group By clause)

7.Do an aggregate query with multiple constraints (Having clause)

8.Summarize data via a Crosstab query

9.Do a custom calculation within a query

10.Do an IF ... Then statement within a query.

11. Database design principles

Example Time Boxed Assignment(TBA): Set up tables, primary keys, and design queries to analyze data in a small database.

Problem Solving Skills List

 * Problem solving concepts ideas will be linked back to spreadsheets, databases, and be extended to develop the general notion of an algorithm.
 * Defining How You May Solve a Problem
 * Heuristics (rules of thumb)
 * Algorithm (a mechanical procedure)


 * Some "Algorithm" and "Programming" basics:
 * Variables and constants (What do you need to know?)
 * Loops (Can any steps be repeated?)
 * While
 * For
 * Conditions (are there decision points?)
 * Logic: and, or, negation, xor, and implication (IF ... Then).
 * Input and output (data that goes into an algorithm and the data that comes out)
 * Code documentation
 * Input/output functions
 * Pseudocode
 * Testing
 * Datastructure: variable and list

Example Time Boxed Assignment(TBA): Design and code an algorithm to turn a colour photo into a black-and-white photo in JES (JES is a simple programming environment for multimedia, based on the language, Python).

Design Skill List

 * These ideas will be linked back to spreadsheets, and database design, and be extended to develop a general notion of design in problem solving.
 * Defining The Problem / planning a solution
 * Defining the problem
 * Sketching
 * Critical Variables
 * Use cases/situations
 * Relationships amongst critical variables (i.e. draw a graph of the problem)
 * Planning a solution
 * Relationships amongst critical variables (i.e. draw a graph of the problem)
 * Top Down Design
 * Prototyping
 * Interface design issues

Example Time Boxed Assignment (TBA): Use the example of setting up a volunteer event.

Lectures (concepts)
The lectures provide an introduction to problem solving, beginning 'gently' and building up to more sophisticated methods for problem solving. The initial series of lectures (lectures 2-4) introduces a basic vocabulary by which key features of a real-world problem can be abstracted by building a simple graphical model, that captures the essence of the problem. We then turn to a detailed examination of problem solving techniques in the context of Spreadsheets (lectures 5-9) and Databases (lectures 10-15), with an emphasis on problems that require us to analyze patterns, and organize information in small data sets (from various disciplines). The final series of lectures (16-21) introduces some basic concepts in logic and circuits, critical to the design of computers, and then focusses on how computer scientists solve problems via developing appropriate algorithms (mechanical procedures for solving a problem). In the context of Problem Solving students will have a basic understanding of the capabilities and limitations of spreadsheets and databases, as well as an understanding of the basic concepts that make modern computer systems possible. These lectures provide a set of core concepts students can apply to solving problems in their chosen field(s)

Lecture Concepts List
Below is a list of the key concepts covered during lectures. More details on concepts are found in the sections below which illustrate an example of a lecture-by-lecture outline (from Winter 2008) to cover these concepts.


 * 1) Structure of the Internet
 * 2) Use of Graphs to Model Situations and Problems (A Pictorial Intro to Graph Theory)
 * 3) Spreadsheets as a medium for analyzing and communicating data on a problem
 * 4) Analysis and Visual Display of Information
 * 5) Set Theory Required for Databases (including Venn diagrams)
 * 6) Databases as a medium for organizing and analyzing information on a problem.
 * 7) Database Query patterns, Entity-Relation Diagrams, and Database Design considerations.
 * 8) Introduction to Boolean Logic and Circuits (how computers work under the hood)
 * 9) Historical Introduction to Turing Machines and the concept of an Algorithm
 * 10) Historical Introduction to Von Neumann Machines and the organization of modern computers
 * 11) Examples of Problem Solving (e.g. "Security as Problem Solving", "Web Search as Problems Solving").
 * 12) "Top Down Design" in Problem Solving (and some other design alternatives).

Lecture 1: Introduction

 * course introduction (lecture 1)

Lectures 2 - 4: a graphical vocabulary for problem solving

 * building simple graphical models, example, vocabulary, and theory (lectures 2 - 4)
 * Undirected graphs, directed graphs, trees, paths, cycles, and walks (all done pictorially)

Lectures 5 - 9: problem solving using spreadsheets

 * the spreadsheet meta-model model (lecture 5)
 * spreadsheets are a way of linking objects (cells) through functions (calculations)
 * spreadsheet design principles (lecture 6)
 * understand the basic statistics and their relationship in a visual format, in terms of data (lecture 7)
 * mean, median, standard deviation, mode, sample, population, precision.
 * elements of visual information display (lecture 8)
 * exploratory vs. confirmatory analysis (lecture 9)

Lectures 10 - 15: problem solving using databases (including some basic set theory)

 * relational databases are sets (lecture 10)
 * the relational database meta-model (lecture 11)
 * query-trace mechanism (lecture 12)
 * basic query patterns (each of which represents a different type of question) (lecture 13)
 * data analysis via queries (lecture 14)
 * database design and normalization (lecture 15)

Lectures 16 - 17: logic and circuits (some warmup exercises on the way to algorithms)

 * logic as Venn diagrams and truth tables(Truth Tables covered are: and, or not, xor, implication) (lecture 16)
 * from truth tables to circuits (lecture 17)
 * connecting simple circuits to create more complex circuits

Lectures 18 - 21: problem solving through algorithms

 * From Turing machines to computers (algorithm, Turing machine, ) (lecture 18)
 * algorithm definition, Turing machine definition, universal Turing machine, (simplified example), von Neumann architecture leading to modern computers
 * security as a form of problem solving (lecture 19)
 * security concepts, and attack trees
 * problem solving design techniques (lecture 20)
 * top-down design (emphasized), prototyping, iterative design
 * extended example of top-down design via Google's page-rank algorithm (lecture 21)