<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Maheshwa</id>
	<title>Soma-notes - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Maheshwa"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Maheshwa"/>
	<updated>2026-04-05T07:32:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=9382</id>
		<title>CR: COMP 2804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=9382"/>
		<updated>2011-04-11T17:51:24Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Assumed Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
COMP2804 Discrete Structures II&lt;br /&gt;
&lt;br /&gt;
Introduction to discrete mathematics and discrete structures. Topics include: counting, sequences and sums, discrete probability (including random variables, expectation, linearity of expectation, dependence, concentration results, distributions), recurrence relations. Material is illustrated through examples from computing.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* COMP 1805 (Minimum grade of B-?)&lt;br /&gt;
* MATH 1007&lt;br /&gt;
* MATH 1104&lt;br /&gt;
* COMP 1406&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
To learn basic tools and techniques from combinatorics and probability theory&lt;br /&gt;
which are used in several areas in CS. To learn basic counting techniques, asymptotic analysis,&lt;br /&gt;
probability and statistics. Design and analysis of several simple randomized algorithms will be discussed&lt;br /&gt;
during the course. Statistical ...&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Counting: Permutations, Combinations, Binomial Coefficients, Pigeon-Hole Principle, Inclusion-Exclusion.&lt;br /&gt;
* Asymptotic Complexity: O, Theta, Solving recurrence relations.&lt;br /&gt;
* Probability: Random Variables, Expected Value, Indicator, Markov Inequality, Chernoff Bounds.&lt;br /&gt;
* Randomized Algorithms: Median, Quicksort, Binary Search Trees, Skip Lists, 2-dimensional Linear Programming.&lt;br /&gt;
* Statistics: Confidence tests and Intervals, Hypothesis Testing, p-values, chi square, ANOVA (Analysis of Variance)&lt;br /&gt;
* Probability distributions: Poisson, normal, power laws (Zipf&#039;s law)&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=9380</id>
		<title>CR: COMP 2804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=9380"/>
		<updated>2011-04-11T17:50:26Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Assumed Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
COMP2804 Discrete Structures II&lt;br /&gt;
&lt;br /&gt;
Introduction to discrete mathematics and discrete structures. Topics include: counting, sequences and sums, discrete probability (including random variables, expectation, linearity of expectation, dependence, concentration results, distributions), recurrence relations. Material is illustrated through examples from computing.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* COMP 1805&lt;br /&gt;
* MATH 1007&lt;br /&gt;
* MATH 1104&lt;br /&gt;
* COMP 1406&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
To learn basic tools and techniques from combinatorics and probability theory&lt;br /&gt;
which are used in several areas in CS. To learn basic counting techniques, asymptotic analysis,&lt;br /&gt;
probability and statistics. Design and analysis of several simple randomized algorithms will be discussed&lt;br /&gt;
during the course. Statistical ...&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Counting: Permutations, Combinations, Binomial Coefficients, Pigeon-Hole Principle, Inclusion-Exclusion.&lt;br /&gt;
* Asymptotic Complexity: O, Theta, Solving recurrence relations.&lt;br /&gt;
* Probability: Random Variables, Expected Value, Indicator, Markov Inequality, Chernoff Bounds.&lt;br /&gt;
* Randomized Algorithms: Median, Quicksort, Binary Search Trees, Skip Lists, 2-dimensional Linear Programming.&lt;br /&gt;
* Statistics: Confidence tests and Intervals, Hypothesis Testing, p-values, chi square, ANOVA (Analysis of Variance)&lt;br /&gt;
* Probability distributions: Poisson, normal, power laws (Zipf&#039;s law)&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=9379</id>
		<title>CR: COMP 2804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=9379"/>
		<updated>2011-04-11T17:49:47Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Assumed Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
COMP2804 Discrete Structures II&lt;br /&gt;
&lt;br /&gt;
Introduction to discrete mathematics and discrete structures. Topics include: counting, sequences and sums, discrete probability (including random variables, expectation, linearity of expectation, dependence, concentration results, distributions), recurrence relations. Material is illustrated through examples from computing.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* COMP 1805&lt;br /&gt;
* MATH 1007&lt;br /&gt;
* MATH 1104&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
To learn basic tools and techniques from combinatorics and probability theory&lt;br /&gt;
which are used in several areas in CS. To learn basic counting techniques, asymptotic analysis,&lt;br /&gt;
probability and statistics. Design and analysis of several simple randomized algorithms will be discussed&lt;br /&gt;
during the course. Statistical ...&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Counting: Permutations, Combinations, Binomial Coefficients, Pigeon-Hole Principle, Inclusion-Exclusion.&lt;br /&gt;
* Asymptotic Complexity: O, Theta, Solving recurrence relations.&lt;br /&gt;
* Probability: Random Variables, Expected Value, Indicator, Markov Inequality, Chernoff Bounds.&lt;br /&gt;
* Randomized Algorithms: Median, Quicksort, Binary Search Trees, Skip Lists, 2-dimensional Linear Programming.&lt;br /&gt;
* Statistics: Confidence tests and Intervals, Hypothesis Testing, p-values, chi square, ANOVA (Analysis of Variance)&lt;br /&gt;
* Probability distributions: Poisson, normal, power laws (Zipf&#039;s law)&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=9378</id>
		<title>CR: COMP 2402 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=9378"/>
		<updated>2011-04-11T17:49:06Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Assumed Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calender Description=&lt;br /&gt;
2402 Abstract Data Types and Algorithms&lt;br /&gt;
&lt;br /&gt;
Introduction to the design and implementation of abstract data types and to complexity analysis of data structures. Topics include: stacks, queues, lists, trees, sorting and searching.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*COMP 1805&lt;br /&gt;
*COMP 1406.&lt;br /&gt;
*MATH 1007&lt;br /&gt;
*MATH 1104&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
This is an introductory course on data structures, using Java as an implementation language. The main topics covered in this course will be&lt;br /&gt;
* The Java Collections Framework&lt;br /&gt;
* Complexity analysis - Big Oh notation.&lt;br /&gt;
* Basic data types: sets, lists, stacks, queues, deques&lt;br /&gt;
* Array-based implementations of basic data types&lt;br /&gt;
* Linked-list based implementations of basic data types&lt;br /&gt;
* Ordered sets - balanced binary search trees, skiplists&lt;br /&gt;
* Basic Lower Bounds: Searching and Sorting&lt;br /&gt;
* Dictionaries - hash tables&lt;br /&gt;
* Priority queues - heaps&lt;br /&gt;
&lt;br /&gt;
Along the way, the performance issues, both theoretical and practical will be discussed. After taking this course, students should have a good understanding of how to implement a variety of data structures, and be in a position to choose the right data type and implementation for problems they encounter.&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Java: The Java Collections Framework: Interfaces and Implementations&lt;br /&gt;
* Arrays: ArrayLists, ArrayStacks, ArrayQueues, ArrayDeques, DualArrayDeques, RootishArrayStacks&lt;br /&gt;
* Linked lists&lt;br /&gt;
* Hash tables &lt;br /&gt;
* Skip lists &lt;br /&gt;
* Complexity Analysis: Big O, Theta&lt;br /&gt;
* Binary search trees: Red-Black Trees &lt;br /&gt;
* Treaps and Scapegoat Trees&lt;br /&gt;
* Heaps, Randomized meldable heaps &lt;br /&gt;
* Mergesort and sorting lower bounds &lt;br /&gt;
* Applications: Plane sweep, Convex Hull, ...&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1007_Learning_Objectives&amp;diff=9377</id>
		<title>CR: MATH 1007 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1007_Learning_Objectives&amp;diff=9377"/>
		<updated>2011-04-11T17:44:40Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Elementary Calculus I */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Elementary Calculus I==&lt;br /&gt;
&lt;br /&gt;
*Limits - introduce O, o, Theta functions.&lt;br /&gt;
*Differentiation of the elementary functions. &lt;br /&gt;
*Rules of differentiation. &lt;br /&gt;
*Applications of differentiation: max-min problems, curve sketching, approximations. &lt;br /&gt;
*Definite and indefinite integrals, integration by substitution.&lt;br /&gt;
&lt;br /&gt;
*Precludes additional credit for BIT 1000, BIT 1100, MATH 1002, MATH 1004, MATH 1009.&lt;br /&gt;
Prerequisite: Ontario Grade 12 Mathematics: Advanced Functions, or MATH 0005, or equivalent.&lt;br /&gt;
Lectures three hours a week, tutorial one hour a week.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_1805_Learning_Objectives&amp;diff=8931</id>
		<title>CR: COMP 1805 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_1805_Learning_Objectives&amp;diff=8931"/>
		<updated>2011-03-23T18:42:38Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Introduction to discrete mathematics and discrete structures. Topics include: propositional logic, predicate calculus, set theory, complexity of algorithms, mathematical reasoning and proof techniques, recurrences, induction, finite automata and graph theory. Material is illustrated through examples from computing.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
I am assuming that the students will do this course in 2nd term of their first year.&lt;br /&gt;
Requirements include:&lt;br /&gt;
*At least one course in Grade 12 Mathematics  (with U TAG)&lt;br /&gt;
*Completed MATH 1007 (Elementary Calculus) with a grade of ...&lt;br /&gt;
*Either completed or concurrently registered in MATH 1104 (Linear Algebra)&lt;br /&gt;
&lt;br /&gt;
Should have reasonable idea of&lt;br /&gt;
*1. Given a solution for a Grade 12 Math problem, should be able to verify it with minimal help.&lt;br /&gt;
*2. Should have Mathematical sophistication, for example should be able to solve/show that &lt;br /&gt;
** Sum of two odd numbers is even&lt;br /&gt;
** Not all real numbers are rationals&lt;br /&gt;
** The number of prime numbers is infinite&lt;br /&gt;
** The number of possible subsets of set of size n is 2^n&lt;br /&gt;
** Should know the meaning and significance of basic functions: log x, e^x, x^2, x, x^3&lt;br /&gt;
** Should know what is a function, what are properties of function.&lt;br /&gt;
** Given a system three linear equations, in three variables, should know how to solve it.&lt;br /&gt;
** Should know how to solve a quadratic equation&lt;br /&gt;
** Should know how to compute a formula for the sum of first n natural numbers.&lt;br /&gt;
....&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Mathematical Reasoning: Should be able to read, comprehend and construct mathematical arguments. Should develop sufficient background in mathematical logic, and should be able to apply to construct proofs. Learn some of the standard proof techniques (contradiction, induction, ..).&lt;br /&gt;
* Number Representation: Learn Bits, Bytes, Binary Representation, Floating-point representation, what is a 64-bit machine? &lt;br /&gt;
* Discrete Structures: Ability to work with discrete structures - abstract mathematical structures which are used to represent discrete objects and the relationships between objects. Examples of these structures include sets, strings, graphs, and finite-state machines.&lt;br /&gt;
* Algorithmic Thinking: Solving problems by a step-by-step process (algorithm), described in a pseudo-code. Students will get some idea on how to specify the algorithm, how to argue about its correctness, and how to argue about the computational resources (time and space) being used. (Simple algorithms like, Euclid GCD, Binary search, Merge-Sort, breadth-first search, MST,  etc. may be discussed.)&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
This list is  with respect to ROSEN&#039;s Discrete Math 6th edition and very closely follows the UBC Discrete Math Course.&lt;br /&gt;
Main omissions with current 1805 are - Big-O notation, Countability, and Relations.   Big-O will be covered in COMP 2402/COMP 2804. &lt;br /&gt;
&lt;br /&gt;
*Propositional Logic [1.1+11.3]: Introduce proposition, truth table, Logical operations (AND, NOT, OR, XOR..), Logical/Combinatorial Gates - simple circuits - how to design an half - full adder - how to design an adder for x+y, where x and y are 3 bits long [Introduce binary representation; complexity of a circuit = # of basic circuit components (wires+gates)] &lt;br /&gt;
&lt;br /&gt;
*Logical Equivalences [1.1+1.2]: if-then-else, implication, tautology, contradiction, de Morgan&#039;s Law. Learn how to simplify, manipulate, and understand complex logical statements.&lt;br /&gt;
&lt;br /&gt;
*Number Representation [3.6 + ?]: Representation of integers, hexadecimal expansion, base conversion, operation on binary numbers - addition, 2&#039;s complement, whats a 64-bit machine - what are limitations of this representation. Floating-point representation.&lt;br /&gt;
&lt;br /&gt;
* Predicates and Quantifiers [1.3+1.4]: whats a predicate? universal quantifiers, existential quantifier, negation of quantified statements, why are they important in CS (e.g Logic Programming), nested quantifiers and their ordering.  &lt;br /&gt;
 &lt;br /&gt;
*Rules of Inference [1.5]: What is a valid argument in propositional logic, basic rules of inference (if-then-else), using rules to build arguments, resolution, quantification.&lt;br /&gt;
&lt;br /&gt;
*Proof Techniques [1.6, 1.7, 3.4]: different methods, strategies. Check whether a propositional logic proof is valid or not, whether it is proving the statement. Practice on simple exercises - how to build a counterexample, how to prove a given statement - what techniques to use. (possibly cover Halting Problem - As an example of Proof by Contradiction [3.1]).&lt;br /&gt;
&lt;br /&gt;
* Sets [2.1]: Very basics of sets - definition, membership, basic operations on sets.&lt;br /&gt;
&lt;br /&gt;
* Introduction to Finite State Machines and Graphs [Parts of 12.2+12.3, Relevant Parts of Chapter 9]: Whats a DFA, how to trace the operation of a DFA, concept of acceptance/rejection of a string, concept of a language, how to design a DFA accepting s simple language. Language as a set of strings.  Also show that DFA is a graph - a directed graph - and discuss some properties of undirected and directed graphs - paths and connectivity.  &lt;br /&gt;
&lt;br /&gt;
* Induction and Recursion [Chapter 4]. Establish properties of self-referential structures using inductive proofs. What are steps involved in proof by induction - show right and wrong proofs - standard pitfalls - describe simple recursive algorithms (e.g. n!, linear search, binary search, merge sort, tree traversals,  and discuss how to show that they are correct using Induction and how to argue about computational resources being used).&lt;br /&gt;
&lt;br /&gt;
* Sets and Functions [2.1, 2.2, 2.3]: Power Set, Cartesian Products, Set Operations and de Morgans Laws. Functions : definition, 1-1 and onto, inverse (its expected that they will learn in depth about functions in Calculus and/or Linear Algebra courses).&lt;br /&gt;
&lt;br /&gt;
* Advanced DFA/NFA [12.1,12.2,12.3]: NFA, Designing NFA, Equivalence of DFA and NFA, existence of languages not recognized by a DFA - regular  languages.  Idea is to show the capabilities and limitations of these simple computation model - and show how discrete math (proof by contradiction, sets, power set, pigeon hole principle) are used to establish non-trivial results.&lt;br /&gt;
&lt;br /&gt;
* More Graph Theory [Relevant Parts of Chapter 9] Stating some of the standard daily-life problems, in terms of Mathematical Abstraction as graphs, and showing some simple graph properties and algorithms which may address the problem. (e.g. MST, DFS, BFS).&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1007_Learning_Objectives&amp;diff=8930</id>
		<title>CR: MATH 1007 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1007_Learning_Objectives&amp;diff=8930"/>
		<updated>2011-03-23T18:19:22Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Elementary Calculus I */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Elementary Calculus I==&lt;br /&gt;
&lt;br /&gt;
*Limits. &lt;br /&gt;
*Differentiation of the elementary functions. &lt;br /&gt;
*Rules of differentiation. &lt;br /&gt;
*Applications of differentiation: max-min problems, curve sketching, approximations. &lt;br /&gt;
*Definite and indefinite integrals, integration by substitution.&lt;br /&gt;
&lt;br /&gt;
*Precludes additional credit for BIT 1000, BIT 1100, MATH 1002, MATH 1004, MATH 1009.&lt;br /&gt;
Prerequisite: Ontario Grade 12 Mathematics: Advanced Functions, or MATH 0005, or equivalent.&lt;br /&gt;
Lectures three hours a week, tutorial one hour a week.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1007_Learning_Objectives&amp;diff=8929</id>
		<title>CR: MATH 1007 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1007_Learning_Objectives&amp;diff=8929"/>
		<updated>2011-03-23T18:18:11Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: Created page with &amp;quot;==Elementary Calculus I==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Elementary Calculus I==&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Learning_Objectives&amp;diff=8928</id>
		<title>CR: Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Learning_Objectives&amp;diff=8928"/>
		<updated>2011-03-23T18:17:41Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[CR: COMP 1405 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 1406 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 1805 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 2401 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 2402 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 2404 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 2405 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 2804 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 3004 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 3804 Learning Objectives]]&lt;br /&gt;
* [[CR: MATH 1104 Learning Objectives]]&lt;br /&gt;
* [[CR: MATH 1007 Learning Objectives]]&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8927</id>
		<title>CR: MATH 1104 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8927"/>
		<updated>2011-03-23T18:15:15Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Calendar Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
MATH 1104 [0.5 credit]&lt;br /&gt;
Linear Algebra for Engineering or Science&lt;br /&gt;
Systems of linear equations. Matrix algebra. Determinants. Complex numbers. Eigenvalues. Diagonalization and applications.&lt;br /&gt;
Precludes additional credit for BIT 1001, BIT 1101, MATH 1102, MATH 1107, MATH 1109, MATH 1119.&lt;br /&gt;
Note: MATH 1119 is not an acceptable substitute for MATH 1104.&lt;br /&gt;
Prerequisite: Ontario Grade 12 Mathematics: Advanced Functions, or MATH 0005, or equivalent, or permission of the School.&lt;br /&gt;
&lt;br /&gt;
New Version&lt;br /&gt;
MATH 1104 [0.5 credit]&lt;br /&gt;
Linear Algebra for Computer Science&lt;br /&gt;
*Topics:&lt;br /&gt;
**Number Theory: Z, GCD, Primes and Relative Primes, MOD, Euclidean Algorithm, Prime Factorization and Fermat&#039;s Theorem.&lt;br /&gt;
**Matrices:  Systems of linear equations, Gaussian Elimination,  Matrix algebra and Determinants, LU decomposition, &lt;br /&gt;
**Functions and Relations: 1-1, onto, bijection, inverse, composition, equivalence relations and partial orders. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Topics Omitted: Complex numbers, Eigenvalues,&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8926</id>
		<title>CR: MATH 1104 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8926"/>
		<updated>2011-03-23T18:14:33Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Calendar Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
MATH 1104 [0.5 credit]&lt;br /&gt;
Linear Algebra for Engineering or Science&lt;br /&gt;
Systems of linear equations. Matrix algebra. Determinants. Complex numbers. Eigenvalues. Diagonalization and applications.&lt;br /&gt;
Precludes additional credit for BIT 1001, BIT 1101, MATH 1102, MATH 1107, MATH 1109, MATH 1119.&lt;br /&gt;
Note: MATH 1119 is not an acceptable substitute for MATH 1104.&lt;br /&gt;
Prerequisite: Ontario Grade 12 Mathematics: Advanced Functions, or MATH 0005, or equivalent, or permission of the School.&lt;br /&gt;
&lt;br /&gt;
New Version&lt;br /&gt;
MATH 1104 [0.5 credit]&lt;br /&gt;
Linear Algebra for Computer Science&lt;br /&gt;
*Topics:&lt;br /&gt;
**Number Theory: Z, GCD, Primes and Relative Primes, MOD, Euclidean Algorithm, Prime Factoriazation and Fermat&#039;s Theorem.&lt;br /&gt;
**Matrices:  Systems of linear equations, Gaussian Elimination,  Matrix algebra and Determinants, LU decomposition, &lt;br /&gt;
**Functions and Relations: 1-1, onto, bijection, inverse, composition, equivalence relations and partial orders. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Topics Omitted: Complex numbers, Eigenvalues,&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8925</id>
		<title>CR: MATH 1104 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8925"/>
		<updated>2011-03-23T18:14:08Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Calendar Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
MATH 1104 [0.5 credit]&lt;br /&gt;
Linear Algebra for Engineering or Science&lt;br /&gt;
Systems of linear equations. Matrix algebra. Determinants. Complex numbers. Eigenvalues. Diagonalization and applications.&lt;br /&gt;
Precludes additional credit for BIT 1001, BIT 1101, MATH 1102, MATH 1107, MATH 1109, MATH 1119.&lt;br /&gt;
Note: MATH 1119 is not an acceptable substitute for MATH 1104.&lt;br /&gt;
Prerequisite: Ontario Grade 12 Mathematics: Advanced Functions, or MATH 0005, or equivalent, or permission of the School.&lt;br /&gt;
&lt;br /&gt;
New Version&lt;br /&gt;
MATH 1104 [0.5 credit]&lt;br /&gt;
Linear Algebra for Computer Science&lt;br /&gt;
*Topics:&lt;br /&gt;
**Number Theory: Z, GCD, Primes and Relative Primes, MOD, Euclidean Algorithm, Prime Factoriazation and Fermat&#039;s Theorem.&lt;br /&gt;
**Matrices:  Systems of linear equations, Gaussian Elimination,  Matrix algebra and Determinants, LU decomposition, &lt;br /&gt;
**Functions and Relations: 1-1, onto, bijection, inverse, composition, equivalence relations and partial orders. &lt;br /&gt;
**?Group Theory: Definition, Z_p, ..?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Topics Omitted: Complex numbers, Eigenvalues,&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8924</id>
		<title>CR: MATH 1104 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8924"/>
		<updated>2011-03-23T18:13:47Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Calendar Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
MATH 1104 [0.5 credit]&lt;br /&gt;
Linear Algebra for Engineering or Science&lt;br /&gt;
Systems of linear equations. Matrix algebra. Determinants. Complex numbers. Eigenvalues. Diagonalization and applications.&lt;br /&gt;
Precludes additional credit for BIT 1001, BIT 1101, MATH 1102, MATH 1107, MATH 1109, MATH 1119.&lt;br /&gt;
Note: MATH 1119 is not an acceptable substitute for MATH 1104.&lt;br /&gt;
Prerequisite: Ontario Grade 12 Mathematics: Advanced Functions, or MATH 0005, or equivalent, or permission of the School.&lt;br /&gt;
&lt;br /&gt;
New Version&lt;br /&gt;
MATH 1104 [0.5 credit]&lt;br /&gt;
Linear Algebra for Computer Science&lt;br /&gt;
*Topics:&lt;br /&gt;
**Number Theory: Z, GCD, Primes and Relative Primes, MOD, Euclidean Algorithm, Prime Factoriazation and Fermat&#039;s Theorem.&lt;br /&gt;
**Matrices:  Systems of linear equations, Gaussian Elimination,  Matrix algebra and Determinants, LU decomposition, &lt;br /&gt;
**Functions and Relations: 1-1, onto, bijection, inverse, composition, equivalence relations and partial orders. &lt;br /&gt;
**?Group Theory: Definition, Z_p, ..?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Topics Omitted: Complex numbers, Eigenvalues, Diagonalization and applications.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8923</id>
		<title>CR: MATH 1104 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8923"/>
		<updated>2011-03-23T18:08:30Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Calendar Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
MATH 1104 [0.5 credit]&lt;br /&gt;
Linear Algebra for Engineering or Science&lt;br /&gt;
Systems of linear equations. Matrix algebra. Determinants. Complex numbers. Eigenvalues. Diagonalization and applications.&lt;br /&gt;
Precludes additional credit for BIT 1001, BIT 1101, MATH 1102, MATH 1107, MATH 1109, MATH 1119.&lt;br /&gt;
Note: MATH 1119 is not an acceptable substitute for MATH 1104.&lt;br /&gt;
Prerequisite: Ontario Grade 12 Mathematics: Advanced Functions, or MATH 0005, or equivalent, or permission of the School.&lt;br /&gt;
&lt;br /&gt;
New Version&lt;br /&gt;
MATH 1104 [0.5 credit]&lt;br /&gt;
Linear Algebra for Computer Science&lt;br /&gt;
*Topics:&lt;br /&gt;
**Number Theory: Z, GCD, Primes and Relative Primes, MOD, Euclidean Algorithm, Prime Factoriazation and Fermat&#039;s Theorem.&lt;br /&gt;
**Matrices:  Systems of linear equations, Gaussian Elimination,  Matrix algebra and Determinants. &lt;br /&gt;
**Functions and Relations: 1-1, onto, bijection, inverse, composition, equivalence relations and partial orders. &lt;br /&gt;
**?Group Theory: Definition, Z_p, ..?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Topics Omitted: Complex numbers, Eigenvalues, Diagonalization and applications.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8922</id>
		<title>CR: MATH 1104 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8922"/>
		<updated>2011-03-23T18:00:05Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Calendar Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
MATH 1104 [0.5 credit]&lt;br /&gt;
Linear Algebra for Engineering or Science&lt;br /&gt;
Systems of linear equations. Matrix algebra. Determinants. Complex numbers. Eigenvalues. Diagonalization and applications.&lt;br /&gt;
Precludes additional credit for BIT 1001, BIT 1101, MATH 1102, MATH 1107, MATH 1109, MATH 1119.&lt;br /&gt;
Note: MATH 1119 is not an acceptable substitute for MATH 1104.&lt;br /&gt;
Prerequisite: Ontario Grade 12 Mathematics: Advanced Functions, or MATH 0005, or equivalent, or permission of the School.&lt;br /&gt;
&lt;br /&gt;
New Version&lt;br /&gt;
MATH 1104 [0.5 credit]&lt;br /&gt;
Linear Algebra for Computer Science&lt;br /&gt;
*Topics:&lt;br /&gt;
**Number Theory: Z, GCD, Primes and Relative Primes, MOD, Euclidean Algorithm, Prime Factoriazation and Fermat&#039;s Theorem.&lt;br /&gt;
**Matrices:  Systems of linear equations, Gaussian Elimination,  Matrix algebra and Determinants. &lt;br /&gt;
**Functions and Relations: 1-1, onto, bijection, inverse, composition, equivalence relations and partial orders. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Topics Omitted: Complex numbers, Eigenvalues, Diagonalization and applications.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8921</id>
		<title>CR: MATH 1104 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8921"/>
		<updated>2011-03-23T17:58:38Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Calendar Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
MATH 1104 [0.5 credit]&lt;br /&gt;
Linear Algebra for Engineering or Science&lt;br /&gt;
Systems of linear equations. Matrix algebra. Determinants. Complex numbers. Eigenvalues. Diagonalization and applications.&lt;br /&gt;
Precludes additional credit for BIT 1001, BIT 1101, MATH 1102, MATH 1107, MATH 1109, MATH 1119.&lt;br /&gt;
Note: MATH 1119 is not an acceptable substitute for MATH 1104.&lt;br /&gt;
Prerequisite: Ontario Grade 12 Mathematics: Advanced Functions, or MATH 0005, or equivalent, or permission of the School.&lt;br /&gt;
&lt;br /&gt;
New Version&lt;br /&gt;
MATH 1104 [0.5 credit]&lt;br /&gt;
Linear Algebra for Computer Science&lt;br /&gt;
Topics:&lt;br /&gt;
*Number Theory: Z, GCD, Primes and Relative Primes, MOD, Euclidean Algorithm, Prime Factoriazation and Fermat&#039;s Theorem.&lt;br /&gt;
*Matrices:  Systems of linear equations, Gaussian Elimination,  Matrix algebra and Determinants. &lt;br /&gt;
*Functions and Relations: 1-1, onto, bijection, inverse, composition, equivalence relations and partial orders. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Topics Omitted: Complex numbers, Eigenvalues, Diagonalization and applications.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8920</id>
		<title>CR: MATH 1104 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_MATH_1104_Learning_Objectives&amp;diff=8920"/>
		<updated>2011-03-23T17:52:31Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: Created page with &amp;quot;=Calendar Description=&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Learning_Objectives&amp;diff=8919</id>
		<title>CR: Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Learning_Objectives&amp;diff=8919"/>
		<updated>2011-03-23T17:51:58Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[CR: COMP 1405 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 1406 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 1805 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 2401 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 2402 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 2404 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 2405 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 2804 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 3004 Learning Objectives]]&lt;br /&gt;
* [[CR: COMP 3804 Learning Objectives]]&lt;br /&gt;
* [[CR: MATH 1104 Learning Objectives]]&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_1805_Learning_Objectives&amp;diff=8918</id>
		<title>CR: COMP 1805 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_1805_Learning_Objectives&amp;diff=8918"/>
		<updated>2011-03-23T17:48:30Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Introduction to discrete mathematics and discrete structures. Topics include: propositional logic, predicate calculus, set theory, complexity of algorithms, mathematical reasoning and proof techniques, recurrences, induction, finite automata and graph theory. Material is illustrated through examples from computing.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
I am assuming that the students will do this course in 2nd term of their first year.&lt;br /&gt;
Requirements include:&lt;br /&gt;
*At least one course in Grade 12 Mathematics  (with U TAG)&lt;br /&gt;
*Completed MATH 1007 (Elementary Calculus) with a grade of ...&lt;br /&gt;
*Either completed or concurrently registered in MATH 1104 (Linear Algebra)&lt;br /&gt;
&lt;br /&gt;
Should have reasonable idea of&lt;br /&gt;
*1. Given a solution for a Grade 12 Math problem, should be able to verify it with minimal help.&lt;br /&gt;
*2. Should have Mathematical sophistication, for example should be able to solve/show that &lt;br /&gt;
** Sum of two odd numbers is even&lt;br /&gt;
** Not all real numbers are rationals&lt;br /&gt;
** The number of prime numbers is infinite&lt;br /&gt;
** The number of possible subsets of set of size n is 2^n&lt;br /&gt;
** Should know the meaning and significance of basic functions: log x, e^x, x^2, x, x^3&lt;br /&gt;
** Should know what is a function, what are properties of function.&lt;br /&gt;
** Given a system three linear equations, in three variables, should know how to solve it.&lt;br /&gt;
** Should know how to solve a quadratic equation&lt;br /&gt;
** Should know how to compute a formula for the sum of first n natural numbers.&lt;br /&gt;
....&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Mathematical Reasoning: Should be able to read, comprehend and construct mathematical arguments. Should develop sufficient background in mathematical logic, and should be able to apply to construct proofs. Learn some of the standard proof techniques (contradiction, induction, ..).&lt;br /&gt;
* Number Representation: Learn Bits, Bytes, Binary Representation, Floating-point representation, what is a 64-bit machine? &lt;br /&gt;
* Discrete Structures: Ability to work with discrete structures - abstract mathematical structures which are used to represent discrete objects and the relationships between objects. Examples of these structures include sets, strings, graphs, and finite-state machines.&lt;br /&gt;
* Algorithmic Thinking: Solving problems by a step-by-step process (algorithm), described in a pseudo-code. Students will get some idea on how to specify the algorithm, how to argue about its correctness, and how to argue about the computational resources (time and space) being used. (Simple algorithms like, Euclid GCD, Binary search, Merge-Sort, breadth-first search, MST,  etc. may be discussed.)&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
This list is  with respect to ROSEN&#039;s Discrete Math 6th edition and very closely follows the UBC Discrete Math Course.&lt;br /&gt;
Main omissions with current 1805 are - Big-O notation, Countability, and Relations.   Big-O will be covered in COMP 2402/COMP 2804. &lt;br /&gt;
&lt;br /&gt;
*Propositional Logic [1.1+11.3]: Introduce proposition, truth table, Logical operations (AND, NOT, OR, XOR..), Logical/Combinatorial Gates - simple circuits - how to design an half - full adder - how to design an adder for x+y, where x and y are 3 bits long [Introduce binary representation; complexity of a circuit = # of basic circuit components (wires+gates)] &lt;br /&gt;
&lt;br /&gt;
*Logical Equivalences [1.1+1.2]: if-then-else, implication, tautology, contradiction, de Morgan&#039;s Law. Learn how to simplify, manipulate, and understand complex logical statements.&lt;br /&gt;
&lt;br /&gt;
*Number Representation [3.6 + ?]: Representation of integers, hexadecimal expansion, base conversion, operation on binary numbers - addition, 2&#039;s complement, whats a 64-bit machine - what are limitations of this representation. Floating-point representation.&lt;br /&gt;
&lt;br /&gt;
* Predicates and Quantifiers [1.3+1.4]: whats a predicate? universal quantifiers, existential quantifier, negation of quantified statements, why are they important in CS (e.g Logic Programming), nested quantifiers and their ordering.  &lt;br /&gt;
 &lt;br /&gt;
*Rules of Inference [1.5]: What is a valid argument in propositional logic, basic rules of inference (if-then-else), using rules to build arguments, resolution, quantification.&lt;br /&gt;
&lt;br /&gt;
*Proof Techniques [1.6, 1.7, 3.4]: different methods, strategies. Check whether a propositional logic proof is valid or not, whether it is proving the statement. Practice on simple exercises - how to build a counterexample, how to prove a given statement - what techniques to use. (possibly cover Halting Problem - As an example of Proof by Contradiction [3.1]).&lt;br /&gt;
&lt;br /&gt;
* Sets [2.1]: Very basics of sets - definition, membership, basic operations on sets.&lt;br /&gt;
&lt;br /&gt;
* Introduction to Finite State Machines and Graphs [Parts of 12.2+12.3, Relevant Parts of Chapter 9]: Whats a DFA, how to trace the operation of a DFA, concept of acceptance/rejection of a string, concept of a language, how to design a DFA accepting s simple language. Language as a set of strings.  Also show that DFA is a graph - a directed graph - and discuss some properties of undirected and directed graphs - paths and connectivity.  &lt;br /&gt;
&lt;br /&gt;
* Induction and Recursion [Chapter 4]. Establish properties of self-referential structures using inductive proofs. What are steps involved in proof by induction - show right and wrong proofs - standard pitfalls - describe simple recursive algorithms (e.g. n!, linear search, binary search, merge sort, tree traversals,  and discuss how to show that they are correct using Induction and how to argue about computational resources being used).&lt;br /&gt;
&lt;br /&gt;
* Sets [and Functions] [2.1, 2.2[, 2.3]]: Power Set, Cartesian Products, Set Operations and de Morgans Laws. [May or may not review Functions : definition, 1-1 and onto, inverse (its expected that they will learn in depth about functions in Calculus and Linear Algebra courses).] &lt;br /&gt;
&lt;br /&gt;
* Advanced DFA/NFA [12.1,12.2,12.3]: NFA, Designing NFA, Equivalence of DFA and NFA, existence of languages not recognized by a DFA - regular  languages.  Idea is to show the capabilities and limitations of these simple computation model - and show how discrete math (proof by contradiction, sets, power set, pigeon hole principle) are used to establish non-trivial results.&lt;br /&gt;
&lt;br /&gt;
* More Graph Theory [Relevant Parts of Chapter 9] Stating some of the standard daily-life problems, in terms of Mathematical Abstraction as graphs, and showing some simple graph properties and algorithms which may address the problem. (e.g. MST, DFS, BFS).&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_1805_Learning_Objectives&amp;diff=8917</id>
		<title>CR: COMP 1805 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_1805_Learning_Objectives&amp;diff=8917"/>
		<updated>2011-03-23T17:47:32Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Introduction to discrete mathematics and discrete structures. Topics include: propositional logic, predicate calculus, set theory, complexity of algorithms, mathematical reasoning and proof techniques, recurrences, induction, finite automata and graph theory. Material is illustrated through examples from computing.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
I am assuming that the students will do this course in 2nd term of their first year.&lt;br /&gt;
Requirements include:&lt;br /&gt;
*At least one course in Grade 12 Mathematics  (with U TAG)&lt;br /&gt;
*Completed MATH 1007 (Elementary Calculus) with a grade of ...&lt;br /&gt;
*Either completed or concurrently registered in MATH 1104 (Linear Algebra)&lt;br /&gt;
&lt;br /&gt;
Should have reasonable idea of&lt;br /&gt;
*1. Given a solution for a Grade 12 Math problem, should be able to verify it with minimal help.&lt;br /&gt;
*2. Should have Mathematical sophistication, for example should be able to solve/show that &lt;br /&gt;
** Sum of two odd numbers is even&lt;br /&gt;
** Not all real numbers are rationals&lt;br /&gt;
** The number of prime numbers is infinite&lt;br /&gt;
** The number of possible subsets of set of size n is 2^n&lt;br /&gt;
** Should know the meaning and significance of basic functions: log x, e^x, x^2, x, x^3&lt;br /&gt;
** Should know what is a function, what are properties of function.&lt;br /&gt;
** Given a system three linear equations, in three variables, should know how to solve it.&lt;br /&gt;
** Should know how to solve a quadratic equation&lt;br /&gt;
** Should know how to compute a formula for the sum of first n natural numbers.&lt;br /&gt;
....&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Mathematical Reasoning: Should be able to read, comprehend and construct mathematical arguments. Should develop sufficient background in mathematical logic, and should be able to apply to construct proofs. Learn some of the standard proof techniques (contradiction, induction, ..).&lt;br /&gt;
* Number Representation: Learn Bits, Bytes, Binary Representation, Floating-point representation, what is a 64-bit machine? &lt;br /&gt;
* Discrete Structures: Ability to work with discrete structures - abstract mathematical structures which are used to represent discrete objects and the relationships between objects. Examples of these structures include sets, strings, graphs, and finite-state machines.&lt;br /&gt;
* Algorithmic Thinking: Solving problems by a step-by-step process (algorithm), described in a pseudo-code. Students will get some idea on how to specify the algorithm, how to argue about its correctness, and how to argue about the computational resources (time and space) being used. (Simple algorithms like, Euclid GCD, Binary search, Merge-Sort, breadth-first search, MST,  etc. may be discussed.)&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
This list is  with respect to ROSEN&#039;s Discrete Math 6th edition and very closely follows the UBC Discrete Math Course.&lt;br /&gt;
Main omissions with current 1805 are - Big-O notation, Countability, and Relations.   Big-O will be covered in COMP 2402/COMP 2804. &lt;br /&gt;
&lt;br /&gt;
*Propositional Logic [1.1+11.3]: Introduce proposition, truth table, Logical operations (AND, NOT, OR, XOR..), Logical/Combinatorial Gates - simple circuits - how to design an half - full adder - how to design an adder for x+y, where x and y are 3 bits long [Introduce binary representation; complexity of a circuit = # of basic circuit components (wires+gates)] &lt;br /&gt;
&lt;br /&gt;
*Logical Equivalences [1.1+1.2]: if-then-else, implication, tautology, contradiction, de Morgan&#039;s Law. Learn how to simplify, manipulate, and understand complex logical statements.&lt;br /&gt;
&lt;br /&gt;
*Number Representation [3.6 + ?]: Representation of integers, hexadecimal expansion, base conversion, operation on binary numbers - addition, 2&#039;s complement, whats a 64-bit machine - what are limitations of this representation. Floating-point representation.&lt;br /&gt;
&lt;br /&gt;
* Predicates and Quantifiers [1.3+1.4]: whats a predicate? universal quantifiers, existential quantifier, negation of quantified statements, why are they important in CS (e.g Logic Programming), nested quantifiers and their ordering.  &lt;br /&gt;
 &lt;br /&gt;
*Rules of Inference [1.5]: What is a valid argument in propositional logic, basic rules of inference (if-then-else), using rules to build arguments, resolution, quantification.&lt;br /&gt;
&lt;br /&gt;
*Proof Techniques [1.6, 1.7, 3.4]: different methods, strategies. Check whether a propositional logic proof is valid or not, whether it is proving the statement. Practice on simple exercises - how to build a counterexample, how to prove a given statement - what techniques to use.&lt;br /&gt;
&lt;br /&gt;
* Sets [2.1]: Very basics of sets - definition, membership, basic operations on sets.&lt;br /&gt;
&lt;br /&gt;
* Introduction to Finite State Machines and Graphs [Parts of 12.2+12.3, Relevant Parts of Chapter 9]: Whats a DFA, how to trace the operation of a DFA, concept of acceptance/rejection of a string, concept of a language, how to design a DFA accepting s simple language. Language as a set of strings.  Also show that DFA is a graph - a directed graph - and discuss some properties of undirected and directed graphs - paths and connectivity.  &lt;br /&gt;
&lt;br /&gt;
* Induction and Recursion [Chapter 4]. Establish properties of self-referential structures using inductive proofs. What are steps involved in proof by induction - show right and wrong proofs - standard pitfalls - describe simple recursive algorithms (e.g. n!, linear search, binary search, merge sort, tree traversals,  and discuss how to show that they are correct using Induction and how to argue about computational resources being used).&lt;br /&gt;
&lt;br /&gt;
* Sets [and Functions] [2.1, 2.2[, 2.3]]: Power Set, Cartesian Products, Set Operations and de Morgans Laws. [May or may not review Functions : definition, 1-1 and onto, inverse (its expected that they will learn in depth about functions in Calculus and Linear Algebra courses).] &lt;br /&gt;
&lt;br /&gt;
* Advanced DFA/NFA [12.1,12.2,12.3]: NFA, Designing NFA, Equivalence of DFA and NFA, existence of languages not recognized by a DFA - regular  languages.  Idea is to show the capabilities and limitations of these simple computation model - and show how discrete math (proof by contradiction, sets, power set, pigeon hole principle) are used to establish non-trivial results.&lt;br /&gt;
&lt;br /&gt;
* More Graph Theory [Relevant Parts of Chapter 9] Stating some of the standard daily-life problems, in terms of Mathematical Abstraction as graphs, and showing some simple graph properties and algorithms which may address the problem. (e.g. MST, DFS, BFS).&lt;br /&gt;
&lt;br /&gt;
* Halting Problem - As an example of Proof by Contradiction [3.1]&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_1805_Learning_Objectives&amp;diff=8916</id>
		<title>CR: COMP 1805 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_1805_Learning_Objectives&amp;diff=8916"/>
		<updated>2011-03-23T17:44:22Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Learning Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Introduction to discrete mathematics and discrete structures. Topics include: propositional logic, predicate calculus, set theory, complexity of algorithms, mathematical reasoning and proof techniques, recurrences, induction, finite automata and graph theory. Material is illustrated through examples from computing.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
I am assuming that the students will do this course in 2nd term of their first year.&lt;br /&gt;
Requirements include:&lt;br /&gt;
*At least one course in Grade 12 Mathematics  (with U TAG)&lt;br /&gt;
*Completed MATH 1007 (Elementary Calculus) with a grade of ...&lt;br /&gt;
*Either completed or concurrently registered in MATH 1104 (Linear Algebra)&lt;br /&gt;
&lt;br /&gt;
Should have reasonable idea of&lt;br /&gt;
*1. Given a solution for a Grade 12 Math problem, should be able to verify it with minimal help.&lt;br /&gt;
*2. Should have Mathematical sophistication, for example should be able to solve/show that &lt;br /&gt;
** Sum of two odd numbers is even&lt;br /&gt;
** Not all real numbers are rationals&lt;br /&gt;
** The number of prime numbers is infinite&lt;br /&gt;
** The number of possible subsets of set of size n is 2^n&lt;br /&gt;
** Should know the meaning and significance of basic functions: log x, e^x, x^2, x, x^3&lt;br /&gt;
** Should know what is a function, what are properties of function.&lt;br /&gt;
** Given a system three linear equations, in three variables, should know how to solve it.&lt;br /&gt;
** Should know how to solve a quadratic equation&lt;br /&gt;
** Should know how to compute a formula for the sum of first n natural numbers.&lt;br /&gt;
....&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Mathematical Reasoning: Should be able to read, comprehend and construct mathematical arguments. Should develop sufficient background in mathematical logic, and should be able to apply to construct proofs. Learn some of the standard proof techniques (contradiction, induction, ..).&lt;br /&gt;
* Number Representation: Learn Bits, Bytes, Binary Representation, Floating-point representation, what is a 64-bit machine? &lt;br /&gt;
* Discrete Structures: Ability to work with discrete structures - abstract mathematical structures which are used to represent discrete objects and the relationships between objects. Examples of these structures include sets, strings, graphs, and finite-state machines.&lt;br /&gt;
* Algorithmic Thinking: Solving problems by a step-by-step process (algorithm), described in a pseudo-code. Students will get some idea on how to specify the algorithm, how to argue about its correctness, and how to argue about the computational resources (time and space) being used. (Simple algorithms like, Euclid GCD, Binary search, Merge-Sort, breadth-first search, MST,  etc. may be discussed.)&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
This list is  with respect to ROSEN&#039;s Discrete Math 6th edition and very closely follows the UBC Discrete Math Course.&lt;br /&gt;
Main omissions with current 1805 are - Big-O notation, Countability, and Relations.   Big-O will be covered in COMP 2402/COMP 2804. &lt;br /&gt;
&lt;br /&gt;
*Propositional Logic [1.1+11.3]: Introduce proposition, truth table, Logical operations (AND, NOT, OR, XOR..), Logical/Combinatorial Gates - simple circuits - how to design an half - full adder - how to design an adder for x+y, where x and y are 3 bits long [Introduce binary representation; complexity of a circuit = # of basic circuit components (wires+gates)] &lt;br /&gt;
&lt;br /&gt;
*Logical Equivalences [1.1+1.2]: if-then-else, implication, tautology, contradiction, de Morgan&#039;s Law. Learn how to simplify, manipulate, and understand complex logical statements.&lt;br /&gt;
&lt;br /&gt;
*Number Representation [3.6 + ?]: Representation of integers, hexadecimal expansion, base conversion, operation on binary numbers - addition, 2&#039;s complement, whats a 64-bit machine - what are limitations of this representation. Floating-point representation ?&lt;br /&gt;
&lt;br /&gt;
* Predicates and Quantifiers [1.3+1.4]: whats a predicate? universal quantifiers, existential quantifier, negation of quantified statements, why are they important in CS (e.g Logic Programming), nested quantifiers and their ordering.  &lt;br /&gt;
 &lt;br /&gt;
*Rules of Inference [1.5]: What is a valid argument in propositional logic, basic rules of inference (if-then-else), using rules to build arguments, resolution, quantification.&lt;br /&gt;
&lt;br /&gt;
*Proof Techniques [1.6, 1.7, 3.4]: different methods, strategies. Check whether a propositional logic proof is valid or not, whether it is proving the statement. Practice on simple exercises - how to build a counterexample, how to prove a given statement - what techniques to use.&lt;br /&gt;
&lt;br /&gt;
* Sets [2.1]: Very basics of sets - definition, membership, basic operations on sets.&lt;br /&gt;
&lt;br /&gt;
* Introduction to Finite State Machines and Graphs [Parts of 12.2+12.3, Relevant Parts of Chapter 9]: Whats a DFA, how to trace the operation of a DFA, concept of acceptance/rejection of a string, concept of a language, how to design a DFA accepting s simple language. Language is a set of strings.  Also show that DFA is a graph - a directed graph - and discuss some properties of undirected and directed graphs - paths and connectivity.  &lt;br /&gt;
&lt;br /&gt;
* Induction and Recursion [Chapter 4]. Establish properties of self-referential structures using inductive proofs. What are steps involved in proof by induction - show right and wrong proofs - standard pitfalls - describe simple recursive algorithms (e.g. n!, linear search, binary search, merge sort, tree traversals,  and discuss how to show that they are correct using Induction and how to argue about computational resources being used).&lt;br /&gt;
&lt;br /&gt;
* Sets [and Functions] [2.1, 2.2[, 2.3]]: Power Set, Cartesian Products, Set Operations and de Morgans Laws. [May or may not review Functions : definition, 1-1 and onto, inverse (its expected that they will learn in depth about functions in Calculus and Linear Algebra courses).] &lt;br /&gt;
&lt;br /&gt;
* Advanced DFA/NFA [12.1,12.2,12.3]: NFA, Designing NFA, Equivalence of DFA and NFA, existence of languages not recognized by a DFA - regular  languages.  Idea is to show the capabilities and limitations of these simple computation model - and show how discrete math (proof by contradiction, sets, power set, pigeon hole principle) are used to establish non-trivial results.&lt;br /&gt;
&lt;br /&gt;
* More Graph Theory [Relevant Parts of Chapter 9] Stating some of the standard daily-life problems, in terms of Mathematical Abstraction as graphs, and showing some simple graph properties and algorithms which may address the problem. (e.g. MST, DFS, BFS).&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=8903</id>
		<title>CR: COMP 2804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=8903"/>
		<updated>2011-03-22T17:46:07Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
COMP2804 Discrete Structures II&lt;br /&gt;
&lt;br /&gt;
Introduction to discrete mathematics and discrete structures. Topics include: counting, sequences and sums, discrete probability (including random variables, expectation, linearity of expectation, dependence, concentration results, distributions), recurrence relations. Material is illustrated through examples from computing.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* COMP 1805&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
To learn basic tools and techniques from combinatorics and probability theory&lt;br /&gt;
which are used in several areas in CS. To learn basic counting techniques, asymptotic analysis,&lt;br /&gt;
probability and statistics. Design and analysis of several simple randomized algorithms will be discussed&lt;br /&gt;
during the course. Statistical ...&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Counting: Permutations, Combinations, Binomial Coefficients, Pigeon-Hole Principle, Inclusion-Exclusion.&lt;br /&gt;
* Asymptotic Complexity: O, Theta, Solving recurrence relations.&lt;br /&gt;
* Probability: Random Variables, Expected Value, Indicator, Markov Inequality, Chernoof Bounds.&lt;br /&gt;
* Randomized Algorithms: Median, Quicksort, Binary Search Trees, Skip Lists, 2-dimensional Linear Programming.&lt;br /&gt;
* Statistics: Confidence tests and Intervals, Hypothesis Testing.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8902</id>
		<title>CR: COMP 3804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8902"/>
		<updated>2011-03-22T17:43:42Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
COMP 3804 Design and Analysis of Algorithms I&lt;br /&gt;
&lt;br /&gt;
An introduction to the design and analysis of algorithms. Topics include: divide-and-conquer, dynamic programming, linear programming, greedy algorithms, graph algorithms, NP-completeness.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
COMP 2402 and COMP 2804.&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Designing algorithms, their correctness and efficiency.  &lt;br /&gt;
* How to think about abstract computation - develop algorithmic intution - how to attack a problem algorithmically.&lt;br /&gt;
* Algorithmic techniques - learn key techniques (greed, divid-and-conquer, dynamic programming, LP, ..) -  which technique to use for a given problem.&lt;br /&gt;
* How to compare one algorithmic solution versus another for a problem&lt;br /&gt;
* How to express the algorithmic solution - pseodcode - steps - analyze - argue that it is correct -  essentially how will you explain your algorithmic solutions to others?&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Introduction: Whats an Algorithm,  bib-O notation,  recurrence relation, masters theorem.&lt;br /&gt;
* Divide and Conquer:  Multiplying two n-bit integers, merge-sort, Matrix Multiplication ..&lt;br /&gt;
* Disjoint Sets Data Structure?&lt;br /&gt;
* Graphs: Representation, Traversals - DFS &amp;amp; BFS, Shortest Paths (including A* heuristic).&lt;br /&gt;
* Greedy Algorithms: Minimum Spanning Trees, Huffman Encodings, ...&lt;br /&gt;
* Dynamic Programming: Edit Distance, Longest Common Sequence, ...&lt;br /&gt;
* Linear Programming:  What it is, how to express seveal problems as LP problems (Flow, Shortest Paths, Matching), review of simplex algorithm. [This was never covered before]&lt;br /&gt;
* NP-Completeness: search problems, polynomial time reductions, ideas of Cooks Theorem.&lt;br /&gt;
* Whats Next: Brief idea on how to cope with NP-Complete problems - one lecture introduction to approximation algorithms, exhaustive search and search heuristics.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8901</id>
		<title>CR: COMP 3804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8901"/>
		<updated>2011-03-22T17:42:41Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
COMP 3804 Design and Analysis of Algorithms I&lt;br /&gt;
&lt;br /&gt;
An introduction to the design and analysis of algorithms. Topics include: divide-and-conquer, dynamic programming, linear programming, greedy algorithms, graph algorithms, NP-completeness.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
COMP 2402 and COMP 2804.&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Designing algorithms, their correctness and efficiency.  &lt;br /&gt;
* How to think about abstract computation - develop algorithmic intution - how to attack a problem algorithmically.&lt;br /&gt;
* Algorithmic techniques - learn key techniques (greed, divid-and-conquer, dynamic programming, LP, ..) -  which technique to use for a given problem.&lt;br /&gt;
* How to compare one algorithmic solution versus another for a problem&lt;br /&gt;
* How to express the algorithmic solution - pseodcode - steps - analyze - argue that it is correct -  essentially how will you explain your algorithmic solutions to others?&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Introduction: Whats an Algorithm,  bib-O notation,  recurrence relation, masters theorem.&lt;br /&gt;
* Divide and Conquer:  Multiplying two n-bit integers, merge-sort, Matrix Multiplication ..&lt;br /&gt;
* Disjoint Sets Data Structure?&lt;br /&gt;
* Graphs: Representation, Traversals - DFS &amp;amp; BFS, Shortest Paths (including A* heuristic).&lt;br /&gt;
* Greedy Algorithms: Minimum SPanning Trees, Huffman Encodings, ...&lt;br /&gt;
* Dynamic Programming: Edit Distance, Longest Common Sequence, ...&lt;br /&gt;
* Linear Programming:  What it is, how to express seveal problems as LP problems (Flow, Shortest Paths, Matching), ideas of simplex algorithm (or the randomized algorithm). [This was never covered before]&lt;br /&gt;
* NP-Completeness: search problems, polynomial time reductions, ideas of Cooks Theorem.&lt;br /&gt;
* Whats Next: Brief idea on how to cope with NP-Complete problems - one lecture introduction to approximation algorithms, exhaustive search and search heuristics.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8900</id>
		<title>CR: COMP 3804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8900"/>
		<updated>2011-03-22T17:42:04Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Calendar Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
COMP 3804 Design and Analysis of Algorithms I&lt;br /&gt;
&lt;br /&gt;
An introduction to the design and analysis of algorithms. Topics include: divide-and-conquer, dynamic programming, linear programming, greedy algorithms, graph algorithms, NP-completeness.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
COMP 2402 and COMP 2804.&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Designing algorithms, their correctness and efficiency.  &lt;br /&gt;
* How to think about abstract computation - develop algorithmic intution - how to attack a problem algorithmically.&lt;br /&gt;
* Algorithmic techniques - learn key techniques (greed, divid-and-conquer, dynamic programming, LP, ..) -  which technique to use for a given problem.&lt;br /&gt;
* How to compare one algorithmic solution versus another for a problem&lt;br /&gt;
* How to express the algorithmic solution - pseodcode - steps - analyze - argue that it is correct -  essentially how will you explain your algorithmic solutions to others?&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
COMP 3804 offerings from Fall and Winter 2010-2011 by Anil and Michiel&lt;br /&gt;
* Introduction: Whats an Algorithm,  bib-O notation,  recurrence relation, masters theorem.&lt;br /&gt;
* Divide and Conquer:  Multiplying two n-bit integers, merge-sort, Matrix Multiplication ..&lt;br /&gt;
* Disjoint Sets Data Structure?&lt;br /&gt;
* Graphs: Representation, Traversals - DFS &amp;amp; BFS, Shortest Paths (including A* heuristic).&lt;br /&gt;
* Greedy Algorithms: Minimum SPanning Trees, Huffman Encodings, ...&lt;br /&gt;
* Dynamic Programming: Edit Distance, Longest Common Sequence, ...&lt;br /&gt;
* Linear Programming:  What it is, how to express seveal problems as LP problems (Flow, Shortest Paths, Matching), ideas of simplex algorithm (or the randomized algorithm). [This was never covered before]&lt;br /&gt;
* NP-Completeness: search problems, polynomial time reductions, ideas of Cooks Theorem.&lt;br /&gt;
* Whats Next: Brief idea on how to cope with NP-Complete problems - one lecture introduction to approximation algorithms, exhaustive search and search heuristics.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=8899</id>
		<title>CR: COMP 2804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=8899"/>
		<updated>2011-03-22T17:39:33Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Learning Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
COMP2804 Discrete Structures II&lt;br /&gt;
&lt;br /&gt;
Introduction to discrete mathematics and discrete structures. Topics include: counting, sequences and sums, discrete probability (including random variables, expectation, linearity of expectation, dependence, concentration results, distributions), recurrence relations. Material is illustrated through examples from computing.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* COMP 1805&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
To learn basic tools and techniques from combinatorics and probability theory&lt;br /&gt;
which are used in several areas in CS. To learn basic counting techniques, asymptotic analysis,&lt;br /&gt;
probability and statistics. Design and analysis of several simple randomized algorithms will be discussed&lt;br /&gt;
during the course. Statistical ...&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Counting: Permutations, Combinations, Binomial Coefficients, Pigeon-Hole Principle, Inclusion-Exclusion.&lt;br /&gt;
* Asymptotic Complexity: O, Theta.&lt;br /&gt;
* Probability: Random Variables, Expected Value, Indicator, Markov Inequality, Chernoof Bounds.&lt;br /&gt;
* Randomized Algorithms: Median, Quicksort, Binary Search Trees, Skip Lists, 2-dimensional Linear Programming.&lt;br /&gt;
* Statistics: Confidence tests and Intervals, Hypothesis Testing.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=8898</id>
		<title>CR: COMP 2804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=8898"/>
		<updated>2011-03-22T17:38:09Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Learning Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
COMP2804 Discrete Structures II&lt;br /&gt;
&lt;br /&gt;
Introduction to discrete mathematics and discrete structures. Topics include: counting, sequences and sums, discrete probability (including random variables, expectation, linearity of expectation, dependence, concentration results, distributions), recurrence relations. Material is illustrated through examples from computing.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* COMP 1805&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
To learn basic tools and techniques from combinatorics and probability theory&lt;br /&gt;
which are used in several areas in CS. To learn basic counting techniques, asymptotic analysis,&lt;br /&gt;
probability and statistics. Several simple randoimized algorithms (design and analysis) will be discussed&lt;br /&gt;
during the course.&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Counting: Permutations, Combinations, Binomial Coefficients, Pigeon-Hole Principle, Inclusion-Exclusion.&lt;br /&gt;
* Asymptotic Complexity: O, Theta.&lt;br /&gt;
* Probability: Random Variables, Expected Value, Indicator, Markov Inequality, Chernoof Bounds.&lt;br /&gt;
* Randomized Algorithms: Median, Quicksort, Binary Search Trees, Skip Lists, 2-dimensional Linear Programming.&lt;br /&gt;
* Statistics: Confidence tests and Intervals, Hypothesis Testing.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=8897</id>
		<title>CR: COMP 2804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=8897"/>
		<updated>2011-03-22T17:32:41Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Calendar Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
COMP2804 Discrete Structures II&lt;br /&gt;
&lt;br /&gt;
Introduction to discrete mathematics and discrete structures. Topics include: counting, sequences and sums, discrete probability (including random variables, expectation, linearity of expectation, dependence, concentration results, distributions), recurrence relations. Material is illustrated through examples from computing.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* COMP 1805&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Counting: Permutations, Combinations, Binomial Coefficients, Pigeon-Hole Principle, Inclusion-Exclusion.&lt;br /&gt;
* Asymptotic Complexity: O, Theta.&lt;br /&gt;
* Probability: Random Variables, Expected Value, Indicator, Markov Inequality, Chernoof Bounds.&lt;br /&gt;
* Randomized Algorithms: Median, Quicksort, Binary Search Trees, Skip Lists, 2-dimensional Linear Programming.&lt;br /&gt;
* Statistics: Confidence tests and Intervals, Hypothesis Testing.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8894</id>
		<title>CR: COMP 2402 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8894"/>
		<updated>2011-03-22T17:28:44Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Learning Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calender Description=&lt;br /&gt;
2402 Abstract Data Types and Algorithms&lt;br /&gt;
&lt;br /&gt;
Introduction to the design and implementation of abstract data types and to complexity analysis of data structures. Topics include: stacks, queues, lists, trees, sorting and searching.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*COMP 1805&lt;br /&gt;
*COMP 1406.&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
This is an introductory course on data structures, using Java as an implementation language. The main topics covered in this course will be&lt;br /&gt;
* The Java Collections Framework&lt;br /&gt;
* Complexity analysis - Big Oh notation.&lt;br /&gt;
* Basic data types: sets, lists, stacks, queues, deques&lt;br /&gt;
* Array-based implementations of basic data types&lt;br /&gt;
* Linked-list based implementations of basic data types&lt;br /&gt;
* Ordered sets - balanced binary search trees, skiplists&lt;br /&gt;
* Basic Lower Bounds: Searching and Sorting&lt;br /&gt;
* Dictionaries - hash tables&lt;br /&gt;
* Priority queues - heaps&lt;br /&gt;
&lt;br /&gt;
Along the way, the performance issues, both theoretical and practical will be discussed. After taking this course, students should have a good understanding of how to implement a variety of data structures, and be in a position to choose the right data type and implementation for problems they encounter.&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Java: The Java Collections Framework: Interfaces and Implementations&lt;br /&gt;
* Arrays: ArrayLists, ArrayStacks, ArrayQueues, ArrayDeques, DualArrayDeques, RootishArrayStacks&lt;br /&gt;
* Linked lists&lt;br /&gt;
* Hash tables &lt;br /&gt;
* Skip lists &lt;br /&gt;
* Complexity Analysis: Big O, Theta&lt;br /&gt;
* Binary search trees: Red-Black Trees &lt;br /&gt;
* Treaps and Scapegoat Trees&lt;br /&gt;
* Heaps, Randomized meldable heaps &lt;br /&gt;
* Mergesort and sorting lower bounds &lt;br /&gt;
* Applications: Plane sweep, Convex Hull, ...&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8893</id>
		<title>CR: COMP 2402 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8893"/>
		<updated>2011-03-22T17:27:18Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Calender Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calender Description=&lt;br /&gt;
2402 Abstract Data Types and Algorithms&lt;br /&gt;
&lt;br /&gt;
Introduction to the design and implementation of abstract data types and to complexity analysis of data structures. Topics include: stacks, queues, lists, trees, sorting and searching.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*COMP 1805&lt;br /&gt;
*COMP 1406.&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
This is an introductory course on data structures, using Java as an implementation language. The main topics covered in this course will be&lt;br /&gt;
* The Java Collections Framework&lt;br /&gt;
* Complexity analysis - Big Oh notation.&lt;br /&gt;
* Basic data types: sets, lists, stacks, queues, deques&lt;br /&gt;
* Array-based implementations of basic data types&lt;br /&gt;
* Linked-list based implementations of basic data types&lt;br /&gt;
* Ordered sets - balanced binary search trees, skiplists&lt;br /&gt;
* Basic Lower Bounds: Searching and Sorting&lt;br /&gt;
* Dictionaries - hash tables&lt;br /&gt;
* Priority queues - heaps&lt;br /&gt;
&lt;br /&gt;
Along the way, we will consider performance issues, both theoretical and practical. After taking this course, students should have a good understanding of how to implement a variety of data structures, and be in a position to choose the right data type and implementation for problems they encounter.&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Java: The Java Collections Framework: Interfaces and Implementations&lt;br /&gt;
* Arrays: ArrayLists, ArrayStacks, ArrayQueues, ArrayDeques, DualArrayDeques, RootishArrayStacks&lt;br /&gt;
* Linked lists&lt;br /&gt;
* Hash tables &lt;br /&gt;
* Skip lists &lt;br /&gt;
* Complexity Analysis: Big O, Theta&lt;br /&gt;
* Binary search trees: Red-Black Trees &lt;br /&gt;
* Treaps and Scapegoat Trees&lt;br /&gt;
* Heaps, Randomized meldable heaps &lt;br /&gt;
* Mergesort and sorting lower bounds &lt;br /&gt;
* Applications: Plane sweep, Convex Hull, ...&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8892</id>
		<title>CR: COMP 2402 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8892"/>
		<updated>2011-03-22T17:27:02Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Assumed Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calender Description=&lt;br /&gt;
2402 Abstract Data Types and Algorithms&lt;br /&gt;
&lt;br /&gt;
Introduction to the design and implementation of abstract data types and to complexity analysis of data structures. Topics include: stacks, queues, lists, trees, sorting and searching.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*COMP 1805&lt;br /&gt;
*COMP 1406.&lt;br /&gt;
&lt;br /&gt;
=Calender Description=&lt;br /&gt;
2402 Abstract Data Types and Algorithms&lt;br /&gt;
&lt;br /&gt;
Introduction to the design and implementation of abstract data types and to complexity analysis of data structures. Topics include: stacks, queues, lists, trees, sorting and searching. &lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
This is an introductory course on data structures, using Java as an implementation language. The main topics covered in this course will be&lt;br /&gt;
* The Java Collections Framework&lt;br /&gt;
* Complexity analysis - Big Oh notation.&lt;br /&gt;
* Basic data types: sets, lists, stacks, queues, deques&lt;br /&gt;
* Array-based implementations of basic data types&lt;br /&gt;
* Linked-list based implementations of basic data types&lt;br /&gt;
* Ordered sets - balanced binary search trees, skiplists&lt;br /&gt;
* Basic Lower Bounds: Searching and Sorting&lt;br /&gt;
* Dictionaries - hash tables&lt;br /&gt;
* Priority queues - heaps&lt;br /&gt;
&lt;br /&gt;
Along the way, we will consider performance issues, both theoretical and practical. After taking this course, students should have a good understanding of how to implement a variety of data structures, and be in a position to choose the right data type and implementation for problems they encounter.&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Java: The Java Collections Framework: Interfaces and Implementations&lt;br /&gt;
* Arrays: ArrayLists, ArrayStacks, ArrayQueues, ArrayDeques, DualArrayDeques, RootishArrayStacks&lt;br /&gt;
* Linked lists&lt;br /&gt;
* Hash tables &lt;br /&gt;
* Skip lists &lt;br /&gt;
* Complexity Analysis: Big O, Theta&lt;br /&gt;
* Binary search trees: Red-Black Trees &lt;br /&gt;
* Treaps and Scapegoat Trees&lt;br /&gt;
* Heaps, Randomized meldable heaps &lt;br /&gt;
* Mergesort and sorting lower bounds &lt;br /&gt;
* Applications: Plane sweep, Convex Hull, ...&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8891</id>
		<title>CR: COMP 2402 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8891"/>
		<updated>2011-03-22T17:26:32Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Calendar Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calender Description=&lt;br /&gt;
2402 Abstract Data Types and Algorithms&lt;br /&gt;
&lt;br /&gt;
Introduction to the design and implementation of abstract data types and to complexity analysis of data structures. Topics include: stacks, queues, lists, trees, sorting and searching.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*COMP 1805&lt;br /&gt;
*COMP 1405 &lt;br /&gt;
*COMP 1406.&lt;br /&gt;
&lt;br /&gt;
=Calender Description=&lt;br /&gt;
2402 Abstract Data Types and Algorithms&lt;br /&gt;
&lt;br /&gt;
Introduction to the design and implementation of abstract data types and to complexity analysis of data structures. Topics include: stacks, queues, lists, trees, sorting and searching. &lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
This is an introductory course on data structures, using Java as an implementation language. The main topics covered in this course will be&lt;br /&gt;
* The Java Collections Framework&lt;br /&gt;
* Complexity analysis - Big Oh notation.&lt;br /&gt;
* Basic data types: sets, lists, stacks, queues, deques&lt;br /&gt;
* Array-based implementations of basic data types&lt;br /&gt;
* Linked-list based implementations of basic data types&lt;br /&gt;
* Ordered sets - balanced binary search trees, skiplists&lt;br /&gt;
* Basic Lower Bounds: Searching and Sorting&lt;br /&gt;
* Dictionaries - hash tables&lt;br /&gt;
* Priority queues - heaps&lt;br /&gt;
&lt;br /&gt;
Along the way, we will consider performance issues, both theoretical and practical. After taking this course, students should have a good understanding of how to implement a variety of data structures, and be in a position to choose the right data type and implementation for problems they encounter.&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Java: The Java Collections Framework: Interfaces and Implementations&lt;br /&gt;
* Arrays: ArrayLists, ArrayStacks, ArrayQueues, ArrayDeques, DualArrayDeques, RootishArrayStacks&lt;br /&gt;
* Linked lists&lt;br /&gt;
* Hash tables &lt;br /&gt;
* Skip lists &lt;br /&gt;
* Complexity Analysis: Big O, Theta&lt;br /&gt;
* Binary search trees: Red-Black Trees &lt;br /&gt;
* Treaps and Scapegoat Trees&lt;br /&gt;
* Heaps, Randomized meldable heaps &lt;br /&gt;
* Mergesort and sorting lower bounds &lt;br /&gt;
* Applications: Plane sweep, Convex Hull, ...&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8890</id>
		<title>CR: COMP 2402 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8890"/>
		<updated>2011-03-22T17:26:22Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Prerequisite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
=Calender Description=&lt;br /&gt;
2402 Abstract Data Types and Algorithms&lt;br /&gt;
&lt;br /&gt;
Introduction to the design and implementation of abstract data types and to complexity analysis of data structures. Topics include: stacks, queues, lists, trees, sorting and searching.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*COMP 1805&lt;br /&gt;
*COMP 1405 &lt;br /&gt;
*COMP 1406.&lt;br /&gt;
&lt;br /&gt;
=Calender Description=&lt;br /&gt;
2402 Abstract Data Types and Algorithms&lt;br /&gt;
&lt;br /&gt;
Introduction to the design and implementation of abstract data types and to complexity analysis of data structures. Topics include: stacks, queues, lists, trees, sorting and searching. &lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
This is an introductory course on data structures, using Java as an implementation language. The main topics covered in this course will be&lt;br /&gt;
* The Java Collections Framework&lt;br /&gt;
* Complexity analysis - Big Oh notation.&lt;br /&gt;
* Basic data types: sets, lists, stacks, queues, deques&lt;br /&gt;
* Array-based implementations of basic data types&lt;br /&gt;
* Linked-list based implementations of basic data types&lt;br /&gt;
* Ordered sets - balanced binary search trees, skiplists&lt;br /&gt;
* Basic Lower Bounds: Searching and Sorting&lt;br /&gt;
* Dictionaries - hash tables&lt;br /&gt;
* Priority queues - heaps&lt;br /&gt;
&lt;br /&gt;
Along the way, we will consider performance issues, both theoretical and practical. After taking this course, students should have a good understanding of how to implement a variety of data structures, and be in a position to choose the right data type and implementation for problems they encounter.&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Java: The Java Collections Framework: Interfaces and Implementations&lt;br /&gt;
* Arrays: ArrayLists, ArrayStacks, ArrayQueues, ArrayDeques, DualArrayDeques, RootishArrayStacks&lt;br /&gt;
* Linked lists&lt;br /&gt;
* Hash tables &lt;br /&gt;
* Skip lists &lt;br /&gt;
* Complexity Analysis: Big O, Theta&lt;br /&gt;
* Binary search trees: Red-Black Trees &lt;br /&gt;
* Treaps and Scapegoat Trees&lt;br /&gt;
* Heaps, Randomized meldable heaps &lt;br /&gt;
* Mergesort and sorting lower bounds &lt;br /&gt;
* Applications: Plane sweep, Convex Hull, ...&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8889</id>
		<title>CR: COMP 2402 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8889"/>
		<updated>2011-03-22T17:26:11Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Calendar Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
=Calender Description=&lt;br /&gt;
2402 Abstract Data Types and Algorithms&lt;br /&gt;
&lt;br /&gt;
Introduction to the design and implementation of abstract data types and to complexity analysis of data structures. Topics include: stacks, queues, lists, trees, sorting and searching.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*COMP 1805&lt;br /&gt;
*COMP 1405 &lt;br /&gt;
*COMP 1406.&lt;br /&gt;
&lt;br /&gt;
=Calender Description=&lt;br /&gt;
2402 Abstract Data Types and Algorithms&lt;br /&gt;
&lt;br /&gt;
Introduction to the design and implementation of abstract data types and to complexity analysis of data structures. Topics include: stacks, queues, lists, trees, sorting and searching. &lt;br /&gt;
&lt;br /&gt;
=Prerequisite=&lt;br /&gt;
COMP 1805 and COMP 1406&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
This is an introductory course on data structures, using Java as an implementation language. The main topics covered in this course will be&lt;br /&gt;
* The Java Collections Framework&lt;br /&gt;
* Complexity analysis - Big Oh notation.&lt;br /&gt;
* Basic data types: sets, lists, stacks, queues, deques&lt;br /&gt;
* Array-based implementations of basic data types&lt;br /&gt;
* Linked-list based implementations of basic data types&lt;br /&gt;
* Ordered sets - balanced binary search trees, skiplists&lt;br /&gt;
* Basic Lower Bounds: Searching and Sorting&lt;br /&gt;
* Dictionaries - hash tables&lt;br /&gt;
* Priority queues - heaps&lt;br /&gt;
&lt;br /&gt;
Along the way, we will consider performance issues, both theoretical and practical. After taking this course, students should have a good understanding of how to implement a variety of data structures, and be in a position to choose the right data type and implementation for problems they encounter.&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Java: The Java Collections Framework: Interfaces and Implementations&lt;br /&gt;
* Arrays: ArrayLists, ArrayStacks, ArrayQueues, ArrayDeques, DualArrayDeques, RootishArrayStacks&lt;br /&gt;
* Linked lists&lt;br /&gt;
* Hash tables &lt;br /&gt;
* Skip lists &lt;br /&gt;
* Complexity Analysis: Big O, Theta&lt;br /&gt;
* Binary search trees: Red-Black Trees &lt;br /&gt;
* Treaps and Scapegoat Trees&lt;br /&gt;
* Heaps, Randomized meldable heaps &lt;br /&gt;
* Mergesort and sorting lower bounds &lt;br /&gt;
* Applications: Plane sweep, Convex Hull, ...&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8888</id>
		<title>CR: COMP 2402 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8888"/>
		<updated>2011-03-22T17:25:35Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Learning Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*COMP 1805&lt;br /&gt;
*COMP 1405 &lt;br /&gt;
*COMP 1406.&lt;br /&gt;
&lt;br /&gt;
=Calender Description=&lt;br /&gt;
2402 Abstract Data Types and Algorithms&lt;br /&gt;
&lt;br /&gt;
Introduction to the design and implementation of abstract data types and to complexity analysis of data structures. Topics include: stacks, queues, lists, trees, sorting and searching. &lt;br /&gt;
&lt;br /&gt;
=Prerequisite=&lt;br /&gt;
COMP 1805 and COMP 1406&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
This is an introductory course on data structures, using Java as an implementation language. The main topics covered in this course will be&lt;br /&gt;
* The Java Collections Framework&lt;br /&gt;
* Complexity analysis - Big Oh notation.&lt;br /&gt;
* Basic data types: sets, lists, stacks, queues, deques&lt;br /&gt;
* Array-based implementations of basic data types&lt;br /&gt;
* Linked-list based implementations of basic data types&lt;br /&gt;
* Ordered sets - balanced binary search trees, skiplists&lt;br /&gt;
* Basic Lower Bounds: Searching and Sorting&lt;br /&gt;
* Dictionaries - hash tables&lt;br /&gt;
* Priority queues - heaps&lt;br /&gt;
&lt;br /&gt;
Along the way, we will consider performance issues, both theoretical and practical. After taking this course, students should have a good understanding of how to implement a variety of data structures, and be in a position to choose the right data type and implementation for problems they encounter.&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Java: The Java Collections Framework: Interfaces and Implementations&lt;br /&gt;
* Arrays: ArrayLists, ArrayStacks, ArrayQueues, ArrayDeques, DualArrayDeques, RootishArrayStacks&lt;br /&gt;
* Linked lists&lt;br /&gt;
* Hash tables &lt;br /&gt;
* Skip lists &lt;br /&gt;
* Complexity Analysis: Big O, Theta&lt;br /&gt;
* Binary search trees: Red-Black Trees &lt;br /&gt;
* Treaps and Scapegoat Trees&lt;br /&gt;
* Heaps, Randomized meldable heaps &lt;br /&gt;
* Mergesort and sorting lower bounds &lt;br /&gt;
* Applications: Plane sweep, Convex Hull, ...&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_1805_Learning_Objectives&amp;diff=8887</id>
		<title>CR: COMP 1805 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_1805_Learning_Objectives&amp;diff=8887"/>
		<updated>2011-03-22T17:21:48Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Calendar Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Introduction to discrete mathematics and discrete structures. Topics include: propositional logic, predicate calculus, set theory, complexity of algorithms, mathematical reasoning and proof techniques, recurrences, induction, finite automata and graph theory. Material is illustrated through examples from computing.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
I am assuming that the students will do this course in 2nd term of their first year.&lt;br /&gt;
Requirements include:&lt;br /&gt;
*At least one course in Grade 12 Mathematics  (with U TAG)&lt;br /&gt;
*Completed MATH 1007 (Elementary Calculus) with a grade of ...&lt;br /&gt;
*Either completed or concurrently registered in MATH 1104 (Linear Algebra)&lt;br /&gt;
&lt;br /&gt;
Should have reasonable idea of&lt;br /&gt;
*1. Given a solution for a Grade 12 Math problem, should be able to verify it with minimal help.&lt;br /&gt;
*2. Should have Mathematical sophistication, for example should be able to solve/show that &lt;br /&gt;
** Sum of two odd numbers is even&lt;br /&gt;
** Not all real numbers are rationals&lt;br /&gt;
** The number of prime numbers is infinite&lt;br /&gt;
** The number of possible subsets of set of size n is 2^n&lt;br /&gt;
** Should know the meaning and significance of basic functions: log x, e^x, x^2, x, x^3&lt;br /&gt;
** Should know what is a function, what are properties of function.&lt;br /&gt;
** Given a system three linear equations, in three variables, should know how to solve it.&lt;br /&gt;
** Should know how to solve a quadratic equation&lt;br /&gt;
** Should know how to compute a formula for the sum of first n natural numbers.&lt;br /&gt;
....&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Mathematical Reasoning: Should be able to read, comprehend and construct mathematical arguments. Should develop sufficient background in mathematical logic, and should be able to apply to construct proofs. Learn some of the standard proof techniques (contradiction, induction, ..).&lt;br /&gt;
* Number Representation: Learn Bits, Bytes, Binary Representation, Floating-point representation ?, what is a 64-bit machine? &lt;br /&gt;
* Discrete Structures: Ability to work with discrete structures - abstract mathematical structures which are used to represent discrete objects and the relationships between objects. Examples of these structures include sets, strings, graphs, trees, finite-state machines.&lt;br /&gt;
* Algorithmic Thinking: Solving problems by a step-by-step process (algorithm), described in a pseudo-code. Students will get some idea on how to specify the algorithm, how to argue about its correctness, and how to argue about the computational resources (time and space) being used. (Simple algorithms like, Euclid GCD, Binary search, Merge-Sort, breadth-first search, MST,  etc. may be discussed.)&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
This list is  with respect to ROSEN&#039;s Discrete Math 6th edition and very closely follows the UBC Discrete Math Course.&lt;br /&gt;
Main omissions with current 1805 are - Big-O notation, Countability, and Relations.   Big-O will be covered in COMP 2402/COMP 2804. &lt;br /&gt;
&lt;br /&gt;
*Propositional Logic [1.1+11.3]: Introduce proposition, truth table, Logical operations (AND, NOT, OR, XOR..), Logical/Combinatorial Gates - simple circuits - how to design an half - full adder - how to design an adder for x+y, where x and y are 3 bits long [Introduce binary representation; complexity of a circuit = # of basic circuit components (wires+gates)] &lt;br /&gt;
&lt;br /&gt;
*Logical Equivalences [1.1+1.2]: if-then-else, implication, tautology, contradiction, de Morgan&#039;s Law. Learn how to simplify, manipulate, and understand complex logical statements.&lt;br /&gt;
&lt;br /&gt;
*Number Representation [3.6 + ?]: Representation of integers, hexadecimal expansion, base conversion, operation on binary numbers - addition, 2&#039;s complement, whats a 64-bit machine - what are limitations of this representation. Floating-point representation ?&lt;br /&gt;
&lt;br /&gt;
* Predicates and Quantifiers [1.3+1.4]: whats a predicate? universal quantifiers, existential quantifier, negation of quantified statements, why are they important in CS (e.g Logic Programming), nested quantifiers and their ordering.  &lt;br /&gt;
 &lt;br /&gt;
*Rules of Inference [1.5]: What is a valid argument in propositional logic, basic rules of inference (if-then-else), using rules to build arguments, resolution, quantification.&lt;br /&gt;
&lt;br /&gt;
*Proof Techniques [1.6, 1.7, 3.4]: different methods, strategies. Check whether a propositional logic proof is valid or not, whether it is proving the statement. Practice on simple exercises - how to build a counterexample, how to prove a given statement - what techniques to use.&lt;br /&gt;
&lt;br /&gt;
* Sets [2.1]: Very basics of sets - definition, membership, basic operations on sets.&lt;br /&gt;
&lt;br /&gt;
* Introduction to Finite State Machines and Graphs [Parts of 12.2+12.3, Relevant Parts of Chapter 9]: Whats a DFA, how to trace the operation of a DFA, concept of acceptance/rejection of a string, concept of a language, how to design a DFA accepting s simple language. Language is a set of strings.  Also show that DFA is a graph - a directed graph - and discuss some properties of undirected and directed graphs - paths and connectivity.  &lt;br /&gt;
&lt;br /&gt;
* Induction and Recursion [Chapter 4]. Establish properties of self-referential structures using inductive proofs. What are steps involved in proof by induction - show right and wrong proofs - standard pitfalls - describe simple recursive algorithms (e.g. n!, linear search, binary search, merge sort, tree traversals,  and discuss how to show that they are correct using Induction and how to argue about computational resources being used).&lt;br /&gt;
&lt;br /&gt;
* Sets [and Functions] [2.1, 2.2[, 2.3]]: Power Set, Cartesian Products, Set Operations and de Morgans Laws. [May or may not review Functions : definition, 1-1 and onto, inverse (its expected that they will learn in depth about functions in Calculus and Linear Algebra courses).] &lt;br /&gt;
&lt;br /&gt;
* Advanced DFA/NFA [12.1,12.2,12.3]: NFA, Designing NFA, Equivalence of DFA and NFA, existence of languages not recognized by a DFA - regular  languages.  Idea is to show the capabilities and limitations of these simple computation model - and show how discrete math (proof by contradiction, sets, power set, pigeon hole principle) are used to establish non-trivial results.&lt;br /&gt;
&lt;br /&gt;
* More Graph Theory [Relevant Parts of Chapter 9] Stating some of the standard daily-life problems, in terms of Mathematical Abstraction as graphs, and showing some simple graph properties and algorithms which may address the problem. (e.g. MST, DFS, BFS).&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=8387</id>
		<title>CR: COMP 2804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=8387"/>
		<updated>2011-03-10T18:03:12Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* COMP 1805&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Counting: Permutations, Combinations, Binomial Coefficients, Pigeon-Hole Principle, Inclusion-Exclusion.&lt;br /&gt;
* Asymptotic Complexity: O, Theta.&lt;br /&gt;
* Probability: Random Variables, Expected Value, Indicator, Markov Inequality, Chernoof Bounds.&lt;br /&gt;
* Randomized Algorithms: Median, Quicksort, Binary Search Trees, Skip Lists, 2-dimensional Linear Programming.&lt;br /&gt;
* Statistics: Confidence tests and Intervals, Hypothesis Testing.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=8386</id>
		<title>CR: COMP 2804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=8386"/>
		<updated>2011-03-10T18:01:42Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Assumed Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* COMP 1805&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Counting: Permutations, Combinations, Binomial Coefficients, Pigeon-Hole Principle, Inclusion-Exclusion.&lt;br /&gt;
* Asymptotic Complexity: O, Theta.&lt;br /&gt;
* Probability: Random Variables, Expected Value, Indicator, Markov Inequality, Chernoof Bounds.&lt;br /&gt;
* Randomized Algorithms: Median, Quicsort, Binary Search Trees, Skip Lists.&lt;br /&gt;
* Statistics: ?&lt;br /&gt;
* Missing: Countability and Relations.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8383</id>
		<title>CR: COMP 2402 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8383"/>
		<updated>2011-03-10T17:59:37Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Assumed Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*COMP 1805&lt;br /&gt;
*COMP 1405 &lt;br /&gt;
*COMP 1406.&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
[Based on Pat Morin&#039;s offering of COMP 2402 in Fall 2010]&lt;br /&gt;
This is an introductory course on data structures, using Java as an implementation language. The main topics covered in this course will be&lt;br /&gt;
* The Java Collections Framework&lt;br /&gt;
* Complexity analysis - Big Oh notation.&lt;br /&gt;
* Basic data types: sets, lists, stacks, queues, deques&lt;br /&gt;
* Array-based implementations of basic data types&lt;br /&gt;
* Linked-list based implementations of basic data types&lt;br /&gt;
* Ordered sets - balanced binary search trees, skiplists&lt;br /&gt;
* Basic Lower Bounds: Searching and Sorting&lt;br /&gt;
* Dictionaries - hash tables&lt;br /&gt;
* Priority queues - heaps&lt;br /&gt;
&lt;br /&gt;
Along the way, we will consider performance issues, both theoretical and practical. After taking this course, students should have a good understanding of how to implement a variety of data structures, and be in a position to choose the right data type and implementation for problems they encounter.&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Java: The Java Collections Framework: Interfaces and Implementations&lt;br /&gt;
* Arrays: ArrayLists, ArrayStacks, ArrayQueues, ArrayDeques, DualArrayDeques, RootishArrayStacks&lt;br /&gt;
* Linked lists&lt;br /&gt;
* Hash tables &lt;br /&gt;
* Skip lists &lt;br /&gt;
* Complexity Analysis: Big O, Theta&lt;br /&gt;
* Binary search trees: Red-Black Trees &lt;br /&gt;
* Treaps and Scapegoat Trees&lt;br /&gt;
* Heaps, Randomized meldable heaps &lt;br /&gt;
* Mergesort and sorting lower bounds &lt;br /&gt;
* Applications: Plane sweep, Convex Hull, ...&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8382</id>
		<title>CR: COMP 2402 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2402_Learning_Objectives&amp;diff=8382"/>
		<updated>2011-03-10T17:59:13Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Assumed Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
COMP 1805&lt;br /&gt;
COMP 1405 &amp;amp; COMP 1406.&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
[Based on Pat Morin&#039;s offering of COMP 2402 in Fall 2010]&lt;br /&gt;
This is an introductory course on data structures, using Java as an implementation language. The main topics covered in this course will be&lt;br /&gt;
* The Java Collections Framework&lt;br /&gt;
* Complexity analysis - Big Oh notation.&lt;br /&gt;
* Basic data types: sets, lists, stacks, queues, deques&lt;br /&gt;
* Array-based implementations of basic data types&lt;br /&gt;
* Linked-list based implementations of basic data types&lt;br /&gt;
* Ordered sets - balanced binary search trees, skiplists&lt;br /&gt;
* Basic Lower Bounds: Searching and Sorting&lt;br /&gt;
* Dictionaries - hash tables&lt;br /&gt;
* Priority queues - heaps&lt;br /&gt;
&lt;br /&gt;
Along the way, we will consider performance issues, both theoretical and practical. After taking this course, students should have a good understanding of how to implement a variety of data structures, and be in a position to choose the right data type and implementation for problems they encounter.&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Java: The Java Collections Framework: Interfaces and Implementations&lt;br /&gt;
* Arrays: ArrayLists, ArrayStacks, ArrayQueues, ArrayDeques, DualArrayDeques, RootishArrayStacks&lt;br /&gt;
* Linked lists&lt;br /&gt;
* Hash tables &lt;br /&gt;
* Skip lists &lt;br /&gt;
* Complexity Analysis: Big O, Theta&lt;br /&gt;
* Binary search trees: Red-Black Trees &lt;br /&gt;
* Treaps and Scapegoat Trees&lt;br /&gt;
* Heaps, Randomized meldable heaps &lt;br /&gt;
* Mergesort and sorting lower bounds &lt;br /&gt;
* Applications: Plane sweep, Convex Hull, ...&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8381</id>
		<title>CR: COMP 3804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8381"/>
		<updated>2011-03-10T17:52:40Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
COMP 2402 and COMP 2804.&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Designing algorithms, their correctness and efficiency.  &lt;br /&gt;
* How to think about abstract computation - develop algorithmic intution - how to attack a problem algorithmically.&lt;br /&gt;
* Algorithmic techniques - learn key techniques (greed, divid-and-conquer, dynamic programming, LP, ..) -  which technique to use for a given problem.&lt;br /&gt;
* How to compare one algorithmic solution versus another for a problem&lt;br /&gt;
* How to express the algorithmic solution - pseodcode - steps - analyze - argue that it is correct -  essentially how will you explain your algorithmic solutions to others?&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
COMP 3804 offerings from Fall and Winter 2010-2011 by Anil and Michiel&lt;br /&gt;
* Introduction: Whats an Algorithm,  bib-O notation,  recurrence relation, masters theorem.&lt;br /&gt;
* Divide and Conquer:  Multiplying two n-bit integers, merge-sort, Matrix Multiplication ..&lt;br /&gt;
* Disjoint Sets Data Structure?&lt;br /&gt;
* Graphs: Representation, Traversals - DFS &amp;amp; BFS, Shortest Paths (including A* heuristic).&lt;br /&gt;
* Greedy Algorithms: Minimum SPanning Trees, Huffman Encodings, ...&lt;br /&gt;
* Dynamic Programming: Edit Distance, Longest Common Sequence, ...&lt;br /&gt;
* Linear Programming:  What it is, how to express seveal problems as LP problems (Flow, Shortest Paths, Matching), ideas of simplex algorithm (or the randomized algorithm). [This was never covered before]&lt;br /&gt;
* NP-Completeness: search problems, polynomial time reductions, ideas of Cooks Theorem.&lt;br /&gt;
* Whats Next: Brief idea on how to cope with NP-Complete problems - one lecture introduction to approximation algorithms, exhaustive search and search heuristics.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8371</id>
		<title>CR: COMP 3804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8371"/>
		<updated>2011-03-10T16:42:42Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
COMP 2402 and COMP 2804.&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Designing algorithms, their correctness and efficiency.  &lt;br /&gt;
* How to think about abstract computation - develop algorithmic intution - how to attack a problem algorithmically.&lt;br /&gt;
* Algorithmic techniques - learn key techniques (greed, divid-and-conquer, dynamic programming, LP, ..) -  which technique to use for a given problem.&lt;br /&gt;
* How to compare one algorithmic solution versus another for a problem&lt;br /&gt;
* How to express the algorithmic solution - pseodcode - steps - analyze - argue that it is correct -  essentially how will you explain your algorithmic solutions to others?&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
COMP 3804 offerings from Fall and Winter 2010-2011 by Anil and Michiel&lt;br /&gt;
* Introduction: Whats an Algorithm, Simple Divide and Conquer Algorithms (e.g. Multiplying two n-bit integers), merge-sort, bib-O notation,  recurrence relation, masters theorem.&lt;br /&gt;
* Divide and Conquer: Some are already stated above, Median&lt;br /&gt;
* Disjoint Sets Data Structure&lt;br /&gt;
* Graph Algorithms: Representation, DFS, BFS, Shortest Paths (including A* heuristic).&lt;br /&gt;
* Greedy Algorithms: Minimum SPanning Trees, Huffman Encodings, ...&lt;br /&gt;
* Dynamic Programming: Edit Distance, Longest Common Sequence, ...&lt;br /&gt;
* Linear Programming:  What it is, how to express seveal problems as LP problems (Flow, Shortest Paths, Matching), ideas of simplex algorithm (or the randomized algorithm). [This was never covered before]&lt;br /&gt;
* NP-Completeness: search problems, polynomial time reductions, ideas of Cooks Theorem, and brief idea on how to cope with NP-Complete problems (1 lecture introduction to approximation algorithms, exhaustive search and search heuristics).&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=8370</id>
		<title>CR: COMP 2804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2804_Learning_Objectives&amp;diff=8370"/>
		<updated>2011-03-10T16:41:05Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
Learning objectives completed before this course.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
* Counting: Permutations, Combinations, Binomial Coefficients, Pigeon-Hole Principle, Inclusion-Exclusion.&lt;br /&gt;
* Asymptotic Complexity: O, Theta.&lt;br /&gt;
* Probability: Random Variables, Expected Value, Indicator, Markov Inequality, Chernoof Bounds.&lt;br /&gt;
* Randomized Algorithms: Median, Quicsort, Binary Search Trees, Skip Lists.&lt;br /&gt;
* Statistics: ?&lt;br /&gt;
* Missing: Countability and Relations.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8368</id>
		<title>CR: COMP 3804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8368"/>
		<updated>2011-03-10T16:20:38Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
COMP 2402 and COMP 2804.&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Designing algorithms, their correctness and efficiency.  &lt;br /&gt;
* How to think about abstract computation - develop algorithmic intution - how to attack a problem algorithmically.&lt;br /&gt;
* Algorithmic techniques - learn key techniques (greed, divid-and-conquer, dynamic programming, LP, ..) -  which technique to use for a given problem.&lt;br /&gt;
* How to compare one algorithmic solution versus another for a problem&lt;br /&gt;
* How to express the algorithmic solution - pseodcode - steps - analyze - argue that it is correct -  essentially how will you explain your algorithmic solutions to others?&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
COMP 3804 offerings from Fall and Winter 2010-2011 by Anil and Michiel&lt;br /&gt;
* Introduction: Whats an Algorithm, Simple Divide and Conquer Algorithms (e.g. Multiplying two n-bit integers), merge-sort, bib-O notation,  recurrence relation, masters theorem.&lt;br /&gt;
* Divide and Conquer: Some are already stated above, Median&lt;br /&gt;
* Graph Algorithms: Representation, DFS, BFS, Shortest Paths (including A* heuristic).&lt;br /&gt;
* Greedy Algorithms: Minimum SPanning Trees, Huffman Encodings, ...&lt;br /&gt;
* Dynamic Programming: Edit Distance, Longest Common Sequence, ...&lt;br /&gt;
* Linear Programming:  What it is, how to express seveal problems as LP problems (Flow, Shortest Paths, Matching), ideas of simplex algorithm (or the randomized algorithm). [This was never covered before]&lt;br /&gt;
* NP-Completeness: search problems, polynomial time reductions, ideas of Cooks Theorem, and brief idea on how to cope with NP-Complete problems (1 lecture introduction to approximation algorithms, exhaustive search and search heuristics).&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8367</id>
		<title>CR: COMP 3804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8367"/>
		<updated>2011-03-10T16:19:38Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
COMP 2402 and COMP 2804.&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Designing algorithms, their correctness and efficiency.  &lt;br /&gt;
* How to think about abstract computation - develop algorithmic intution - how to attack a problem algorithmically.&lt;br /&gt;
* Algorithmic techniques - learn key techniques (greed, divid-and-conquer, dynamic programming, LP, ..) -  which technique to use for a given problem.&lt;br /&gt;
* How to compare one algorithmic solution versus another for a problem&lt;br /&gt;
* How to express the algorithmic solution - pseodcode - steps - analyze - argue that it is correct -  essentially how will you explain your algorithmic solutions to others?&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
COMP 3804 offerings from Fall and Winter 2010-2011 by Anil and Michiel&lt;br /&gt;
* Introduction: Whats an Algorithm, Simple Divide and Conquer Algorithms (e.g. Multiplying two n-bit integers), merge-sort, bib-O notation,  recurrence relation, masters theorem.&lt;br /&gt;
* Divide and Conquer: Some are already stated above, Median&lt;br /&gt;
* Graph Algorithms: Representation, DFS, BFS, Shortest Paths (including A* heuristic).&lt;br /&gt;
* Greedy Algorithms: Minimum SPanning Trees, Huffman Encodings, ...&lt;br /&gt;
* Dynamic Programming: Edit Distance, Longest Common Sequence, ...&lt;br /&gt;
* Linear Programming:  What it is, how to express seveal problems as LP problems (Flow, Shortest Paths, Matching), ideas of simplex algorithm (or the randomized algorithm).&lt;br /&gt;
* NP-Completeness: search problems, polynomial time reductions, ideas of Cooks Theorem, and brief idea on how to cope with NP-Complete problems (1 lecture introduction to approximation algorithms, exhaustive search and search heuristics).&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8366</id>
		<title>CR: COMP 3804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8366"/>
		<updated>2011-03-10T16:15:55Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
COMP 2402 and COMP 2804.&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Designing algorithms, their correctness and efficiency.  &lt;br /&gt;
* How to think about abstract computation - develop algorithmic intution - how to attack a problem algorithmically.&lt;br /&gt;
* Algorithmic techniques - learn key techniques (greed, divid-and-conquer, dynamic programming, LP, ..) -  which technique to use for a given problem.&lt;br /&gt;
* How to compare one algorithmic solution versus another for a problem&lt;br /&gt;
* How to express the algorithmic solution - pseodcode - steps - analyze - argue that it is correct -  essentially how will you explain your algorithmic solutions to others?&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
COMP 3804 offerings from Fall and Winter 2010-2011 by Anil and Michiel&lt;br /&gt;
* Introduction: Whats an Algorithm, Simple Divide and Conquer Algorithms (e.g. Multiplying two n-bit integers), merge-sort, bib-O notation,  recurrence relation, masters theorem.&lt;br /&gt;
* Divide and Conquer: Some are already stated above, Median&lt;br /&gt;
* Graph Algorithms: Representation, DFS, BFS, Shortest Paths.&lt;br /&gt;
* Greedy Algorithms: Minimum SPanning Trees, Huffman Encodings, ...&lt;br /&gt;
* Dynamic Programming: Edit Distance, Longest Common Sequence, ...&lt;br /&gt;
* Linear Programming:  What it is, how to express seveal problems as LP problems (Flow, Shortest Paths, Matching), ideas of simplex algorithm (or the randomized algorithm).&lt;br /&gt;
* NP-Completeness: search problems, polynomial time reductions, ideas of Cooks Theorem, and brief idea on how to cope with NP-Complete problems.&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8365</id>
		<title>CR: COMP 3804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8365"/>
		<updated>2011-03-10T16:08:13Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
COMP 2402 and COMP 2804.&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Designing algorithms, their correctness and efficiency.  &lt;br /&gt;
* How to think about abstract computation - develop algorithmic intution - how to attack a problem algorithmically.&lt;br /&gt;
* Algorithmic techniques - learn key techniques (greed, divid-and-conquer, dynamic programming, LP, ..) -  which technique to use for a given problem.&lt;br /&gt;
* How to compare one algorithmic solution versus another for a problem&lt;br /&gt;
* How to express the algorithmic solution - pseodcode - steps - analyze - argue that it is correct -  essentially how will you explain your algorithmic solutions to others?&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
COMP 3804 offerings from Fall and Winter 2010-2011 by Anil and Michiel&lt;br /&gt;
* Introduction:&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8364</id>
		<title>CR: COMP 3804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8364"/>
		<updated>2011-03-10T16:06:34Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Learning Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
COMP 2402 and COMP 2804.&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Designing algorithms, their correctness and efficiency.  &lt;br /&gt;
* How to think about abstract computation - develop algorithmic intution - how to attack a problem algorithmically.&lt;br /&gt;
* Algorithmic techniques - learn key techniques (greed, divid-and-conquer, dynamic programming, LP, ..) -  which technique to use for a given problem.&lt;br /&gt;
* How to compare one algorithmic solution versus another for a problem&lt;br /&gt;
* How to express the algorithmic solution - pseodcode - steps - analyze - argue that it is correct -  essentially how will you explain your algorithmic solutions to others?&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
==Topic 1==&lt;br /&gt;
&lt;br /&gt;
Learning objectives for topic 1&lt;br /&gt;
&lt;br /&gt;
==Topic 2==&lt;br /&gt;
&lt;br /&gt;
Learning objectives for topic 2&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8363</id>
		<title>CR: COMP 3804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8363"/>
		<updated>2011-03-10T16:00:55Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Assumed Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
COMP 2402 and COMP 2804.&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Designing algorithms, their correctness and efficiency&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
==Topic 1==&lt;br /&gt;
&lt;br /&gt;
Learning objectives for topic 1&lt;br /&gt;
&lt;br /&gt;
==Topic 2==&lt;br /&gt;
&lt;br /&gt;
Learning objectives for topic 2&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8362</id>
		<title>CR: COMP 3804 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3804_Learning_Objectives&amp;diff=8362"/>
		<updated>2011-03-10T16:00:32Z</updated>

		<summary type="html">&lt;p&gt;Maheshwa: /* Learning Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
Learning objectives completed before this course.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
Objectives for the whole course&lt;br /&gt;
* Designing algorithms, their correctness and efficiency&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
==Topic 1==&lt;br /&gt;
&lt;br /&gt;
Learning objectives for topic 1&lt;br /&gt;
&lt;br /&gt;
==Topic 2==&lt;br /&gt;
&lt;br /&gt;
Learning objectives for topic 2&lt;/div&gt;</summary>
		<author><name>Maheshwa</name></author>
	</entry>
</feed>