<?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=Claurend</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=Claurend"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Claurend"/>
	<updated>2026-04-05T14:14:03Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18172</id>
		<title>CR: Curriculum Changes for 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18172"/>
		<updated>2013-11-11T18:12:14Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* 3004: Object-Oriented Software Engineering */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Proposed BCS Program Changes==&lt;br /&gt;
&lt;br /&gt;
===First year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Second year===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 2404 as Introduction to Software Engineering&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 2404 as a systems programming course using C++ and Windows&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; Group work, which is required for a true software engineering course, is a formidable challenge for second year students who have not yet developed the maturity and skills required to work as a team.  This experience is better delayed until COMP 3004 in third year. ** add something about the usefulness of systems programming in Windows **&lt;br /&gt;
&lt;br /&gt;
===Third year===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 3004 as a 0.5 credit course&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 3004 as a 1.0 credit course&lt;br /&gt;
**Decrease in elective credits by 0.5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; In order to include a project that fully conveys the learning objectives, the course requires double the workload of a regular 0.5 credit course.&lt;br /&gt;
&lt;br /&gt;
===Fourth year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Stream specific===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
==Proposed Course Changes==&lt;br /&gt;
&lt;br /&gt;
===2404: Systems Programming II ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===3004: Object-Oriented Software Engineering ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
**COMP 3004 [0.5 credit] Object-Oriented Software Engineering&lt;br /&gt;
**&#039;&#039;Description:&#039;&#039; Theory and development software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 3004 [1.0 credit] Object-Oriented Software Engineering&lt;br /&gt;
**&#039;&#039;Description:&#039;&#039; Theory and development software systems. Possible topics include: software development processes, requirement analysis, class and scenario modeling, state modeling, UML, design patterns, traceability, project management, configuration management, professional ethics, writing and presentation skills. Students are to complete a team project.&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18171</id>
		<title>CR: Curriculum Changes for 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18171"/>
		<updated>2013-11-11T17:50:28Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* 3004: Object-Oriented Software Engineering */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Proposed BCS Program Changes==&lt;br /&gt;
&lt;br /&gt;
===First year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Second year===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 2404 as Introduction to Software Engineering&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 2404 as a systems programming course using C++ and Windows&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; Group work, which is required for a true software engineering course, is a formidable challenge for second year students who have not yet developed the maturity and skills required to work as a team.  This experience is better delayed until COMP 3004 in third year. ** add something about the usefulness of systems programming in Windows **&lt;br /&gt;
&lt;br /&gt;
===Third year===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 3004 as a 0.5 credit course&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 3004 as a 1.0 credit course&lt;br /&gt;
**Decrease in elective credits by 0.5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; In order to include a project that fully conveys the learning objectives, the course requires double the workload of a regular 0.5 credit course.&lt;br /&gt;
&lt;br /&gt;
===Fourth year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Stream specific===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
==Proposed Course Changes==&lt;br /&gt;
&lt;br /&gt;
===2404: Systems Programming II ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===3004: Object-Oriented Software Engineering ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
**COMP 3004 [0.5 credit] Object-Oriented Software Engineering&lt;br /&gt;
**&#039;&#039;Description:&#039;&#039; Theory and development software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 3004 [1.0 credit] Object-Oriented Software Engineering&lt;br /&gt;
**&#039;&#039;Description:&#039;&#039; Theory and development software systems. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability, project management, professional ethics. Students are to complete a team project.&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18170</id>
		<title>CR: Curriculum Changes for 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18170"/>
		<updated>2013-11-11T17:47:38Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* 3004: Object-Oriented Software Engineering */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Proposed BCS Program Changes==&lt;br /&gt;
&lt;br /&gt;
===First year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Second year===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 2404 as Introduction to Software Engineering&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 2404 as a systems programming course using C++ and Windows&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; Group work, which is required for a true software engineering course, is a formidable challenge for second year students who have not yet developed the maturity and skills required to work as a team.  This experience is better delayed until COMP 3004 in third year. ** add something about the usefulness of systems programming in Windows **&lt;br /&gt;
&lt;br /&gt;
===Third year===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 3004 as a 0.5 credit course&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 3004 as a 1.0 credit course&lt;br /&gt;
**Decrease in elective credits by 0.5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; In order to include a project that fully conveys the learning objectives, the course requires double the workload of a regular 0.5 credit course.&lt;br /&gt;
&lt;br /&gt;
===Fourth year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Stream specific===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
==Proposed Course Changes==&lt;br /&gt;
&lt;br /&gt;
===2404: Systems Programming II ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===3004: Object-Oriented Software Engineering ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
**COMP 3004 [0.5 credit] Object-Oriented Software Engineering&lt;br /&gt;
**&#039;&#039;Description:&#039;&#039; Theory and development software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18169</id>
		<title>CR: Curriculum Changes for 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18169"/>
		<updated>2013-11-11T17:47:11Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* 3004: Object-oriented Software Engineering */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Proposed BCS Program Changes==&lt;br /&gt;
&lt;br /&gt;
===First year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Second year===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 2404 as Introduction to Software Engineering&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 2404 as a systems programming course using C++ and Windows&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; Group work, which is required for a true software engineering course, is a formidable challenge for second year students who have not yet developed the maturity and skills required to work as a team.  This experience is better delayed until COMP 3004 in third year. ** add something about the usefulness of systems programming in Windows **&lt;br /&gt;
&lt;br /&gt;
===Third year===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 3004 as a 0.5 credit course&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 3004 as a 1.0 credit course&lt;br /&gt;
**Decrease in elective credits by 0.5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; In order to include a project that fully conveys the learning objectives, the course requires double the workload of a regular 0.5 credit course.&lt;br /&gt;
&lt;br /&gt;
===Fourth year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Stream specific===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
==Proposed Course Changes==&lt;br /&gt;
&lt;br /&gt;
===2404: Systems Programming II ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===3004: Object-Oriented Software Engineering ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
**COMP 3004 [0.5 credit] Object-Oriented Software Engineering&lt;br /&gt;
**Theory and development software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18168</id>
		<title>CR: Curriculum Changes for 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18168"/>
		<updated>2013-11-11T17:41:20Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Proposed Course Changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Proposed BCS Program Changes==&lt;br /&gt;
&lt;br /&gt;
===First year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Second year===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 2404 as Introduction to Software Engineering&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 2404 as a systems programming course using C++ and Windows&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; Group work, which is required for a true software engineering course, is a formidable challenge for second year students who have not yet developed the maturity and skills required to work as a team.  This experience is better delayed until COMP 3004 in third year. ** add something about the usefulness of systems programming in Windows **&lt;br /&gt;
&lt;br /&gt;
===Third year===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 3004 as a 0.5 credit course&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 3004 as a 1.0 credit course&lt;br /&gt;
**Decrease in elective credits by 0.5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; In order to include a project that fully conveys the learning objectives, the course requires double the workload of a regular 0.5 credit course.&lt;br /&gt;
&lt;br /&gt;
===Fourth year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Stream specific===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
==Proposed Course Changes==&lt;br /&gt;
&lt;br /&gt;
===2404: Systems Programming II ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===3004: Object-oriented Software Engineering ===  &lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18167</id>
		<title>CR: Curriculum Changes for 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18167"/>
		<updated>2013-11-11T17:40:40Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Proposed Course Changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Proposed BCS Program Changes==&lt;br /&gt;
&lt;br /&gt;
===First year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Second year===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 2404 as Introduction to Software Engineering&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 2404 as a systems programming course using C++ and Windows&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; Group work, which is required for a true software engineering course, is a formidable challenge for second year students who have not yet developed the maturity and skills required to work as a team.  This experience is better delayed until COMP 3004 in third year. ** add something about the usefulness of systems programming in Windows **&lt;br /&gt;
&lt;br /&gt;
===Third year===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 3004 as a 0.5 credit course&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 3004 as a 1.0 credit course&lt;br /&gt;
**Decrease in elective credits by 0.5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; In order to include a project that fully conveys the learning objectives, the course requires double the workload of a regular 0.5 credit course.&lt;br /&gt;
&lt;br /&gt;
===Fourth year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Stream specific===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
==Proposed Course Changes==&lt;br /&gt;
&lt;br /&gt;
===2404: Introduction to Software Engineering ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===3XXX: Team Project ===  &lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18166</id>
		<title>CR: Curriculum Changes for 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18166"/>
		<updated>2013-11-11T17:40:29Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* 2401: Introduction to Systems Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Proposed BCS Program Changes==&lt;br /&gt;
&lt;br /&gt;
===First year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Second year===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 2404 as Introduction to Software Engineering&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 2404 as a systems programming course using C++ and Windows&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; Group work, which is required for a true software engineering course, is a formidable challenge for second year students who have not yet developed the maturity and skills required to work as a team.  This experience is better delayed until COMP 3004 in third year. ** add something about the usefulness of systems programming in Windows **&lt;br /&gt;
&lt;br /&gt;
===Third year===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 3004 as a 0.5 credit course&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 3004 as a 1.0 credit course&lt;br /&gt;
**Decrease in elective credits by 0.5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; In order to include a project that fully conveys the learning objectives, the course requires double the workload of a regular 0.5 credit course.&lt;br /&gt;
&lt;br /&gt;
===Fourth year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Stream specific===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
==Proposed Course Changes==&lt;br /&gt;
&lt;br /&gt;
===2401: Introduction to Systems Programming ===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===2404: Introduction to Software Engineering ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===3XXX: Team Project ===  &lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18165</id>
		<title>CR: Curriculum Changes for 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18165"/>
		<updated>2013-11-11T17:40:04Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Second year */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Proposed BCS Program Changes==&lt;br /&gt;
&lt;br /&gt;
===First year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Second year===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 2404 as Introduction to Software Engineering&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 2404 as a systems programming course using C++ and Windows&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; Group work, which is required for a true software engineering course, is a formidable challenge for second year students who have not yet developed the maturity and skills required to work as a team.  This experience is better delayed until COMP 3004 in third year. ** add something about the usefulness of systems programming in Windows **&lt;br /&gt;
&lt;br /&gt;
===Third year===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 3004 as a 0.5 credit course&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 3004 as a 1.0 credit course&lt;br /&gt;
**Decrease in elective credits by 0.5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; In order to include a project that fully conveys the learning objectives, the course requires double the workload of a regular 0.5 credit course.&lt;br /&gt;
&lt;br /&gt;
===Fourth year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Stream specific===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
==Proposed Course Changes==&lt;br /&gt;
&lt;br /&gt;
===2401: Introduction to Systems Programming ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===2404: Introduction to Software Engineering ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===3XXX: Team Project ===  &lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18164</id>
		<title>CR: Curriculum Changes for 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=18164"/>
		<updated>2013-11-11T17:36:15Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Third year */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Proposed BCS Program Changes==&lt;br /&gt;
&lt;br /&gt;
===First year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Second year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Third year===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &lt;br /&gt;
**COMP 3004 as a 0.5 credit course&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
**COMP 3004 as a 1.0 credit course&lt;br /&gt;
**Decrease in elective credits by 0.5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; In order to include a project that fully conveys the learning objectives, the course requires double the workload of a regular 0.5 credit course.&lt;br /&gt;
&lt;br /&gt;
===Fourth year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Stream specific===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
==Proposed Course Changes==&lt;br /&gt;
&lt;br /&gt;
===2401: Introduction to Systems Programming ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===2404: Introduction to Software Engineering ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===3XXX: Team Project ===  &lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=17907</id>
		<title>CR: Curriculum Changes for 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=17907"/>
		<updated>2013-08-29T13:57:24Z</updated>

		<summary type="html">&lt;p&gt;Claurend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Proposed BCS Program Changes==&lt;br /&gt;
&lt;br /&gt;
===First year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Second year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Third year===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &#039;&#039;&#039;Core Courses&#039;&#039;&#039;  &lt;br /&gt;
**COMP 3000  &lt;br /&gt;
**COMP 3004  &lt;br /&gt;
**COMP 3005  &lt;br /&gt;
**COMP 3007  &lt;br /&gt;
**Honours only: COMP 3804  &lt;br /&gt;
**Major only: 1.0 credits in COMP at the 3000-level or above  &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;New:&#039;&#039; &#039;&#039;&#039;Core Courses&#039;&#039;&#039; &lt;br /&gt;
**COMP 3XXX (project course)&lt;br /&gt;
**1.5 credits in COMP at the 3000-level or above&lt;br /&gt;
**Honours only: COMP 3804&lt;br /&gt;
**Major only: 1.0 credits in COMP at the 3000-level or above&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; Core material has been integrated into first and second year core courses.  Third year core is being reduced to allow for more course offerings and more flexibility.  The addition of a project course satisfies the need for teamwork experience. &lt;br /&gt;
&lt;br /&gt;
===Fourth year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Stream specific===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
==Proposed Course Changes==&lt;br /&gt;
&lt;br /&gt;
===2401: Introduction to Systems Programming ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===2404: Introduction to Software Engineering ===  &lt;br /&gt;
* &#039;&#039;Old:&#039;&#039;&lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===3XXX: Team Project ===  &lt;br /&gt;
* &#039;&#039;New:&#039;&#039;&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=17906</id>
		<title>CR: Curriculum Changes for 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=17906"/>
		<updated>2013-08-29T13:53:47Z</updated>

		<summary type="html">&lt;p&gt;Claurend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Christine add your stuff here please. :-)&lt;br /&gt;
&lt;br /&gt;
==Proposed BCS Program Changes==&lt;br /&gt;
&lt;br /&gt;
===First year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Second year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Third year===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &#039;&#039;&#039;Core Courses&#039;&#039;&#039;  &lt;br /&gt;
**COMP 3000  &lt;br /&gt;
**COMP 3004  &lt;br /&gt;
**COMP 3005  &lt;br /&gt;
**COMP 3007  &lt;br /&gt;
**Honours only: COMP 3804  &lt;br /&gt;
**Major only: 1.0 credits in COMP at the 3000-level or above  &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;New:&#039;&#039; &#039;&#039;&#039;Core Courses&#039;&#039;&#039; &lt;br /&gt;
**COMP 3XXX (project course)&lt;br /&gt;
**1.5 credits in COMP at the 3000-level or above&lt;br /&gt;
**Honours only: COMP 3804&lt;br /&gt;
**Major only: 1.0 credits in COMP at the 3000-level or above&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Rationale:&#039;&#039; Core material has been integrated into first and second year core courses.  Third year core is being reduced to allow for more course offerings and more flexibility.  The addition of a project course satisfies the need for teamwork experience. &lt;br /&gt;
&lt;br /&gt;
===Fourth year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Stream specific===  &lt;br /&gt;
No change&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=17905</id>
		<title>CR: Curriculum Changes for 2015/2016</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_Curriculum_Changes_for_2015/2016&amp;diff=17905"/>
		<updated>2013-08-29T13:51:38Z</updated>

		<summary type="html">&lt;p&gt;Claurend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Christine add your stuff here please. :-)&lt;br /&gt;
&lt;br /&gt;
==Proposed BCS Program Changes==&lt;br /&gt;
&lt;br /&gt;
===First year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Second year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Third year===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Old:&#039;&#039; &#039;&#039;&#039;Core Courses&#039;&#039;&#039;  &lt;br /&gt;
**COMP 3000  &lt;br /&gt;
**COMP 3004  &lt;br /&gt;
**COMP 3005  &lt;br /&gt;
**COMP 3007  &lt;br /&gt;
**Honours only: COMP 3804  &lt;br /&gt;
**Major only: 1.0 credits in COMP at the 3000-level or above  &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;New:&#039;&#039; &#039;&#039;&#039;Core Courses&#039;&#039;&#039; &lt;br /&gt;
**COMP 3XXX (project course)&lt;br /&gt;
**1.5 credits in COMP at the 3000-level or above&lt;br /&gt;
**Honours only: COMP 3804&lt;br /&gt;
**Major only: 1.0 credits in COMP at the 3000-level or above&lt;br /&gt;
&lt;br /&gt;
===Fourth year===  &lt;br /&gt;
No change&lt;br /&gt;
&lt;br /&gt;
===Stream specific===  &lt;br /&gt;
No change&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9588</id>
		<title>Curriculum Proposal to SCS Faculty May 2011</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9588"/>
		<updated>2011-05-03T19:03:03Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* COMP 2401: Introduction to Systems Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document contains proposed course changes for the 2012/2013 academic year.&lt;br /&gt;
&lt;br /&gt;
=Executive Summary=&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
=Courses to be Eliminated=&lt;br /&gt;
&lt;br /&gt;
* COMP 2003&lt;br /&gt;
** assembly language =&amp;gt; exposure through COMP 2401 and 2405&lt;br /&gt;
** digital logic =&amp;gt; COMP 1805&lt;br /&gt;
** number representation =&amp;gt; COMP 1805 and 2401&lt;br /&gt;
** processor architectures, interrupts, devices =&amp;gt; exposure in COMP 2401&lt;br /&gt;
** multicore =&amp;gt; cross-cutting concern&lt;br /&gt;
&lt;br /&gt;
=Courses to be Upgraded=&lt;br /&gt;
&lt;br /&gt;
We propose to keep the following courses, but not include them in the set of minimum required courses.  To facilitate this, we have moved selected topics to other required courses.  (Note that at this time we have not finished our design of third year or adjusted streams.)&lt;br /&gt;
&lt;br /&gt;
* COMP 2805&lt;br /&gt;
** finite automata =&amp;gt; COMP 1805&lt;br /&gt;
** rest of formal languages, computability, automata theory =&amp;gt; stays&lt;br /&gt;
* COMP 3000: operating systems&lt;br /&gt;
** programmer view of following =&amp;gt; COMP 2401&lt;br /&gt;
*** process management&lt;br /&gt;
*** memory management&lt;br /&gt;
*** process coordination and synchronization&lt;br /&gt;
*** inter-process communication&lt;br /&gt;
*** file systems&lt;br /&gt;
*** networking&lt;br /&gt;
** kernel view of above =&amp;gt; stays&lt;br /&gt;
** real-time clock management =&amp;gt; stays&lt;br /&gt;
** I/O device drivers =&amp;gt; stays&lt;br /&gt;
* COMP 3005&lt;br /&gt;
** SQL =&amp;gt; COMP 2405&lt;br /&gt;
** data models =&amp;gt; COMP 2405&lt;br /&gt;
** database design =&amp;gt; COMP 2405&lt;br /&gt;
** entity relationship modeling =&amp;gt; stays&lt;br /&gt;
** object-oriented database design, OQL =&amp;gt; stays&lt;br /&gt;
** the relational algebra =&amp;gt; stays&lt;br /&gt;
** normalization theory =&amp;gt; stays&lt;br /&gt;
** physical data organization =&amp;gt; stays&lt;br /&gt;
* COMP 3007&lt;br /&gt;
** functional languages, closures =&amp;gt; COMP 2405&lt;br /&gt;
** assignment-free programming =&amp;gt; COMP 2405&lt;br /&gt;
** recursive functions =&amp;gt; cross-cutting, esp. COMP 1406&lt;br /&gt;
** metacircular interpreter =&amp;gt; stays&lt;br /&gt;
** prolog, backtracking, cutting, negation =&amp;gt; stays&lt;br /&gt;
** semantics of functional programming =&amp;gt; stays&lt;br /&gt;
&lt;br /&gt;
=Theory=&lt;br /&gt;
&lt;br /&gt;
==COMP 1805: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 2804: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 3804: Course Title==&lt;br /&gt;
&lt;br /&gt;
=Software Engineering=&lt;br /&gt;
&lt;br /&gt;
== COMP 2404: Introduction to Software Engineering ==&lt;br /&gt;
&lt;br /&gt;
Introduction to object-oriented software development, with emphasis on design and implementation of medium-sized programs.  Topics include abstraction, modularity, encapsulation, reusability, and design patterns.&lt;br /&gt;
&lt;br /&gt;
==COMP 3004: Object-Oriented Software Engineering ==&lt;br /&gt;
&lt;br /&gt;
No changes.&lt;br /&gt;
&lt;br /&gt;
=Programming=&lt;br /&gt;
&lt;br /&gt;
* we already changed 1405 and 1406&lt;br /&gt;
* goal is to teach programming through teaching other topics that are central to modern CS: OS, databases, web&lt;br /&gt;
&lt;br /&gt;
==COMP 2401: Introduction to Systems Programming ==&lt;br /&gt;
&lt;br /&gt;
=== Old Course Description ===&lt;br /&gt;
Introduction to programming with procedures and primitive data types, designed for B.C.S. students. Topics include: arrays, strings, pointers, heap and stack memory allocation and deallocation, iterative and recursive linked list manipulations, system/library calls.&lt;br /&gt;
&lt;br /&gt;
Precludes additional credit for COMP 1002, COMP 1402, COMP 2001, SYSC 1102, and ECOR 1606.&lt;br /&gt;
&lt;br /&gt;
Prerequisite: COMP 1406. &lt;br /&gt;
&lt;br /&gt;
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics,and Honours Computer Statistics.&lt;br /&gt;
&lt;br /&gt;
Lectures three hours a week.&lt;br /&gt;
&lt;br /&gt;
=== New Course Description ===&lt;br /&gt;
Introduction to system-level programming with fundamental OS concepts, procedures, primitive data types and user-defined types, designed for B.C.S. students. Basic OS topics include programmer view of the following: process management, memory management, process coordination and synchronization, inter-process communication, file systems and networking. Other topics include: pointers, heap and stack memory allocation and deallocation, system and library calls.&lt;br /&gt;
&lt;br /&gt;
Precludes additional credit for COMP 1002, COMP 1402, COMP 2001, SYSC 1102, and ECOR 1606.&lt;br /&gt;
&lt;br /&gt;
Prerequisite: COMP 1406. &lt;br /&gt;
&lt;br /&gt;
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics,and Honours Computer Statistics.&lt;br /&gt;
&lt;br /&gt;
Lectures three hours a week, tutorials one hour a week.&lt;br /&gt;
&lt;br /&gt;
==COMP 2405: Internet Application Programming==&lt;br /&gt;
&lt;br /&gt;
===Old course description===&lt;br /&gt;
&lt;br /&gt;
Design and implementation of Internet application programs. Topics include: fundamentals of the Web, introduction to client/server architectures, Internet programming, Web browsers, hypertext links, network programming.&lt;br /&gt;
&lt;br /&gt;
Precludes additional credit for COMP 2005.&lt;br /&gt;
&lt;br /&gt;
Prerequisite: COMP 2401 and COMP 1406.&lt;br /&gt;
&lt;br /&gt;
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics.&lt;br /&gt;
&lt;br /&gt;
Lectures three hours a week.&lt;br /&gt;
&lt;br /&gt;
===New course description===&lt;br /&gt;
&lt;br /&gt;
An introduction to Internet application development that emphasizes the computer science fundamentals of the technologies underlying web applications.  Topics include: scripting and functional languages, language-based virtual machines,   database query languages, remote procedure calls over the Internet, and performance and security concerns in modern distributed applications.&lt;br /&gt;
&lt;br /&gt;
Precludes additional credit for COMP 2005.&lt;br /&gt;
&lt;br /&gt;
Prerequisite: COMP 2401.&lt;br /&gt;
&lt;br /&gt;
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics.&lt;br /&gt;
&lt;br /&gt;
Lectures three hours a week along with weekly one-hour tutorials.&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * learn basics of modern web applications?&lt;br /&gt;
    * basics of dynamic languages&lt;br /&gt;
          o first class functions&lt;br /&gt;
          o functional programming concepts (non-mutability) &lt;br /&gt;
    * basics of databases&lt;br /&gt;
          o data representation&lt;br /&gt;
          o query languages &lt;br /&gt;
    * basics of distributed applications&lt;br /&gt;
          o latency vs. bandwidth&lt;br /&gt;
          o reliability concerns&lt;br /&gt;
          o state vs. stateless&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9587</id>
		<title>Curriculum Proposal to SCS Faculty May 2011</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9587"/>
		<updated>2011-05-03T19:00:58Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* COMP 2401: Introduction to Systems Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document contains proposed course changes for the 2012/2013 academic year.&lt;br /&gt;
&lt;br /&gt;
=Executive Summary=&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
=Courses to be Eliminated=&lt;br /&gt;
&lt;br /&gt;
* COMP 2003&lt;br /&gt;
** assembly language =&amp;gt; exposure through COMP 2401 and 2405&lt;br /&gt;
** digital logic =&amp;gt; COMP 1805&lt;br /&gt;
** number representation =&amp;gt; COMP 1805 and 2401&lt;br /&gt;
** processor architectures, interrupts, devices =&amp;gt; exposure in COMP 2401&lt;br /&gt;
** multicore =&amp;gt; cross-cutting concern&lt;br /&gt;
&lt;br /&gt;
=Courses to be Upgraded=&lt;br /&gt;
&lt;br /&gt;
We propose to keep the following courses, but not include them in the set of minimum required courses.  To facilitate this, we have moved selected topics to other required courses.  (Note that at this time we have not finished our design of third year or adjusted streams.)&lt;br /&gt;
&lt;br /&gt;
* COMP 2805&lt;br /&gt;
** finite automata =&amp;gt; COMP 1805&lt;br /&gt;
** rest of formal languages, computability, automata theory =&amp;gt; stays&lt;br /&gt;
* COMP 3000: operating systems&lt;br /&gt;
** programmer view of following =&amp;gt; COMP 2401&lt;br /&gt;
*** process management&lt;br /&gt;
*** memory management&lt;br /&gt;
*** process coordination and synchronization&lt;br /&gt;
*** inter-process communication&lt;br /&gt;
*** file systems&lt;br /&gt;
*** networking&lt;br /&gt;
** kernel view of above =&amp;gt; stays&lt;br /&gt;
** real-time clock management =&amp;gt; stays&lt;br /&gt;
** I/O device drivers =&amp;gt; stays&lt;br /&gt;
* COMP 3005&lt;br /&gt;
** SQL =&amp;gt; COMP 2405&lt;br /&gt;
** data models =&amp;gt; COMP 2405&lt;br /&gt;
** database design =&amp;gt; COMP 2405&lt;br /&gt;
** entity relationship modeling =&amp;gt; stays&lt;br /&gt;
** object-oriented database design, OQL =&amp;gt; stays&lt;br /&gt;
** the relational algebra =&amp;gt; stays&lt;br /&gt;
** normalization theory =&amp;gt; stays&lt;br /&gt;
** physical data organization =&amp;gt; stays&lt;br /&gt;
* COMP 3007&lt;br /&gt;
** functional languages, closures =&amp;gt; COMP 2405&lt;br /&gt;
** assignment-free programming =&amp;gt; COMP 2405&lt;br /&gt;
** recursive functions =&amp;gt; cross-cutting, esp. COMP 1406&lt;br /&gt;
** metacircular interpreter =&amp;gt; stays&lt;br /&gt;
** prolog, backtracking, cutting, negation =&amp;gt; stays&lt;br /&gt;
** semantics of functional programming =&amp;gt; stays&lt;br /&gt;
&lt;br /&gt;
=Theory=&lt;br /&gt;
&lt;br /&gt;
==COMP 1805: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 2804: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 3804: Course Title==&lt;br /&gt;
&lt;br /&gt;
=Software Engineering=&lt;br /&gt;
&lt;br /&gt;
== COMP 2404: Introduction to Software Engineering ==&lt;br /&gt;
&lt;br /&gt;
Introduction to object-oriented software development, with emphasis on design and implementation of medium-sized programs.  Topics include abstraction, modularity, encapsulation, reusability, and design patterns.&lt;br /&gt;
&lt;br /&gt;
==COMP 3004: Object-Oriented Software Engineering ==&lt;br /&gt;
&lt;br /&gt;
No changes.&lt;br /&gt;
&lt;br /&gt;
=Programming=&lt;br /&gt;
&lt;br /&gt;
* we already changed 1405 and 1406&lt;br /&gt;
* goal is to teach programming through teaching other topics that are central to modern CS: OS, databases, web&lt;br /&gt;
&lt;br /&gt;
==COMP 2401: Introduction to Systems Programming ==&lt;br /&gt;
&lt;br /&gt;
=== Old Course Description ===&lt;br /&gt;
Introduction to programming with procedures and primitive data types, designed for B.C.S. students. Topics include: arrays, strings, pointers, heap and stack memory allocation and deallocation, iterative and recursive linked list manipulations, system/library calls.&lt;br /&gt;
&lt;br /&gt;
Precludes additional credit for COMP 1002, COMP 1402, COMP 2001, SYSC 1102, and ECOR 1606.&lt;br /&gt;
&lt;br /&gt;
Prerequisite: COMP 1406. &lt;br /&gt;
&lt;br /&gt;
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics,and Honours Computer Statistics.&lt;br /&gt;
&lt;br /&gt;
Lectures three hours a week.&lt;br /&gt;
&lt;br /&gt;
=== New Course Description ===&lt;br /&gt;
Introduction to system-level programming with fundamental OS concepts, procedures, primitive data types and user-defined types, designed for B.C.S. students. Basic OS topics include: programmer views of process management, memory management,... Other topics include: pointers, heap and stack memory allocation and deallocation, system/library calls.&lt;br /&gt;
&lt;br /&gt;
Precludes additional credit for COMP 1002, COMP 1402, COMP 2001, SYSC 1102, and ECOR 1606.&lt;br /&gt;
&lt;br /&gt;
Prerequisite: COMP 1406. &lt;br /&gt;
&lt;br /&gt;
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics,and Honours Computer Statistics.&lt;br /&gt;
&lt;br /&gt;
Lectures three hours a week, tutorials one hour a week.&lt;br /&gt;
&lt;br /&gt;
==COMP 2405: Internet Application Programming==&lt;br /&gt;
&lt;br /&gt;
===Old course description===&lt;br /&gt;
&lt;br /&gt;
Design and implementation of Internet application programs. Topics include: fundamentals of the Web, introduction to client/server architectures, Internet programming, Web browsers, hypertext links, network programming.&lt;br /&gt;
&lt;br /&gt;
Precludes additional credit for COMP 2005.&lt;br /&gt;
&lt;br /&gt;
Prerequisite: COMP 2401 and COMP 1406.&lt;br /&gt;
&lt;br /&gt;
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics.&lt;br /&gt;
&lt;br /&gt;
Lectures three hours a week.&lt;br /&gt;
&lt;br /&gt;
===New course description===&lt;br /&gt;
&lt;br /&gt;
An introduction to Internet application development that emphasizes the computer science fundamentals of the technologies underlying web applications.  Topics include: scripting and functional languages, language-based virtual machines,   database query languages, remote procedure calls over the Internet, and performance and security concerns in modern distributed applications.&lt;br /&gt;
&lt;br /&gt;
Precludes additional credit for COMP 2005.&lt;br /&gt;
&lt;br /&gt;
Prerequisite: COMP 2401.&lt;br /&gt;
&lt;br /&gt;
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics.&lt;br /&gt;
&lt;br /&gt;
Lectures three hours a week along with weekly one-hour tutorials.&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * learn basics of modern web applications?&lt;br /&gt;
    * basics of dynamic languages&lt;br /&gt;
          o first class functions&lt;br /&gt;
          o functional programming concepts (non-mutability) &lt;br /&gt;
    * basics of databases&lt;br /&gt;
          o data representation&lt;br /&gt;
          o query languages &lt;br /&gt;
    * basics of distributed applications&lt;br /&gt;
          o latency vs. bandwidth&lt;br /&gt;
          o reliability concerns&lt;br /&gt;
          o state vs. stateless&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9586</id>
		<title>Curriculum Proposal to SCS Faculty May 2011</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9586"/>
		<updated>2011-05-03T18:58:17Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* COMP 2401: Introduction to Systems Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document contains proposed course changes for the 2012/2013 academic year.&lt;br /&gt;
&lt;br /&gt;
=Executive Summary=&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
=Courses to be Eliminated=&lt;br /&gt;
&lt;br /&gt;
* COMP 2003&lt;br /&gt;
** assembly language =&amp;gt; exposure through COMP 2401 and 2405&lt;br /&gt;
** digital logic =&amp;gt; COMP 1805&lt;br /&gt;
** number representation =&amp;gt; COMP 1805 and 2401&lt;br /&gt;
** processor architectures, interrupts, devices =&amp;gt; exposure in COMP 2401&lt;br /&gt;
** multicore =&amp;gt; cross-cutting concern&lt;br /&gt;
&lt;br /&gt;
=Courses to be Upgraded=&lt;br /&gt;
&lt;br /&gt;
We propose to keep the following courses, but not include them in the set of minimum required courses.  To facilitate this, we have moved selected topics to other required courses.  (Note that at this time we have not finished our design of third year or adjusted streams.)&lt;br /&gt;
&lt;br /&gt;
* COMP 2805&lt;br /&gt;
** finite automata =&amp;gt; COMP 1805&lt;br /&gt;
** rest of formal languages, computability, automata theory =&amp;gt; stays&lt;br /&gt;
* COMP 3000: operating systems&lt;br /&gt;
** programmer view of following =&amp;gt; COMP 2401&lt;br /&gt;
*** process management&lt;br /&gt;
*** memory management&lt;br /&gt;
*** process coordination and synchronization&lt;br /&gt;
*** inter-process communication&lt;br /&gt;
*** file systems&lt;br /&gt;
*** networking&lt;br /&gt;
** kernel view of above =&amp;gt; stays&lt;br /&gt;
** real-time clock management =&amp;gt; stays&lt;br /&gt;
** I/O device drivers =&amp;gt; stays&lt;br /&gt;
* COMP 3005&lt;br /&gt;
** SQL =&amp;gt; COMP 2405&lt;br /&gt;
** data models =&amp;gt; COMP 2405&lt;br /&gt;
** database design =&amp;gt; COMP 2405&lt;br /&gt;
** entity relationship modeling =&amp;gt; stays&lt;br /&gt;
** object-oriented database design, OQL =&amp;gt; stays&lt;br /&gt;
** the relational algebra =&amp;gt; stays&lt;br /&gt;
** normalization theory =&amp;gt; stays&lt;br /&gt;
** physical data organization =&amp;gt; stays&lt;br /&gt;
* COMP 3007&lt;br /&gt;
** functional languages, closures =&amp;gt; COMP 2405&lt;br /&gt;
** assignment-free programming =&amp;gt; COMP 2405&lt;br /&gt;
** recursive functions =&amp;gt; cross-cutting, esp. COMP 1406&lt;br /&gt;
** metacircular interpreter =&amp;gt; stays&lt;br /&gt;
** prolog, backtracking, cutting, negation =&amp;gt; stays&lt;br /&gt;
** semantics of functional programming =&amp;gt; stays&lt;br /&gt;
&lt;br /&gt;
=Theory=&lt;br /&gt;
&lt;br /&gt;
==COMP 1805: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 2804: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 3804: Course Title==&lt;br /&gt;
&lt;br /&gt;
=Software Engineering=&lt;br /&gt;
&lt;br /&gt;
== COMP 2404: Introduction to Software Engineering ==&lt;br /&gt;
&lt;br /&gt;
Introduction to object-oriented software development, with emphasis on design and implementation of medium-sized programs.  Topics include abstraction, modularity, encapsulation, reusability, and design patterns.&lt;br /&gt;
&lt;br /&gt;
==COMP 3004: Object-Oriented Software Engineering ==&lt;br /&gt;
&lt;br /&gt;
No changes.&lt;br /&gt;
&lt;br /&gt;
=Programming=&lt;br /&gt;
&lt;br /&gt;
* we already changed 1405 and 1406&lt;br /&gt;
* goal is to teach programming through teaching other topics that are central to modern CS: OS, databases, web&lt;br /&gt;
&lt;br /&gt;
==COMP 2401: Introduction to Systems Programming ==&lt;br /&gt;
&lt;br /&gt;
=== Old Course Description ===&lt;br /&gt;
Introduction to programming with procedures and primitive data types, designed for B.C.S. students. Topics include: arrays, strings, pointers, heap and stack memory allocation and deallocation, iterative and recursive linked list manipulations, system/library calls.&lt;br /&gt;
&lt;br /&gt;
Precludes additional credit for COMP 1002, COMP 1402, COMP 2001, SYSC 1102, and ECOR 1606.&lt;br /&gt;
&lt;br /&gt;
Prerequisite: COMP 1406. &lt;br /&gt;
&lt;br /&gt;
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics,and Honours Computer Statistics.&lt;br /&gt;
&lt;br /&gt;
Lectures three hours a week.&lt;br /&gt;
&lt;br /&gt;
=== New Course Description ===&lt;br /&gt;
&lt;br /&gt;
==COMP 2405: Internet Application Programming==&lt;br /&gt;
&lt;br /&gt;
===Old course description===&lt;br /&gt;
&lt;br /&gt;
Design and implementation of Internet application programs. Topics include: fundamentals of the Web, introduction to client/server architectures, Internet programming, Web browsers, hypertext links, network programming.&lt;br /&gt;
&lt;br /&gt;
Precludes additional credit for COMP 2005.&lt;br /&gt;
&lt;br /&gt;
Prerequisite: COMP 2401 and COMP 1406.&lt;br /&gt;
&lt;br /&gt;
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics.&lt;br /&gt;
&lt;br /&gt;
Lectures three hours a week.&lt;br /&gt;
&lt;br /&gt;
===New course description===&lt;br /&gt;
&lt;br /&gt;
An introduction to Internet application development that emphasizes the computer science fundamentals of the technologies underlying web applications.  Topics include: scripting and functional languages, language-based virtual machines,   database query languages, remote procedure calls over the Internet, and performance and security concerns in modern distributed applications.&lt;br /&gt;
&lt;br /&gt;
Precludes additional credit for COMP 2005.&lt;br /&gt;
&lt;br /&gt;
Prerequisite: COMP 2401.&lt;br /&gt;
&lt;br /&gt;
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics.&lt;br /&gt;
&lt;br /&gt;
Lectures three hours a week along with weekly one-hour tutorials.&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * learn basics of modern web applications?&lt;br /&gt;
    * basics of dynamic languages&lt;br /&gt;
          o first class functions&lt;br /&gt;
          o functional programming concepts (non-mutability) &lt;br /&gt;
    * basics of databases&lt;br /&gt;
          o data representation&lt;br /&gt;
          o query languages &lt;br /&gt;
    * basics of distributed applications&lt;br /&gt;
          o latency vs. bandwidth&lt;br /&gt;
          o reliability concerns&lt;br /&gt;
          o state vs. stateless&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9585</id>
		<title>Curriculum Proposal to SCS Faculty May 2011</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9585"/>
		<updated>2011-05-03T18:57:01Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* COMP 2401: Introduction to Systems Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document contains proposed course changes for the 2012/2013 academic year.&lt;br /&gt;
&lt;br /&gt;
=Executive Summary=&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
=Courses to be Eliminated=&lt;br /&gt;
&lt;br /&gt;
* COMP 2003&lt;br /&gt;
** assembly language =&amp;gt; exposure through COMP 2401 and 2405&lt;br /&gt;
** digital logic =&amp;gt; COMP 1805&lt;br /&gt;
** number representation =&amp;gt; COMP 1805 and 2401&lt;br /&gt;
** processor architectures, interrupts, devices =&amp;gt; exposure in COMP 2401&lt;br /&gt;
** multicore =&amp;gt; cross-cutting concern&lt;br /&gt;
&lt;br /&gt;
=Courses to be Upgraded=&lt;br /&gt;
&lt;br /&gt;
We propose to keep the following courses, but not include them in the set of minimum required courses.  To facilitate this, we have moved selected topics to other required courses.  (Note that at this time we have not finished our design of third year or adjusted streams.)&lt;br /&gt;
&lt;br /&gt;
* COMP 2805&lt;br /&gt;
** finite automata =&amp;gt; COMP 1805&lt;br /&gt;
** rest of formal languages, computability, automata theory =&amp;gt; stays&lt;br /&gt;
* COMP 3000: operating systems&lt;br /&gt;
** programmer view of following =&amp;gt; COMP 2401&lt;br /&gt;
*** process management&lt;br /&gt;
*** memory management&lt;br /&gt;
*** process coordination and synchronization&lt;br /&gt;
*** inter-process communication&lt;br /&gt;
*** file systems&lt;br /&gt;
*** networking&lt;br /&gt;
** kernel view of above =&amp;gt; stays&lt;br /&gt;
** real-time clock management =&amp;gt; stays&lt;br /&gt;
** I/O device drivers =&amp;gt; stays&lt;br /&gt;
* COMP 3005&lt;br /&gt;
** SQL =&amp;gt; COMP 2405&lt;br /&gt;
** data models =&amp;gt; COMP 2405&lt;br /&gt;
** database design =&amp;gt; COMP 2405&lt;br /&gt;
** entity relationship modeling =&amp;gt; stays&lt;br /&gt;
** object-oriented database design, OQL =&amp;gt; stays&lt;br /&gt;
** the relational algebra =&amp;gt; stays&lt;br /&gt;
** normalization theory =&amp;gt; stays&lt;br /&gt;
** physical data organization =&amp;gt; stays&lt;br /&gt;
* COMP 3007&lt;br /&gt;
** functional languages, closures =&amp;gt; COMP 2405&lt;br /&gt;
** assignment-free programming =&amp;gt; COMP 2405&lt;br /&gt;
** recursive functions =&amp;gt; cross-cutting, esp. COMP 1406&lt;br /&gt;
** metacircular interpreter =&amp;gt; stays&lt;br /&gt;
** prolog, backtracking, cutting, negation =&amp;gt; stays&lt;br /&gt;
** semantics of functional programming =&amp;gt; stays&lt;br /&gt;
&lt;br /&gt;
=Theory=&lt;br /&gt;
&lt;br /&gt;
==COMP 1805: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 2804: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 3804: Course Title==&lt;br /&gt;
&lt;br /&gt;
=Software Engineering=&lt;br /&gt;
&lt;br /&gt;
== COMP 2404: Introduction to Software Engineering ==&lt;br /&gt;
&lt;br /&gt;
Introduction to object-oriented software development, with emphasis on design and implementation of medium-sized programs.  Topics include abstraction, modularity, encapsulation, reusability, and design patterns.&lt;br /&gt;
&lt;br /&gt;
==COMP 3004: Object-Oriented Software Engineering ==&lt;br /&gt;
&lt;br /&gt;
No changes.&lt;br /&gt;
&lt;br /&gt;
=Programming=&lt;br /&gt;
&lt;br /&gt;
* we already changed 1405 and 1406&lt;br /&gt;
* goal is to teach programming through teaching other topics that are central to modern CS: OS, databases, web&lt;br /&gt;
&lt;br /&gt;
==COMP 2401: Introduction to Systems Programming ==&lt;br /&gt;
&lt;br /&gt;
=== Old Course Description ===&lt;br /&gt;
Introduction to programming at the system level, with procedures, primitive data types, and user-defined data structures, designed for B.C.S. students. Topics include: basic OS concepts (including processes), pointers, heap and stack memory allocation and deallocation, system/library calls, signal handling and inter-process communication.&lt;br /&gt;
&lt;br /&gt;
==COMP 2405: Internet Application Programming==&lt;br /&gt;
&lt;br /&gt;
===Old course description===&lt;br /&gt;
&lt;br /&gt;
Design and implementation of Internet application programs. Topics include: fundamentals of the Web, introduction to client/server architectures, Internet programming, Web browsers, hypertext links, network programming.&lt;br /&gt;
&lt;br /&gt;
Precludes additional credit for COMP 2005.&lt;br /&gt;
&lt;br /&gt;
Prerequisite: COMP 2401 and COMP 1406.&lt;br /&gt;
&lt;br /&gt;
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics.&lt;br /&gt;
&lt;br /&gt;
Lectures three hours a week.&lt;br /&gt;
&lt;br /&gt;
===New course description===&lt;br /&gt;
&lt;br /&gt;
An introduction to Internet application development that emphasizes the computer science fundamentals of the technologies underlying web applications.  Topics include: scripting and functional languages, language-based virtual machines,   database query languages, remote procedure calls over the Internet, and performance and security concerns in modern distributed applications.&lt;br /&gt;
&lt;br /&gt;
Precludes additional credit for COMP 2005.&lt;br /&gt;
&lt;br /&gt;
Prerequisite: COMP 2401.&lt;br /&gt;
&lt;br /&gt;
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics.&lt;br /&gt;
&lt;br /&gt;
Lectures three hours a week along with weekly one-hour tutorials.&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * learn basics of modern web applications?&lt;br /&gt;
    * basics of dynamic languages&lt;br /&gt;
          o first class functions&lt;br /&gt;
          o functional programming concepts (non-mutability) &lt;br /&gt;
    * basics of databases&lt;br /&gt;
          o data representation&lt;br /&gt;
          o query languages &lt;br /&gt;
    * basics of distributed applications&lt;br /&gt;
          o latency vs. bandwidth&lt;br /&gt;
          o reliability concerns&lt;br /&gt;
          o state vs. stateless&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9568</id>
		<title>Curriculum Proposal to SCS Faculty May 2011</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9568"/>
		<updated>2011-05-02T15:42:02Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* COMP 2401: Introduction to Systems Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document contains proposed course changes for the 2012/2013 academic year.&lt;br /&gt;
&lt;br /&gt;
=Executive Summary=&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
=Theory=&lt;br /&gt;
&lt;br /&gt;
==COMP 1805: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 2804: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 3804: Course Title==&lt;br /&gt;
&lt;br /&gt;
=Software Engineering=&lt;br /&gt;
&lt;br /&gt;
== COMP 2404: Introduction to Software Engineering ==&lt;br /&gt;
&lt;br /&gt;
Introduction to object-oriented software development, with emphasis on design and implementation of medium-sized programs.  Topics include abstraction, modularity, encapsulation, reusability, and design patterns.&lt;br /&gt;
&lt;br /&gt;
==COMP 3004: Object-Oriented Software Engineering ==&lt;br /&gt;
&lt;br /&gt;
No changes.&lt;br /&gt;
&lt;br /&gt;
=Programming=&lt;br /&gt;
&lt;br /&gt;
* we already changed 1405 and 1406&lt;br /&gt;
* goal is to teach programming through teaching other topics that are central to modern CS: OS, databases, web&lt;br /&gt;
&lt;br /&gt;
==COMP 2401: Introduction to Systems Programming ==&lt;br /&gt;
&lt;br /&gt;
Introduction to programming at the system level, with procedures, primitive data types, and user-defined data structures, designed for B.C.S. students. Topics include: basic OS concepts (including processes), pointers, heap and stack memory allocation and deallocation, system/library calls, signal handling and inter-process communication.&lt;br /&gt;
&lt;br /&gt;
==COMP 2405: course title==&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9567</id>
		<title>Curriculum Proposal to SCS Faculty May 2011</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9567"/>
		<updated>2011-05-02T15:40:56Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* COMP 2401: course title */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document contains proposed course changes for the 2012/2013 academic year.&lt;br /&gt;
&lt;br /&gt;
=Executive Summary=&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
=Theory=&lt;br /&gt;
&lt;br /&gt;
==COMP 1805: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 2804: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 3804: Course Title==&lt;br /&gt;
&lt;br /&gt;
=Software Engineering=&lt;br /&gt;
&lt;br /&gt;
== COMP 2404: Introduction to Software Engineering ==&lt;br /&gt;
&lt;br /&gt;
Introduction to object-oriented software development, with emphasis on design and implementation of medium-sized programs.  Topics include abstraction, modularity, encapsulation, reusability, and design patterns.&lt;br /&gt;
&lt;br /&gt;
==COMP 3004: Object-Oriented Software Engineering ==&lt;br /&gt;
&lt;br /&gt;
No changes.&lt;br /&gt;
&lt;br /&gt;
=Programming=&lt;br /&gt;
&lt;br /&gt;
* we already changed 1405 and 1406&lt;br /&gt;
* goal is to teach programming through teaching other topics that are central to modern CS: OS, databases, web&lt;br /&gt;
&lt;br /&gt;
==COMP 2401: Introduction to Systems Programming ==&lt;br /&gt;
&lt;br /&gt;
Introduction to programming at the system level, with procedures and primitive data types, designed for B.C.S. students. Topics include: basic OS concepts (including processes), pointers, heap and stack memory allocation and deallocation, system/library calls, signal handling and inter-process communication.&lt;br /&gt;
&lt;br /&gt;
==COMP 2405: course title==&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9566</id>
		<title>Curriculum Proposal to SCS Faculty May 2011</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9566"/>
		<updated>2011-05-02T15:37:42Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* COMP 2404: Course Title */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document contains proposed course changes for the 2012/2013 academic year.&lt;br /&gt;
&lt;br /&gt;
=Executive Summary=&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
=Theory=&lt;br /&gt;
&lt;br /&gt;
==COMP 1805: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 2804: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 3804: Course Title==&lt;br /&gt;
&lt;br /&gt;
=Software Engineering=&lt;br /&gt;
&lt;br /&gt;
== COMP 2404: Introduction to Software Engineering ==&lt;br /&gt;
&lt;br /&gt;
Introduction to object-oriented software development, with emphasis on design and implementation of medium-sized programs.  Topics include abstraction, modularity, encapsulation, reusability, and design patterns.&lt;br /&gt;
&lt;br /&gt;
==COMP 3004: Object-Oriented Software Engineering ==&lt;br /&gt;
&lt;br /&gt;
No changes.&lt;br /&gt;
&lt;br /&gt;
=Programming=&lt;br /&gt;
&lt;br /&gt;
* we already changed 1405 and 1406&lt;br /&gt;
* goal is to teach programming through teaching other topics that are central to modern CS: OS, databases, web&lt;br /&gt;
&lt;br /&gt;
==COMP 2401: course title==&lt;br /&gt;
&lt;br /&gt;
==COMP 2405: course title==&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9560</id>
		<title>Curriculum Proposal to SCS Faculty May 2011</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Curriculum_Proposal_to_SCS_Faculty_May_2011&amp;diff=9560"/>
		<updated>2011-05-02T13:37:37Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* COMP 3004: Course Title */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document contains proposed course changes for the 2012/2013 academic year.&lt;br /&gt;
&lt;br /&gt;
=Executive Summary=&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
=Theory=&lt;br /&gt;
&lt;br /&gt;
==COMP 1805: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 2804: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 3804: Course Title==&lt;br /&gt;
&lt;br /&gt;
=Software Engineering=&lt;br /&gt;
&lt;br /&gt;
==COMP 2404: Course Title==&lt;br /&gt;
&lt;br /&gt;
==COMP 3004: Object-Oriented Software Engineering ==&lt;br /&gt;
&lt;br /&gt;
No changes.&lt;br /&gt;
&lt;br /&gt;
=Programming=&lt;br /&gt;
&lt;br /&gt;
* we already changed 1405 and 1406&lt;br /&gt;
* goal is to teach programming through teaching other topics that are central to modern CS: OS, databases, web&lt;br /&gt;
&lt;br /&gt;
==COMP 2401: course title==&lt;br /&gt;
&lt;br /&gt;
==COMP 2405: course title==&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2401_Learning_Objectives&amp;diff=9361</id>
		<title>CR: COMP 2401 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2401_Learning_Objectives&amp;diff=9361"/>
		<updated>2011-04-11T16:43:33Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Introduction to Systems Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Introduction to programming with procedures and primitive data types, designed for B.C.S. students. Topics include: arrays, strings, pointers, heap and stack memory allocation and deallocation, iterative and recursive linked list manipulations, system/library calls.&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;
* Gain experience in understanding and working with portions of an existing code base&lt;br /&gt;
* Understand the basics of operating systems&lt;br /&gt;
* Gain experience in procedural and low-level programming, including:&lt;br /&gt;
** data types and structures&lt;br /&gt;
** memory management&lt;br /&gt;
** program building&lt;br /&gt;
** library functions and system calls&lt;br /&gt;
** shell environment and script programming&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Introduction to Operating Systems ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction to Systems Programming ==&lt;br /&gt;
* Understand and apply basic programming conventions:&lt;br /&gt;
** proper variable names&lt;br /&gt;
** appropriate commenting&lt;br /&gt;
** indentation using established style &lt;br /&gt;
&lt;br /&gt;
* Understand how to use primitive data types and structures&lt;br /&gt;
** bit models and representations&lt;br /&gt;
** arrays, strings, structures&lt;br /&gt;
&lt;br /&gt;
* Understand basics of memory management&lt;br /&gt;
** variables&lt;br /&gt;
*** primitive data types&lt;br /&gt;
*** scope&lt;br /&gt;
*** storage class &lt;br /&gt;
** functions&lt;br /&gt;
*** pass-by-value&lt;br /&gt;
*** pass-by-reference &lt;br /&gt;
** memory allocation&lt;br /&gt;
*** static vs. dynamic memory allocation&lt;br /&gt;
*** pointers, double pointers&lt;br /&gt;
*** garbage collection &lt;br /&gt;
** program memory organization&lt;br /&gt;
*** function call stack, contents of stack frame&lt;br /&gt;
*** heap&lt;br /&gt;
*** data segment&lt;br /&gt;
*** code segment &lt;br /&gt;
&lt;br /&gt;
* Program building&lt;br /&gt;
** able to build programs across multiple header and source files &lt;br /&gt;
&lt;br /&gt;
* Library functions and system calls&lt;br /&gt;
** able to research and understand standard library function and system call documentation&lt;br /&gt;
** understand how to create a new library for distribution&lt;br /&gt;
** able to program with system calls:&lt;br /&gt;
*** stream and file I/O&lt;br /&gt;
*** signal handling&lt;br /&gt;
*** multiprocess programming&lt;br /&gt;
*** inter-process communications (sockets, RPC) &lt;br /&gt;
&lt;br /&gt;
* Scripting languages&lt;br /&gt;
** understand the basics of shell script programming&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2401_Learning_Objectives&amp;diff=9360</id>
		<title>CR: COMP 2401 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2401_Learning_Objectives&amp;diff=9360"/>
		<updated>2011-04-11T16:43:02Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Introduction to Systems Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Introduction to programming with procedures and primitive data types, designed for B.C.S. students. Topics include: arrays, strings, pointers, heap and stack memory allocation and deallocation, iterative and recursive linked list manipulations, system/library calls.&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;
* Gain experience in understanding and working with portions of an existing code base&lt;br /&gt;
* Understand the basics of operating systems&lt;br /&gt;
* Gain experience in procedural and low-level programming, including:&lt;br /&gt;
** data types and structures&lt;br /&gt;
** memory management&lt;br /&gt;
** program building&lt;br /&gt;
** library functions and system calls&lt;br /&gt;
** shell environment and script programming&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Introduction to Operating Systems ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction to Systems Programming ==&lt;br /&gt;
* Understand and apply basic programming conventions:&lt;br /&gt;
** proper variable names&lt;br /&gt;
** appropriate commenting&lt;br /&gt;
** indentation using established style &lt;br /&gt;
&lt;br /&gt;
* Understand how to use primitive data types and structures&lt;br /&gt;
** bit models and representations&lt;br /&gt;
** arrays, strings, structures&lt;br /&gt;
&lt;br /&gt;
* Understand basics of memory management&lt;br /&gt;
** variables&lt;br /&gt;
*** primitive data types&lt;br /&gt;
*** scope&lt;br /&gt;
*** storage class &lt;br /&gt;
** functions&lt;br /&gt;
*** pass-by-value&lt;br /&gt;
*** pass-by-reference &lt;br /&gt;
** memory allocation&lt;br /&gt;
*** static vs. dynamic memory allocation&lt;br /&gt;
*** pointers, double pointers&lt;br /&gt;
*** garbage collection &lt;br /&gt;
** program memory organization&lt;br /&gt;
*** function call stack, contents of stack frame&lt;br /&gt;
*** heap&lt;br /&gt;
*** data segment&lt;br /&gt;
*** code segment &lt;br /&gt;
&lt;br /&gt;
* Program management&lt;br /&gt;
** able to build programs across multiple header and source files &lt;br /&gt;
&lt;br /&gt;
* Library functions and system calls&lt;br /&gt;
** able to research and understand standard library function and system call documentation&lt;br /&gt;
** understand how to create a new library for distribution&lt;br /&gt;
** able to program with system calls:&lt;br /&gt;
*** stream and file I/O&lt;br /&gt;
*** signal handling&lt;br /&gt;
*** multiprocess programming&lt;br /&gt;
*** inter-process communications (sockets, RPC) &lt;br /&gt;
&lt;br /&gt;
* Scripting languages&lt;br /&gt;
** understand the basics of shell script programming&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2401_Learning_Objectives&amp;diff=9359</id>
		<title>CR: COMP 2401 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2401_Learning_Objectives&amp;diff=9359"/>
		<updated>2011-04-11T16:42:21Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Introduction to programming with procedures and primitive data types, designed for B.C.S. students. Topics include: arrays, strings, pointers, heap and stack memory allocation and deallocation, iterative and recursive linked list manipulations, system/library calls.&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;
* Gain experience in understanding and working with portions of an existing code base&lt;br /&gt;
* Understand the basics of operating systems&lt;br /&gt;
* Gain experience in procedural and low-level programming, including:&lt;br /&gt;
** data types and structures&lt;br /&gt;
** memory management&lt;br /&gt;
** program building&lt;br /&gt;
** library functions and system calls&lt;br /&gt;
** shell environment and script programming&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Introduction to Operating Systems ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction to Systems Programming ==&lt;br /&gt;
* Understand and apply basic programming conventions:&lt;br /&gt;
** proper variable names&lt;br /&gt;
** appropriate commenting&lt;br /&gt;
** indentation using established style &lt;br /&gt;
&lt;br /&gt;
* Understand how to use primitive data types and structures&lt;br /&gt;
** bit models and representations&lt;br /&gt;
** arrays, strings, structures&lt;br /&gt;
&lt;br /&gt;
* Understand basics of memory management&lt;br /&gt;
** variables&lt;br /&gt;
*** primitive data types&lt;br /&gt;
*** scope&lt;br /&gt;
*** storage class &lt;br /&gt;
** functions&lt;br /&gt;
*** pass-by-value&lt;br /&gt;
*** pass-by-reference &lt;br /&gt;
** memory allocation&lt;br /&gt;
*** static vs. dynamic memory allocation&lt;br /&gt;
*** pointers, double pointers&lt;br /&gt;
*** garbage collection &lt;br /&gt;
** program memory organization&lt;br /&gt;
*** function call stack, contents of stack frame&lt;br /&gt;
*** heap&lt;br /&gt;
*** data segment&lt;br /&gt;
*** code segment &lt;br /&gt;
&lt;br /&gt;
* Program management&lt;br /&gt;
** able to build programs across multiple header and source files &lt;br /&gt;
&lt;br /&gt;
* Library functions and system calls&lt;br /&gt;
** able to research and understand standard library function and system call documentation&lt;br /&gt;
** understand how to create a new library for distribution&lt;br /&gt;
** able to program with system calls:&lt;br /&gt;
*** stream and file I/O&lt;br /&gt;
*** signal handling&lt;br /&gt;
*** multiprocess programming&lt;br /&gt;
*** inter-process communications (sockets, RPC) &lt;br /&gt;
&lt;br /&gt;
* Scripting languages&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2401_Learning_Objectives&amp;diff=9357</id>
		<title>CR: COMP 2401 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2401_Learning_Objectives&amp;diff=9357"/>
		<updated>2011-04-11T16:33:46Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Learning Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Introduction to programming with procedures and primitive data types, designed for B.C.S. students. Topics include: arrays, strings, pointers, heap and stack memory allocation and deallocation, iterative and recursive linked list manipulations, system/library calls.&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;
* Gain experience in understanding and working with portions of an existing code base&lt;br /&gt;
* Understand the basics of operating systems&lt;br /&gt;
* Gain experience in procedural and low-level programming, including:&lt;br /&gt;
** data types and structures&lt;br /&gt;
** memory management&lt;br /&gt;
** program building&lt;br /&gt;
** library functions and system calls&lt;br /&gt;
** shell environment and script programming&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>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2401_Learning_Objectives&amp;diff=9356</id>
		<title>CR: COMP 2401 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2401_Learning_Objectives&amp;diff=9356"/>
		<updated>2011-04-11T16:29:19Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Calendar Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Introduction to programming with procedures and primitive data types, designed for B.C.S. students. Topics include: arrays, strings, pointers, heap and stack memory allocation and deallocation, iterative and recursive linked list manipulations, system/library calls.&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;
&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>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9355</id>
		<title>CR: COMP 2404 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9355"/>
		<updated>2011-04-11T16:24:43Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* C++ Advanced Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
In-depth study of the language C++ from a software engineering perspective, with emphasis on features supporting the development of large efficient and reusable systems. Topics include: encapsulation, templates, references, constructors and destructors, overloading, memory management, exception handling, and the standard template library.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Able to understand an assignment description and identify the objects that are required&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming conventions:&lt;br /&gt;
** proper variable names&lt;br /&gt;
** appropriate commenting&lt;br /&gt;
** indentation using established style&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming constructs:&lt;br /&gt;
** Variables&lt;br /&gt;
*** primitive data types&lt;br /&gt;
*** scope&lt;br /&gt;
*** storage class&lt;br /&gt;
** Functions&lt;br /&gt;
*** pass-by-value&lt;br /&gt;
*** pass-by-reference&lt;br /&gt;
** Program memory organization&lt;br /&gt;
*** function call stack, contents of stack frame&lt;br /&gt;
*** heap&lt;br /&gt;
*** data segment&lt;br /&gt;
*** code segment&lt;br /&gt;
** Memory management&lt;br /&gt;
*** static vs. dynamic memory allocation&lt;br /&gt;
*** pointers, double pointers&lt;br /&gt;
*** garbage collection&lt;br /&gt;
&lt;br /&gt;
* Familiarity with shell environment&lt;br /&gt;
&lt;br /&gt;
* Able to build programs across multiple header and source files&lt;br /&gt;
&lt;br /&gt;
* Able to program with system calls:&lt;br /&gt;
** stream and file I/O&lt;br /&gt;
** signal handling&lt;br /&gt;
** multiprocess programming&lt;br /&gt;
** inter-process communications (sockets, RPC)&lt;br /&gt;
&lt;br /&gt;
* Able to research and understand standard library function and system call documentation&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Gain experience in design techniques for small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
* Gain proficiency with basic and intermediate-level C++ programming&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Design Techniques ==&lt;br /&gt;
* Able to identify the required objects&lt;br /&gt;
* Able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
* Able to identify opportunities for code reuse and implement them &lt;br /&gt;
&lt;br /&gt;
== Basics of C/C++ ==&lt;br /&gt;
* Understand fundamental programming constructs (review):&lt;br /&gt;
** variables (scope, storage class)&lt;br /&gt;
** program memory organization (call stack, heap)&lt;br /&gt;
** memory management (pointers, memory allocation)&lt;br /&gt;
* Able to use references, and understand difference between references and pointers&lt;br /&gt;
&lt;br /&gt;
== C++ Basic Classes and Objects ==&lt;br /&gt;
* Understand and be able to construct basic class definitions, using the following:&lt;br /&gt;
** data members, member functions&lt;br /&gt;
** encapsulation using access specifiers, constant members&lt;br /&gt;
** constructors, destructors&lt;br /&gt;
** friend functions, friend classes&lt;br /&gt;
&lt;br /&gt;
* Understand and be able to use dynamic memory management&lt;br /&gt;
&lt;br /&gt;
* Inheritance&lt;br /&gt;
** able to setup appropriate inheritance hierarchy&lt;br /&gt;
** understand how to use:&lt;br /&gt;
*** types of inheritance&lt;br /&gt;
*** multiple inheritance&lt;br /&gt;
&lt;br /&gt;
* Able to organize code with multiple classes&lt;br /&gt;
** separating class definition and interface from implementation&lt;br /&gt;
&lt;br /&gt;
== C++ Advanced Features ==&lt;br /&gt;
* Overloading&lt;br /&gt;
** understand how to overload functions and operators&lt;br /&gt;
** able to overload different types of operators&lt;br /&gt;
*** stream insertion/extraction&lt;br /&gt;
*** unary, binary&lt;br /&gt;
*** increment/decrement, prefix/postfix&lt;br /&gt;
** understand how to cascade function calls and recognize when it is appropriate&lt;br /&gt;
* Templates&lt;br /&gt;
** understand reason for generic programming&lt;br /&gt;
** able to define function templates, class templates&lt;br /&gt;
* Polymorphism&lt;br /&gt;
** understand use of virtual, pure virtual functions&lt;br /&gt;
** understand difference between static and dynamic binding, and how to implement each one&lt;br /&gt;
** know how to use RTTI functionality, especially dynamic casting&lt;br /&gt;
* STL&lt;br /&gt;
** understand the basics of containers, iterators, algorithms, and how to use them&lt;br /&gt;
* Files and streams&lt;br /&gt;
** understand basic operations&lt;br /&gt;
** recognize basic overloaded operators on streams&lt;br /&gt;
* Exception handling&lt;br /&gt;
** understand when and how to use exception handling&lt;br /&gt;
** know how to define multiple catch blocks&lt;br /&gt;
** understand how to gracefully unwind the function call stack when an exception is thrown&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9354</id>
		<title>CR: COMP 2404 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9354"/>
		<updated>2011-04-11T16:24:12Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* C++ Advanced Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
In-depth study of the language C++ from a software engineering perspective, with emphasis on features supporting the development of large efficient and reusable systems. Topics include: encapsulation, templates, references, constructors and destructors, overloading, memory management, exception handling, and the standard template library.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Able to understand an assignment description and identify the objects that are required&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming conventions:&lt;br /&gt;
** proper variable names&lt;br /&gt;
** appropriate commenting&lt;br /&gt;
** indentation using established style&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming constructs:&lt;br /&gt;
** Variables&lt;br /&gt;
*** primitive data types&lt;br /&gt;
*** scope&lt;br /&gt;
*** storage class&lt;br /&gt;
** Functions&lt;br /&gt;
*** pass-by-value&lt;br /&gt;
*** pass-by-reference&lt;br /&gt;
** Program memory organization&lt;br /&gt;
*** function call stack, contents of stack frame&lt;br /&gt;
*** heap&lt;br /&gt;
*** data segment&lt;br /&gt;
*** code segment&lt;br /&gt;
** Memory management&lt;br /&gt;
*** static vs. dynamic memory allocation&lt;br /&gt;
*** pointers, double pointers&lt;br /&gt;
*** garbage collection&lt;br /&gt;
&lt;br /&gt;
* Familiarity with shell environment&lt;br /&gt;
&lt;br /&gt;
* Able to build programs across multiple header and source files&lt;br /&gt;
&lt;br /&gt;
* Able to program with system calls:&lt;br /&gt;
** stream and file I/O&lt;br /&gt;
** signal handling&lt;br /&gt;
** multiprocess programming&lt;br /&gt;
** inter-process communications (sockets, RPC)&lt;br /&gt;
&lt;br /&gt;
* Able to research and understand standard library function and system call documentation&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Gain experience in design techniques for small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
* Gain proficiency with basic and intermediate-level C++ programming&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Design Techniques ==&lt;br /&gt;
* Able to identify the required objects&lt;br /&gt;
* Able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
* Able to identify opportunities for code reuse and implement them &lt;br /&gt;
&lt;br /&gt;
== Basics of C/C++ ==&lt;br /&gt;
* Understand fundamental programming constructs (review):&lt;br /&gt;
** variables (scope, storage class)&lt;br /&gt;
** program memory organization (call stack, heap)&lt;br /&gt;
** memory management (pointers, memory allocation)&lt;br /&gt;
* Able to use references, and understand difference between references and pointers&lt;br /&gt;
&lt;br /&gt;
== C++ Basic Classes and Objects ==&lt;br /&gt;
* Understand and be able to construct basic class definitions, using the following:&lt;br /&gt;
** data members, member functions&lt;br /&gt;
** encapsulation using access specifiers, constant members&lt;br /&gt;
** constructors, destructors&lt;br /&gt;
** friend functions, friend classes&lt;br /&gt;
&lt;br /&gt;
* Understand and be able to use dynamic memory management&lt;br /&gt;
&lt;br /&gt;
* Inheritance&lt;br /&gt;
** able to setup appropriate inheritance hierarchy&lt;br /&gt;
** understand how to use:&lt;br /&gt;
*** types of inheritance&lt;br /&gt;
*** multiple inheritance&lt;br /&gt;
&lt;br /&gt;
* Able to organize code with multiple classes&lt;br /&gt;
** separating class definition and interface from implementation&lt;br /&gt;
&lt;br /&gt;
== C++ Advanced Features ==&lt;br /&gt;
* Overloading&lt;br /&gt;
** understand how to overload functions and operators&lt;br /&gt;
** able to overload different types of operators&lt;br /&gt;
*** stream insertion/extraction&lt;br /&gt;
*** unary, binary&lt;br /&gt;
*** increment/decrement, prefix/postfix&lt;br /&gt;
** understand how to cascade function calls and recognize when it is appropriate&lt;br /&gt;
* Templates&lt;br /&gt;
** understand reason for generic programming&lt;br /&gt;
** able to define function templates, class templates&lt;br /&gt;
* Polymorphism&lt;br /&gt;
** understand use of virtual, pure virtual functions&lt;br /&gt;
** understand difference between static and dynamic binding and how to implement each one&lt;br /&gt;
** know how to use RTTI functionality, especially dynamic casting&lt;br /&gt;
* STL&lt;br /&gt;
** understand the basics of containers, iterators, algorithms, and how to use them&lt;br /&gt;
* Files and streams&lt;br /&gt;
** understand basic operations&lt;br /&gt;
** recognize basic overloaded operators on streams&lt;br /&gt;
* Exception handling&lt;br /&gt;
** understand when and how to use exception handling&lt;br /&gt;
** know how to define multiple catch blocks&lt;br /&gt;
** understand how to gracefully unwind the function call stack when an exception is thrown&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9353</id>
		<title>CR: COMP 2404 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9353"/>
		<updated>2011-04-11T16:23:47Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* C++ Advanced Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
In-depth study of the language C++ from a software engineering perspective, with emphasis on features supporting the development of large efficient and reusable systems. Topics include: encapsulation, templates, references, constructors and destructors, overloading, memory management, exception handling, and the standard template library.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Able to understand an assignment description and identify the objects that are required&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming conventions:&lt;br /&gt;
** proper variable names&lt;br /&gt;
** appropriate commenting&lt;br /&gt;
** indentation using established style&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming constructs:&lt;br /&gt;
** Variables&lt;br /&gt;
*** primitive data types&lt;br /&gt;
*** scope&lt;br /&gt;
*** storage class&lt;br /&gt;
** Functions&lt;br /&gt;
*** pass-by-value&lt;br /&gt;
*** pass-by-reference&lt;br /&gt;
** Program memory organization&lt;br /&gt;
*** function call stack, contents of stack frame&lt;br /&gt;
*** heap&lt;br /&gt;
*** data segment&lt;br /&gt;
*** code segment&lt;br /&gt;
** Memory management&lt;br /&gt;
*** static vs. dynamic memory allocation&lt;br /&gt;
*** pointers, double pointers&lt;br /&gt;
*** garbage collection&lt;br /&gt;
&lt;br /&gt;
* Familiarity with shell environment&lt;br /&gt;
&lt;br /&gt;
* Able to build programs across multiple header and source files&lt;br /&gt;
&lt;br /&gt;
* Able to program with system calls:&lt;br /&gt;
** stream and file I/O&lt;br /&gt;
** signal handling&lt;br /&gt;
** multiprocess programming&lt;br /&gt;
** inter-process communications (sockets, RPC)&lt;br /&gt;
&lt;br /&gt;
* Able to research and understand standard library function and system call documentation&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Gain experience in design techniques for small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
* Gain proficiency with basic and intermediate-level C++ programming&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Design Techniques ==&lt;br /&gt;
* Able to identify the required objects&lt;br /&gt;
* Able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
* Able to identify opportunities for code reuse and implement them &lt;br /&gt;
&lt;br /&gt;
== Basics of C/C++ ==&lt;br /&gt;
* Understand fundamental programming constructs (review):&lt;br /&gt;
** variables (scope, storage class)&lt;br /&gt;
** program memory organization (call stack, heap)&lt;br /&gt;
** memory management (pointers, memory allocation)&lt;br /&gt;
* Able to use references, and understand difference between references and pointers&lt;br /&gt;
&lt;br /&gt;
== C++ Basic Classes and Objects ==&lt;br /&gt;
* Understand and be able to construct basic class definitions, using the following:&lt;br /&gt;
** data members, member functions&lt;br /&gt;
** encapsulation using access specifiers, constant members&lt;br /&gt;
** constructors, destructors&lt;br /&gt;
** friend functions, friend classes&lt;br /&gt;
&lt;br /&gt;
* Understand and be able to use dynamic memory management&lt;br /&gt;
&lt;br /&gt;
* Inheritance&lt;br /&gt;
** able to setup appropriate inheritance hierarchy&lt;br /&gt;
** understand how to use:&lt;br /&gt;
*** types of inheritance&lt;br /&gt;
*** multiple inheritance&lt;br /&gt;
&lt;br /&gt;
* Able to organize code with multiple classes&lt;br /&gt;
** separating class definition and interface from implementation&lt;br /&gt;
&lt;br /&gt;
== C++ Advanced Features ==&lt;br /&gt;
* Overloading&lt;br /&gt;
** understand how to overload functions and operators&lt;br /&gt;
** able to overload different types of operators&lt;br /&gt;
*** stream insertion/extraction&lt;br /&gt;
*** unary, binary&lt;br /&gt;
*** increment/decrement, prefix/postfix&lt;br /&gt;
** understand how to cascade function calls and recognize when it is appropriate&lt;br /&gt;
* Templates&lt;br /&gt;
** understand reason for generic programming&lt;br /&gt;
** able to define function templates, class templates&lt;br /&gt;
* Polymorphism&lt;br /&gt;
** understand use of virtual, pure virtual functions&lt;br /&gt;
** understand difference between static and dynamic binding and how to implement each one&lt;br /&gt;
** know how to use RTTI functionality, especially dynamic casting&lt;br /&gt;
* STL&lt;br /&gt;
** understand the basics of containers, iterators, algorithms, and how to use them&lt;br /&gt;
* Files and streams&lt;br /&gt;
** understand basic operations&lt;br /&gt;
** recognize basic overloaded operators on streams&lt;br /&gt;
* Exception handling&lt;br /&gt;
** understand when and how to use exception handling&lt;br /&gt;
** know how to define multiple catch blocks&lt;br /&gt;
** understand how to gracefully unwind the function call stack&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9352</id>
		<title>CR: COMP 2404 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9352"/>
		<updated>2011-04-11T15:30:36Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* C++ Basic Classes and Objects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
In-depth study of the language C++ from a software engineering perspective, with emphasis on features supporting the development of large efficient and reusable systems. Topics include: encapsulation, templates, references, constructors and destructors, overloading, memory management, exception handling, and the standard template library.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Able to understand an assignment description and identify the objects that are required&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming conventions:&lt;br /&gt;
** proper variable names&lt;br /&gt;
** appropriate commenting&lt;br /&gt;
** indentation using established style&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming constructs:&lt;br /&gt;
** Variables&lt;br /&gt;
*** primitive data types&lt;br /&gt;
*** scope&lt;br /&gt;
*** storage class&lt;br /&gt;
** Functions&lt;br /&gt;
*** pass-by-value&lt;br /&gt;
*** pass-by-reference&lt;br /&gt;
** Program memory organization&lt;br /&gt;
*** function call stack, contents of stack frame&lt;br /&gt;
*** heap&lt;br /&gt;
*** data segment&lt;br /&gt;
*** code segment&lt;br /&gt;
** Memory management&lt;br /&gt;
*** static vs. dynamic memory allocation&lt;br /&gt;
*** pointers, double pointers&lt;br /&gt;
*** garbage collection&lt;br /&gt;
&lt;br /&gt;
* Familiarity with shell environment&lt;br /&gt;
&lt;br /&gt;
* Able to build programs across multiple header and source files&lt;br /&gt;
&lt;br /&gt;
* Able to program with system calls:&lt;br /&gt;
** stream and file I/O&lt;br /&gt;
** signal handling&lt;br /&gt;
** multiprocess programming&lt;br /&gt;
** inter-process communications (sockets, RPC)&lt;br /&gt;
&lt;br /&gt;
* Able to research and understand standard library function and system call documentation&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Gain experience in design techniques for small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
* Gain proficiency with basic and intermediate-level C++ programming&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Design Techniques ==&lt;br /&gt;
* Able to identify the required objects&lt;br /&gt;
* Able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
* Able to identify opportunities for code reuse and implement them &lt;br /&gt;
&lt;br /&gt;
== Basics of C/C++ ==&lt;br /&gt;
* Understand fundamental programming constructs (review):&lt;br /&gt;
** variables (scope, storage class)&lt;br /&gt;
** program memory organization (call stack, heap)&lt;br /&gt;
** memory management (pointers, memory allocation)&lt;br /&gt;
* Able to use references, and understand difference between references and pointers&lt;br /&gt;
&lt;br /&gt;
== C++ Basic Classes and Objects ==&lt;br /&gt;
* Understand and be able to construct basic class definitions, using the following:&lt;br /&gt;
** data members, member functions&lt;br /&gt;
** encapsulation using access specifiers, constant members&lt;br /&gt;
** constructors, destructors&lt;br /&gt;
** friend functions, friend classes&lt;br /&gt;
&lt;br /&gt;
* Understand and be able to use dynamic memory management&lt;br /&gt;
&lt;br /&gt;
* Inheritance&lt;br /&gt;
** able to setup appropriate inheritance hierarchy&lt;br /&gt;
** understand how to use:&lt;br /&gt;
*** types of inheritance&lt;br /&gt;
*** multiple inheritance&lt;br /&gt;
&lt;br /&gt;
* Able to organize code with multiple classes&lt;br /&gt;
** separating class definition and interface from implementation&lt;br /&gt;
&lt;br /&gt;
== C++ Advanced Features ==&lt;br /&gt;
* Overloading&lt;br /&gt;
** function overloading, operator overloading&lt;br /&gt;
** cascading function calls&lt;br /&gt;
* Templates&lt;br /&gt;
** function templates, class templates&lt;br /&gt;
* Polymorphism&lt;br /&gt;
** virtual, pure virtual functions&lt;br /&gt;
** static vs. dynamic binding&lt;br /&gt;
** RTTI, dynamic casting&lt;br /&gt;
* STL&lt;br /&gt;
** introduction to containers, iterators, algorithms&lt;br /&gt;
* Files and streams&lt;br /&gt;
* Exception handling&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9351</id>
		<title>CR: COMP 2404 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9351"/>
		<updated>2011-04-11T15:27:01Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* C++ Basic Classes and Objects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
In-depth study of the language C++ from a software engineering perspective, with emphasis on features supporting the development of large efficient and reusable systems. Topics include: encapsulation, templates, references, constructors and destructors, overloading, memory management, exception handling, and the standard template library.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Able to understand an assignment description and identify the objects that are required&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming conventions:&lt;br /&gt;
** proper variable names&lt;br /&gt;
** appropriate commenting&lt;br /&gt;
** indentation using established style&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming constructs:&lt;br /&gt;
** Variables&lt;br /&gt;
*** primitive data types&lt;br /&gt;
*** scope&lt;br /&gt;
*** storage class&lt;br /&gt;
** Functions&lt;br /&gt;
*** pass-by-value&lt;br /&gt;
*** pass-by-reference&lt;br /&gt;
** Program memory organization&lt;br /&gt;
*** function call stack, contents of stack frame&lt;br /&gt;
*** heap&lt;br /&gt;
*** data segment&lt;br /&gt;
*** code segment&lt;br /&gt;
** Memory management&lt;br /&gt;
*** static vs. dynamic memory allocation&lt;br /&gt;
*** pointers, double pointers&lt;br /&gt;
*** garbage collection&lt;br /&gt;
&lt;br /&gt;
* Familiarity with shell environment&lt;br /&gt;
&lt;br /&gt;
* Able to build programs across multiple header and source files&lt;br /&gt;
&lt;br /&gt;
* Able to program with system calls:&lt;br /&gt;
** stream and file I/O&lt;br /&gt;
** signal handling&lt;br /&gt;
** multiprocess programming&lt;br /&gt;
** inter-process communications (sockets, RPC)&lt;br /&gt;
&lt;br /&gt;
* Able to research and understand standard library function and system call documentation&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Gain experience in design techniques for small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
* Gain proficiency with basic and intermediate-level C++ programming&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Design Techniques ==&lt;br /&gt;
* Able to identify the required objects&lt;br /&gt;
* Able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
* Able to identify opportunities for code reuse and implement them &lt;br /&gt;
&lt;br /&gt;
== Basics of C/C++ ==&lt;br /&gt;
* Understand fundamental programming constructs (review):&lt;br /&gt;
** variables (scope, storage class)&lt;br /&gt;
** program memory organization (call stack, heap)&lt;br /&gt;
** memory management (pointers, memory allocation)&lt;br /&gt;
* Able to use references, and understand difference between references and pointers&lt;br /&gt;
&lt;br /&gt;
== C++ Basic Classes and Objects ==&lt;br /&gt;
* Understand and be able to construct basic class definitions&lt;br /&gt;
** data members, member functions&lt;br /&gt;
** encapsulation using access specifiers, constant members&lt;br /&gt;
** constructors, destructors&lt;br /&gt;
** friend functions, friend classes&lt;br /&gt;
** dynamic memory management&lt;br /&gt;
* Able to setup appropriate inheritance hierarchy&lt;br /&gt;
** types of inheritance&lt;br /&gt;
** multiple inheritance&lt;br /&gt;
* Able to organize code with multiple classes&lt;br /&gt;
** separating class definition and interface from implementation&lt;br /&gt;
&lt;br /&gt;
== C++ Advanced Features ==&lt;br /&gt;
* Overloading&lt;br /&gt;
** function overloading, operator overloading&lt;br /&gt;
** cascading function calls&lt;br /&gt;
* Templates&lt;br /&gt;
** function templates, class templates&lt;br /&gt;
* Polymorphism&lt;br /&gt;
** virtual, pure virtual functions&lt;br /&gt;
** static vs. dynamic binding&lt;br /&gt;
** RTTI, dynamic casting&lt;br /&gt;
* STL&lt;br /&gt;
** introduction to containers, iterators, algorithms&lt;br /&gt;
* Files and streams&lt;br /&gt;
* Exception handling&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9350</id>
		<title>CR: COMP 2404 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9350"/>
		<updated>2011-04-11T14:56:08Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* C++ Basic Classes and Objects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
In-depth study of the language C++ from a software engineering perspective, with emphasis on features supporting the development of large efficient and reusable systems. Topics include: encapsulation, templates, references, constructors and destructors, overloading, memory management, exception handling, and the standard template library.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Able to understand an assignment description and identify the objects that are required&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming conventions:&lt;br /&gt;
** proper variable names&lt;br /&gt;
** appropriate commenting&lt;br /&gt;
** indentation using established style&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming constructs:&lt;br /&gt;
** Variables&lt;br /&gt;
*** primitive data types&lt;br /&gt;
*** scope&lt;br /&gt;
*** storage class&lt;br /&gt;
** Functions&lt;br /&gt;
*** pass-by-value&lt;br /&gt;
*** pass-by-reference&lt;br /&gt;
** Program memory organization&lt;br /&gt;
*** function call stack, contents of stack frame&lt;br /&gt;
*** heap&lt;br /&gt;
*** data segment&lt;br /&gt;
*** code segment&lt;br /&gt;
** Memory management&lt;br /&gt;
*** static vs. dynamic memory allocation&lt;br /&gt;
*** pointers, double pointers&lt;br /&gt;
*** garbage collection&lt;br /&gt;
&lt;br /&gt;
* Familiarity with shell environment&lt;br /&gt;
&lt;br /&gt;
* Able to build programs across multiple header and source files&lt;br /&gt;
&lt;br /&gt;
* Able to program with system calls:&lt;br /&gt;
** stream and file I/O&lt;br /&gt;
** signal handling&lt;br /&gt;
** multiprocess programming&lt;br /&gt;
** inter-process communications (sockets, RPC)&lt;br /&gt;
&lt;br /&gt;
* Able to research and understand standard library function and system call documentation&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Gain experience in design techniques for small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
* Gain proficiency with basic and intermediate-level C++ programming&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Design Techniques ==&lt;br /&gt;
* Able to identify the required objects&lt;br /&gt;
* Able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
* Able to identify opportunities for code reuse and implement them &lt;br /&gt;
&lt;br /&gt;
== Basics of C/C++ ==&lt;br /&gt;
* Understand fundamental programming constructs (review):&lt;br /&gt;
** variables (scope, storage class)&lt;br /&gt;
** program memory organization (call stack, heap)&lt;br /&gt;
** memory management (pointers, memory allocation)&lt;br /&gt;
* Able to use references, and understand difference between references and pointers&lt;br /&gt;
&lt;br /&gt;
== C++ Basic Classes and Objects ==&lt;br /&gt;
* Understand and be able to apply basic class definitions&lt;br /&gt;
** data members, member functions&lt;br /&gt;
** encapsulation using access specifiers, constant members&lt;br /&gt;
** constructors, destructors&lt;br /&gt;
** friend functions, friend classes&lt;br /&gt;
** dynamic memory management&lt;br /&gt;
* Able to setup appropriate inheritance hierarchy&lt;br /&gt;
** types of inheritance&lt;br /&gt;
** multiple inheritance&lt;br /&gt;
* Able to organize code with multiple classes&lt;br /&gt;
** separating class definition and interface from implementation&lt;br /&gt;
&lt;br /&gt;
== C++ Advanced Features ==&lt;br /&gt;
* Overloading&lt;br /&gt;
** function overloading, operator overloading&lt;br /&gt;
** cascading function calls&lt;br /&gt;
* Templates&lt;br /&gt;
** function templates, class templates&lt;br /&gt;
* Polymorphism&lt;br /&gt;
** virtual, pure virtual functions&lt;br /&gt;
** static vs. dynamic binding&lt;br /&gt;
** RTTI, dynamic casting&lt;br /&gt;
* STL&lt;br /&gt;
** introduction to containers, iterators, algorithms&lt;br /&gt;
* Files and streams&lt;br /&gt;
* Exception handling&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9349</id>
		<title>CR: COMP 2404 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9349"/>
		<updated>2011-04-11T14:55:53Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* C++ Basic Classes and Objects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
In-depth study of the language C++ from a software engineering perspective, with emphasis on features supporting the development of large efficient and reusable systems. Topics include: encapsulation, templates, references, constructors and destructors, overloading, memory management, exception handling, and the standard template library.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Able to understand an assignment description and identify the objects that are required&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming conventions:&lt;br /&gt;
** proper variable names&lt;br /&gt;
** appropriate commenting&lt;br /&gt;
** indentation using established style&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming constructs:&lt;br /&gt;
** Variables&lt;br /&gt;
*** primitive data types&lt;br /&gt;
*** scope&lt;br /&gt;
*** storage class&lt;br /&gt;
** Functions&lt;br /&gt;
*** pass-by-value&lt;br /&gt;
*** pass-by-reference&lt;br /&gt;
** Program memory organization&lt;br /&gt;
*** function call stack, contents of stack frame&lt;br /&gt;
*** heap&lt;br /&gt;
*** data segment&lt;br /&gt;
*** code segment&lt;br /&gt;
** Memory management&lt;br /&gt;
*** static vs. dynamic memory allocation&lt;br /&gt;
*** pointers, double pointers&lt;br /&gt;
*** garbage collection&lt;br /&gt;
&lt;br /&gt;
* Familiarity with shell environment&lt;br /&gt;
&lt;br /&gt;
* Able to build programs across multiple header and source files&lt;br /&gt;
&lt;br /&gt;
* Able to program with system calls:&lt;br /&gt;
** stream and file I/O&lt;br /&gt;
** signal handling&lt;br /&gt;
** multiprocess programming&lt;br /&gt;
** inter-process communications (sockets, RPC)&lt;br /&gt;
&lt;br /&gt;
* Able to research and understand standard library function and system call documentation&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Gain experience in design techniques for small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
* Gain proficiency with basic and intermediate-level C++ programming&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Design Techniques ==&lt;br /&gt;
* Able to identify the required objects&lt;br /&gt;
* Able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
* Able to identify opportunities for code reuse and implement them &lt;br /&gt;
&lt;br /&gt;
== Basics of C/C++ ==&lt;br /&gt;
* Understand fundamental programming constructs (review):&lt;br /&gt;
** variables (scope, storage class)&lt;br /&gt;
** program memory organization (call stack, heap)&lt;br /&gt;
** memory management (pointers, memory allocation)&lt;br /&gt;
* Able to use references, and understand difference between references and pointers&lt;br /&gt;
&lt;br /&gt;
== C++ Basic Classes and Objects ==&lt;br /&gt;
* Understand and be able to apply basic class definitions&lt;br /&gt;
** data members, member functions&lt;br /&gt;
** encapsulation using access specifiers, constant members&lt;br /&gt;
** constructors, destructors&lt;br /&gt;
** friend functions, friend classes&lt;br /&gt;
** dynamic memory management&lt;br /&gt;
* Able to setup appropriate inheritance hierarchy&lt;br /&gt;
** types of inheritance&lt;br /&gt;
** multiple inheritance&lt;br /&gt;
* Be able to organize code with multiple classes&lt;br /&gt;
** separating class definition and interface from implementation&lt;br /&gt;
&lt;br /&gt;
== C++ Advanced Features ==&lt;br /&gt;
* Overloading&lt;br /&gt;
** function overloading, operator overloading&lt;br /&gt;
** cascading function calls&lt;br /&gt;
* Templates&lt;br /&gt;
** function templates, class templates&lt;br /&gt;
* Polymorphism&lt;br /&gt;
** virtual, pure virtual functions&lt;br /&gt;
** static vs. dynamic binding&lt;br /&gt;
** RTTI, dynamic casting&lt;br /&gt;
* STL&lt;br /&gt;
** introduction to containers, iterators, algorithms&lt;br /&gt;
* Files and streams&lt;br /&gt;
* Exception handling&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9348</id>
		<title>CR: COMP 2404 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9348"/>
		<updated>2011-04-11T14:54:26Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Basics of C/C++ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
In-depth study of the language C++ from a software engineering perspective, with emphasis on features supporting the development of large efficient and reusable systems. Topics include: encapsulation, templates, references, constructors and destructors, overloading, memory management, exception handling, and the standard template library.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Able to understand an assignment description and identify the objects that are required&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming conventions:&lt;br /&gt;
** proper variable names&lt;br /&gt;
** appropriate commenting&lt;br /&gt;
** indentation using established style&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming constructs:&lt;br /&gt;
** Variables&lt;br /&gt;
*** primitive data types&lt;br /&gt;
*** scope&lt;br /&gt;
*** storage class&lt;br /&gt;
** Functions&lt;br /&gt;
*** pass-by-value&lt;br /&gt;
*** pass-by-reference&lt;br /&gt;
** Program memory organization&lt;br /&gt;
*** function call stack, contents of stack frame&lt;br /&gt;
*** heap&lt;br /&gt;
*** data segment&lt;br /&gt;
*** code segment&lt;br /&gt;
** Memory management&lt;br /&gt;
*** static vs. dynamic memory allocation&lt;br /&gt;
*** pointers, double pointers&lt;br /&gt;
*** garbage collection&lt;br /&gt;
&lt;br /&gt;
* Familiarity with shell environment&lt;br /&gt;
&lt;br /&gt;
* Able to build programs across multiple header and source files&lt;br /&gt;
&lt;br /&gt;
* Able to program with system calls:&lt;br /&gt;
** stream and file I/O&lt;br /&gt;
** signal handling&lt;br /&gt;
** multiprocess programming&lt;br /&gt;
** inter-process communications (sockets, RPC)&lt;br /&gt;
&lt;br /&gt;
* Able to research and understand standard library function and system call documentation&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Gain experience in design techniques for small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
* Gain proficiency with basic and intermediate-level C++ programming&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Design Techniques ==&lt;br /&gt;
* Able to identify the required objects&lt;br /&gt;
* Able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
* Able to identify opportunities for code reuse and implement them &lt;br /&gt;
&lt;br /&gt;
== Basics of C/C++ ==&lt;br /&gt;
* Understand fundamental programming constructs (review):&lt;br /&gt;
** variables (scope, storage class)&lt;br /&gt;
** program memory organization (call stack, heap)&lt;br /&gt;
** memory management (pointers, memory allocation)&lt;br /&gt;
* Able to use references, and understand difference between references and pointers&lt;br /&gt;
&lt;br /&gt;
== C++ Basic Classes and Objects ==&lt;br /&gt;
* Understand and be able to apply basic class definitions&lt;br /&gt;
** data members, member functions&lt;br /&gt;
** encapsulation using access specifiers, constant members&lt;br /&gt;
** constructors, destructors&lt;br /&gt;
** friend functions, friend classes&lt;br /&gt;
** dynamic memory management&lt;br /&gt;
* Inheritance&lt;br /&gt;
** types of inheritance&lt;br /&gt;
** multiple inheritance&lt;br /&gt;
* Code organization&lt;br /&gt;
** separating class definition and interface from implementation&lt;br /&gt;
&lt;br /&gt;
== C++ Advanced Features ==&lt;br /&gt;
* Overloading&lt;br /&gt;
** function overloading, operator overloading&lt;br /&gt;
** cascading function calls&lt;br /&gt;
* Templates&lt;br /&gt;
** function templates, class templates&lt;br /&gt;
* Polymorphism&lt;br /&gt;
** virtual, pure virtual functions&lt;br /&gt;
** static vs. dynamic binding&lt;br /&gt;
** RTTI, dynamic casting&lt;br /&gt;
* STL&lt;br /&gt;
** introduction to containers, iterators, algorithms&lt;br /&gt;
* Files and streams&lt;br /&gt;
* Exception handling&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9347</id>
		<title>CR: COMP 2404 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9347"/>
		<updated>2011-04-11T14:52:51Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
In-depth study of the language C++ from a software engineering perspective, with emphasis on features supporting the development of large efficient and reusable systems. Topics include: encapsulation, templates, references, constructors and destructors, overloading, memory management, exception handling, and the standard template library.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Able to understand an assignment description and identify the objects that are required&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming conventions:&lt;br /&gt;
** proper variable names&lt;br /&gt;
** appropriate commenting&lt;br /&gt;
** indentation using established style&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming constructs:&lt;br /&gt;
** Variables&lt;br /&gt;
*** primitive data types&lt;br /&gt;
*** scope&lt;br /&gt;
*** storage class&lt;br /&gt;
** Functions&lt;br /&gt;
*** pass-by-value&lt;br /&gt;
*** pass-by-reference&lt;br /&gt;
** Program memory organization&lt;br /&gt;
*** function call stack, contents of stack frame&lt;br /&gt;
*** heap&lt;br /&gt;
*** data segment&lt;br /&gt;
*** code segment&lt;br /&gt;
** Memory management&lt;br /&gt;
*** static vs. dynamic memory allocation&lt;br /&gt;
*** pointers, double pointers&lt;br /&gt;
*** garbage collection&lt;br /&gt;
&lt;br /&gt;
* Familiarity with shell environment&lt;br /&gt;
&lt;br /&gt;
* Able to build programs across multiple header and source files&lt;br /&gt;
&lt;br /&gt;
* Able to program with system calls:&lt;br /&gt;
** stream and file I/O&lt;br /&gt;
** signal handling&lt;br /&gt;
** multiprocess programming&lt;br /&gt;
** inter-process communications (sockets, RPC)&lt;br /&gt;
&lt;br /&gt;
* Able to research and understand standard library function and system call documentation&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Gain experience in design techniques for small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
* Gain proficiency with basic and intermediate-level C++ programming&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Design Techniques ==&lt;br /&gt;
* Able to identify the required objects&lt;br /&gt;
* Able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
* Able to identify opportunities for code reuse and implement them &lt;br /&gt;
&lt;br /&gt;
== Basics of C/C++ ==&lt;br /&gt;
* Review of fundamental programming constructs:&lt;br /&gt;
** variables (scope, storage class)&lt;br /&gt;
** program memory organization (call stack, heap)&lt;br /&gt;
** memory management (pointers, memory allocation)&lt;br /&gt;
* References&lt;br /&gt;
&lt;br /&gt;
== C++ Basic Classes and Objects ==&lt;br /&gt;
* Understand and be able to apply basic class definitions&lt;br /&gt;
** data members, member functions&lt;br /&gt;
** encapsulation using access specifiers, constant members&lt;br /&gt;
** constructors, destructors&lt;br /&gt;
** friend functions, friend classes&lt;br /&gt;
** dynamic memory management&lt;br /&gt;
* Inheritance&lt;br /&gt;
** types of inheritance&lt;br /&gt;
** multiple inheritance&lt;br /&gt;
* Code organization&lt;br /&gt;
** separating class definition and interface from implementation&lt;br /&gt;
&lt;br /&gt;
== C++ Advanced Features ==&lt;br /&gt;
* Overloading&lt;br /&gt;
** function overloading, operator overloading&lt;br /&gt;
** cascading function calls&lt;br /&gt;
* Templates&lt;br /&gt;
** function templates, class templates&lt;br /&gt;
* Polymorphism&lt;br /&gt;
** virtual, pure virtual functions&lt;br /&gt;
** static vs. dynamic binding&lt;br /&gt;
** RTTI, dynamic casting&lt;br /&gt;
* STL&lt;br /&gt;
** introduction to containers, iterators, algorithms&lt;br /&gt;
* Files and streams&lt;br /&gt;
* Exception handling&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9346</id>
		<title>CR: COMP 2404 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9346"/>
		<updated>2011-04-11T14:41:31Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Learning Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
In-depth study of the language C++ from a software engineering perspective, with emphasis on features supporting the development of large efficient and reusable systems. Topics include: encapsulation, templates, references, constructors and destructors, overloading, memory management, exception handling, and the standard template library.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Able to understand an assignment description and identify the objects that are required&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming conventions:&lt;br /&gt;
** proper variable names&lt;br /&gt;
** appropriate commenting&lt;br /&gt;
** indentation using established style&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming constructs:&lt;br /&gt;
** Variables&lt;br /&gt;
*** primitive data types&lt;br /&gt;
*** scope&lt;br /&gt;
*** storage class&lt;br /&gt;
** Functions&lt;br /&gt;
*** pass-by-value&lt;br /&gt;
*** pass-by-reference&lt;br /&gt;
** Program memory organization&lt;br /&gt;
*** function call stack, contents of stack frame&lt;br /&gt;
*** heap&lt;br /&gt;
*** data segment&lt;br /&gt;
*** code segment&lt;br /&gt;
** Memory management&lt;br /&gt;
*** static vs. dynamic memory allocation&lt;br /&gt;
*** pointers, double pointers&lt;br /&gt;
*** garbage collection&lt;br /&gt;
&lt;br /&gt;
* Familiarity with shell environment&lt;br /&gt;
&lt;br /&gt;
* Able to build programs across multiple header and source files&lt;br /&gt;
&lt;br /&gt;
* Able to program with system calls:&lt;br /&gt;
** stream and file I/O&lt;br /&gt;
** signal handling&lt;br /&gt;
** multiprocess programming&lt;br /&gt;
** inter-process communications (sockets, RPC)&lt;br /&gt;
&lt;br /&gt;
* Able to research and understand standard library function and system call documentation&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Gain experience in design techniques for small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
* Gain proficiency with basic and intermediate-level C++ programming&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>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9342</id>
		<title>CR: COMP 2404 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9342"/>
		<updated>2011-04-11T13:37:40Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Assumed Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
In-depth study of the language C++ from a software engineering perspective, with emphasis on features supporting the development of large efficient and reusable systems. Topics include: encapsulation, templates, references, constructors and destructors, overloading, memory management, exception handling, and the standard template library.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Able to understand an assignment description and identify the objects that are required&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming conventions:&lt;br /&gt;
** proper variable names&lt;br /&gt;
** appropriate commenting&lt;br /&gt;
** indentation using established style&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming constructs:&lt;br /&gt;
** Variables&lt;br /&gt;
*** primitive data types&lt;br /&gt;
*** scope&lt;br /&gt;
*** storage class&lt;br /&gt;
** Functions&lt;br /&gt;
*** pass-by-value&lt;br /&gt;
*** pass-by-reference&lt;br /&gt;
** Program memory organization&lt;br /&gt;
*** function call stack, contents of stack frame&lt;br /&gt;
*** heap&lt;br /&gt;
*** data segment&lt;br /&gt;
*** code segment&lt;br /&gt;
** Memory management&lt;br /&gt;
*** static vs. dynamic memory allocation&lt;br /&gt;
*** pointers, double pointers&lt;br /&gt;
*** garbage collection&lt;br /&gt;
&lt;br /&gt;
* Familiarity with shell environment&lt;br /&gt;
&lt;br /&gt;
* Able to build programs across multiple header and source files&lt;br /&gt;
&lt;br /&gt;
* Able to program with system calls:&lt;br /&gt;
** stream and file I/O&lt;br /&gt;
** signal handling&lt;br /&gt;
** multiprocess programming&lt;br /&gt;
** inter-process communications (sockets, RPC)&lt;br /&gt;
&lt;br /&gt;
* Able to research and understand standard library function and system call documentation&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;
&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>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9341</id>
		<title>CR: COMP 2404 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9341"/>
		<updated>2011-04-11T13:36:38Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Assumed Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
In-depth study of the language C++ from a software engineering perspective, with emphasis on features supporting the development of large efficient and reusable systems. Topics include: encapsulation, templates, references, constructors and destructors, overloading, memory management, exception handling, and the standard template library.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Able to understand an assignment description and identify the objects that are required&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming conventions:&lt;br /&gt;
** proper variable names&lt;br /&gt;
** appropriate commenting&lt;br /&gt;
** indentation using established style&lt;br /&gt;
&lt;br /&gt;
* Understand and apply basic programming constructs:&lt;br /&gt;
** Variables&lt;br /&gt;
*** primitive data types&lt;br /&gt;
*** scope&lt;br /&gt;
*** storage class&lt;br /&gt;
** Functions&lt;br /&gt;
*** pass-by-value&lt;br /&gt;
*** pass-by-reference&lt;br /&gt;
** Program memory organization&lt;br /&gt;
*** function call stack, contents of stack frame&lt;br /&gt;
*** heap&lt;br /&gt;
*** data segment&lt;br /&gt;
*** code segment&lt;br /&gt;
** Memory management&lt;br /&gt;
*** static vs. dynamic memory allocation&lt;br /&gt;
*** pointers, double pointers&lt;br /&gt;
*** garbage collection&lt;br /&gt;
&lt;br /&gt;
* Familiarity with shell environment&lt;br /&gt;
&lt;br /&gt;
* Able to build programs across multiple header and source files&lt;br /&gt;
&lt;br /&gt;
* Able to program with system calls:&lt;br /&gt;
** stream and file I/O&lt;br /&gt;
** signal handling&lt;br /&gt;
** multiprocess&lt;br /&gt;
** inter-process communications (sockets, RPC)&lt;br /&gt;
&lt;br /&gt;
* Able to research and understand standard library function and system call documentation&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;
&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>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9333</id>
		<title>CR: COMP 3004 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9333"/>
		<updated>2011-04-11T12:52:12Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Learning Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Theory and development of software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Practical experience with rudimentary software design techniques&lt;br /&gt;
** able to take an assignment description and identify the objects that are required&lt;br /&gt;
** able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
** able to identify opportunities for code reuse and implement them&lt;br /&gt;
** able to apply advanced object-oriented programming concepts, including polymorphism and generic programming&lt;br /&gt;
&lt;br /&gt;
* Practical experience in designing, implementing, testing and documenting small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Understand the theory of large scale software system development&lt;br /&gt;
** recognize the need for using a formal development process&lt;br /&gt;
** learn the phases of software development life cycle (requirements elicitation, analysis, high-level design, detailed design, implementation, testing)&lt;br /&gt;
** learn basics of project management&lt;br /&gt;
&lt;br /&gt;
* Gain the practical experience to:&lt;br /&gt;
** analyze a problem description for a large system&lt;br /&gt;
** apply each phase of the software development life cycle&lt;br /&gt;
** produce quality output for each phase&lt;br /&gt;
&lt;br /&gt;
* Prepare for a career as a software development professional:&lt;br /&gt;
** develop tools and strategies for working as a member of a team&lt;br /&gt;
** practice formal presentation of work to peers&lt;br /&gt;
** produce professional documentation&lt;br /&gt;
** understand the Software Engineering Code of Ethics; learn to identify and analyze ethical dilemmas in a systematic fashion&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Development Life Cycle ==&lt;br /&gt;
&lt;br /&gt;
* Requirements elicitation&lt;br /&gt;
** able to extract functional and non-functional requirements from a problem description&lt;br /&gt;
** able to construct corresponding functional model, with UML use cases and scenarios&lt;br /&gt;
** able to incorporate traceability into every work product&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
** able to identify high level objects and categorize them into entity, boundary and control objects&lt;br /&gt;
** able to construct corresponding object model, including associations (inheritance, aggregation), dependencies and multiplicity, with UML class diagrams&lt;br /&gt;
** able to construct a dynamic model based on functional requirements, with UML sequence diagrams, state machines and/or activity diagrams&lt;br /&gt;
&lt;br /&gt;
* High-level system design&lt;br /&gt;
** understand different types of architectural styles (repository, client/server, peer-to-peer, MVC)&lt;br /&gt;
** able to break down analysis object model into subsystems, with UML component diagrams&lt;br /&gt;
** able to identify subsystem services and interfaces&lt;br /&gt;
&lt;br /&gt;
* Detailed object design&lt;br /&gt;
** understand the need for code reuse&lt;br /&gt;
** understand major design patterns&lt;br /&gt;
** able to construct detailed object model&lt;br /&gt;
&lt;br /&gt;
* Implementation&lt;br /&gt;
** understand strategies for mapping models to code and to persistent storage&lt;br /&gt;
&lt;br /&gt;
* Testing&lt;br /&gt;
** unit testing:&lt;br /&gt;
*** be able to create test cases for blackbox and whitebox testing&lt;br /&gt;
** integration testing:&lt;br /&gt;
*** be able to select a testing integration strategy (top-down, bottom-up, sandwich)&lt;br /&gt;
*** be able to create test cases using stubs and drivers&lt;br /&gt;
** system testing:&lt;br /&gt;
*** be able to create test cases based on the functional model&lt;br /&gt;
&lt;br /&gt;
== Software Management==&lt;br /&gt;
&lt;br /&gt;
* understand basic project management issues, including team organization and risk management&lt;br /&gt;
&lt;br /&gt;
* understand the need for software management processes and tools, including:&lt;br /&gt;
** configuration management&lt;br /&gt;
** version management&lt;br /&gt;
** system building&lt;br /&gt;
** release management&lt;br /&gt;
&lt;br /&gt;
* understand the different software development life cycle models (waterfall, V-model, spiral, Unified Software Development Process)&lt;br /&gt;
&lt;br /&gt;
== Professional Ethics ==&lt;br /&gt;
&lt;br /&gt;
* be familiar with the principles of the ACM Software Engineering Code of Ethics&lt;br /&gt;
* be able to use a systematic process to analyze ethical dilemmas, determine possible courses of action, and select the most ethical course of action&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9123</id>
		<title>CR: COMP 2404 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_2404_Learning_Objectives&amp;diff=9123"/>
		<updated>2011-04-08T16:53:44Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Calendar Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
&lt;br /&gt;
In-depth study of the language C++ from a software engineering perspective, with emphasis on features supporting the development of large efficient and reusable systems. Topics include: encapsulation, templates, references, constructors and destructors, overloading, memory management, exception handling, and the standard template library.&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;
&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>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9122</id>
		<title>CR: COMP 3004 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9122"/>
		<updated>2011-04-08T16:52:27Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Theory and development of software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Practical experience with rudimentary software design techniques&lt;br /&gt;
** able to take an assignment description and identify the objects that are required&lt;br /&gt;
** able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
** able to identify opportunities for code reuse and implement them&lt;br /&gt;
** able to apply advanced object-oriented programming concepts, including polymorphism and generic programming&lt;br /&gt;
&lt;br /&gt;
* Practical experience in designing, implementing, testing and documenting small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Understand the theory of large scale software system development&lt;br /&gt;
** recognize the need for using a formal development process&lt;br /&gt;
** learn the phases of software development life cycle (requirements elicitation, analysis, high-level design, detailed design, implementation, testing)&lt;br /&gt;
** learn basics of project management&lt;br /&gt;
&lt;br /&gt;
* Gain the practical experience to:&lt;br /&gt;
** analyze a problem description for a large system&lt;br /&gt;
** apply each phase of the software development life cycle&lt;br /&gt;
** produce quality output for each phase&lt;br /&gt;
&lt;br /&gt;
* Prepare for a career as a software development professional:&lt;br /&gt;
** develop tools and strategies for working as a member of a team&lt;br /&gt;
** understand the Software Engineering Code of Ethics; learn to identify and analyze ethical dilemmas in a systematic fashion&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Development Life Cycle ==&lt;br /&gt;
&lt;br /&gt;
* Requirements elicitation&lt;br /&gt;
** able to extract functional and non-functional requirements from a problem description&lt;br /&gt;
** able to construct corresponding functional model, with UML use cases and scenarios&lt;br /&gt;
** able to incorporate traceability into every work product&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
** able to identify high level objects and categorize them into entity, boundary and control objects&lt;br /&gt;
** able to construct corresponding object model, including associations (inheritance, aggregation), dependencies and multiplicity, with UML class diagrams&lt;br /&gt;
** able to construct a dynamic model based on functional requirements, with UML sequence diagrams, state machines and/or activity diagrams&lt;br /&gt;
&lt;br /&gt;
* High-level system design&lt;br /&gt;
** understand different types of architectural styles (repository, client/server, peer-to-peer, MVC)&lt;br /&gt;
** able to break down analysis object model into subsystems, with UML component diagrams&lt;br /&gt;
** able to identify subsystem services and interfaces&lt;br /&gt;
&lt;br /&gt;
* Detailed object design&lt;br /&gt;
** understand the need for code reuse&lt;br /&gt;
** understand major design patterns&lt;br /&gt;
** able to construct detailed object model&lt;br /&gt;
&lt;br /&gt;
* Implementation&lt;br /&gt;
** understand strategies for mapping models to code and to persistent storage&lt;br /&gt;
&lt;br /&gt;
* Testing&lt;br /&gt;
** unit testing:&lt;br /&gt;
*** be able to create test cases for blackbox and whitebox testing&lt;br /&gt;
** integration testing:&lt;br /&gt;
*** be able to select a testing integration strategy (top-down, bottom-up, sandwich)&lt;br /&gt;
*** be able to create test cases using stubs and drivers&lt;br /&gt;
** system testing:&lt;br /&gt;
*** be able to create test cases based on the functional model&lt;br /&gt;
&lt;br /&gt;
== Software Management==&lt;br /&gt;
&lt;br /&gt;
* understand basic project management issues, including team organization and risk management&lt;br /&gt;
&lt;br /&gt;
* understand the need for software management processes and tools, including:&lt;br /&gt;
** configuration management&lt;br /&gt;
** version management&lt;br /&gt;
** system building&lt;br /&gt;
** release management&lt;br /&gt;
&lt;br /&gt;
* understand the different software development life cycle models (waterfall, V-model, spiral, Unified Software Development Process)&lt;br /&gt;
&lt;br /&gt;
== Professional Ethics ==&lt;br /&gt;
&lt;br /&gt;
* be familiar with the principles of the ACM Software Engineering Code of Ethics&lt;br /&gt;
* be able to use a systematic process to analyze ethical dilemmas, determine possible courses of action, and select the most ethical course of action&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9121</id>
		<title>CR: COMP 3004 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9121"/>
		<updated>2011-04-08T16:50:16Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Topic 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Theory and development of software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Practical experience with rudimentary software design techniques&lt;br /&gt;
** able to take an assignment description and identify the objects that are required&lt;br /&gt;
** able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
** able to identify opportunities for code reuse and implement them&lt;br /&gt;
** able to apply advanced object-oriented programming concepts, including polymorphism and generic programming&lt;br /&gt;
&lt;br /&gt;
* Practical experience in designing, implementing, testing and documenting small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Understand the theory of large scale software system development&lt;br /&gt;
** recognize the need for using a formal development process&lt;br /&gt;
** learn the phases of software development life cycle (requirements elicitation, analysis, high-level design, detailed design, implementation, testing)&lt;br /&gt;
** learn basics of project management&lt;br /&gt;
&lt;br /&gt;
* Gain the practical experience to:&lt;br /&gt;
** analyze a problem description for a large system&lt;br /&gt;
** apply each phase of the software development life cycle&lt;br /&gt;
** produce quality output for each phase&lt;br /&gt;
&lt;br /&gt;
* Prepare for a career as a software development professional:&lt;br /&gt;
** develop tools and strategies for working as a member of a team&lt;br /&gt;
** understand the Software Engineering Code of Ethics; learn to identify and analyze ethical dilemmas in a systematic fashion&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Development Life Cycle ==&lt;br /&gt;
&lt;br /&gt;
* Requirements elicitation&lt;br /&gt;
** able to extract functional and non-functional requirements from a problem description&lt;br /&gt;
** able to construct corresponding functional model, with UML use cases and scenarios&lt;br /&gt;
** able to incorporate traceability into every work product&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
** able to identify high level objects and categorize them into entity, boundary and control objects&lt;br /&gt;
** able to construct corresponding object model, including associations (inheritance, aggregation), dependencies and multiplicity, with UML class diagrams&lt;br /&gt;
** able to construct a dynamic model based on functional requirements, with UML sequence diagrams, state machines and/or activity diagrams&lt;br /&gt;
&lt;br /&gt;
* High-level system design&lt;br /&gt;
** understand different types of architectural styles (repository, client/server, peer-to-peer, MVC)&lt;br /&gt;
** able to break down analysis object model into subsystems, with UML component diagrams&lt;br /&gt;
** able to identify subsystem services and interfaces&lt;br /&gt;
&lt;br /&gt;
* Detailed object design&lt;br /&gt;
** understand the need for code reuse&lt;br /&gt;
** understand major design patterns&lt;br /&gt;
** able to construct detailed object model&lt;br /&gt;
&lt;br /&gt;
* Implementation&lt;br /&gt;
** understand strategies for mapping models to code and to persistent storage&lt;br /&gt;
&lt;br /&gt;
* Testing&lt;br /&gt;
** unit testing:&lt;br /&gt;
*** be able to create test cases for blackbox and whitebox testing&lt;br /&gt;
** integration testing:&lt;br /&gt;
*** be able to select a testing integration strategy (top-down, bottom-up, sandwich)&lt;br /&gt;
*** be able to create test cases using stubs and drivers&lt;br /&gt;
** system testing:&lt;br /&gt;
*** be able to create test cases based on the functional model&lt;br /&gt;
&lt;br /&gt;
== Software Management==&lt;br /&gt;
&lt;br /&gt;
* understand basic project management issues, including team organization and risk management&lt;br /&gt;
&lt;br /&gt;
* understand the need for software management processes and tools, including:&lt;br /&gt;
** configuration management&lt;br /&gt;
** version management&lt;br /&gt;
** system building&lt;br /&gt;
** release management&lt;br /&gt;
&lt;br /&gt;
* understand the different software development life cycle models (waterfall, V-model, spiral, Unified Software Development Process)&lt;/div&gt;</summary>
		<author><name>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9120</id>
		<title>CR: COMP 3004 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9120"/>
		<updated>2011-04-08T16:47:23Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Software Development Life Cycle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Theory and development of software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Practical experience with rudimentary software design techniques&lt;br /&gt;
** able to take an assignment description and identify the objects that are required&lt;br /&gt;
** able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
** able to identify opportunities for code reuse and implement them&lt;br /&gt;
** able to apply advanced object-oriented programming concepts, including polymorphism and generic programming&lt;br /&gt;
&lt;br /&gt;
* Practical experience in designing, implementing, testing and documenting small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Understand the theory of large scale software system development&lt;br /&gt;
** recognize the need for using a formal development process&lt;br /&gt;
** learn the phases of software development life cycle (requirements elicitation, analysis, high-level design, detailed design, implementation, testing)&lt;br /&gt;
** learn basics of project management&lt;br /&gt;
&lt;br /&gt;
* Gain the practical experience to:&lt;br /&gt;
** analyze a problem description for a large system&lt;br /&gt;
** apply each phase of the software development life cycle&lt;br /&gt;
** produce quality output for each phase&lt;br /&gt;
&lt;br /&gt;
* Prepare for a career as a software development professional:&lt;br /&gt;
** develop tools and strategies for working as a member of a team&lt;br /&gt;
** understand the Software Engineering Code of Ethics; learn to identify and analyze ethical dilemmas in a systematic fashion&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Development Life Cycle ==&lt;br /&gt;
&lt;br /&gt;
* Requirements elicitation&lt;br /&gt;
** able to extract functional and non-functional requirements from a problem description&lt;br /&gt;
** able to construct corresponding functional model, with UML use cases and scenarios&lt;br /&gt;
** able to incorporate traceability into every work product&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
** able to identify high level objects and categorize them into entity, boundary and control objects&lt;br /&gt;
** able to construct corresponding object model, including associations (inheritance, aggregation), dependencies and multiplicity, with UML class diagrams&lt;br /&gt;
** able to construct a dynamic model based on functional requirements, with UML sequence diagrams, state machines and/or activity diagrams&lt;br /&gt;
&lt;br /&gt;
* High-level system design&lt;br /&gt;
** understand different types of architectural styles (repository, client/server, peer-to-peer, MVC)&lt;br /&gt;
** able to break down analysis object model into subsystems, with UML component diagrams&lt;br /&gt;
** able to identify subsystem services and interfaces&lt;br /&gt;
&lt;br /&gt;
* Detailed object design&lt;br /&gt;
** understand the need for code reuse&lt;br /&gt;
** understand major design patterns&lt;br /&gt;
** able to construct detailed object model&lt;br /&gt;
&lt;br /&gt;
* Implementation&lt;br /&gt;
** understand strategies for mapping models to code and to persistent storage&lt;br /&gt;
&lt;br /&gt;
* Testing&lt;br /&gt;
** unit testing:&lt;br /&gt;
*** be able to create test cases for blackbox and whitebox testing&lt;br /&gt;
** integration testing:&lt;br /&gt;
*** be able to select a testing integration strategy (top-down, bottom-up, sandwich)&lt;br /&gt;
*** be able to create test cases using stubs and drivers&lt;br /&gt;
** system testing:&lt;br /&gt;
*** be able to create test cases based on the functional model&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>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9119</id>
		<title>CR: COMP 3004 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9119"/>
		<updated>2011-04-08T16:44:31Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Software Development Life Cycle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Theory and development of software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Practical experience with rudimentary software design techniques&lt;br /&gt;
** able to take an assignment description and identify the objects that are required&lt;br /&gt;
** able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
** able to identify opportunities for code reuse and implement them&lt;br /&gt;
** able to apply advanced object-oriented programming concepts, including polymorphism and generic programming&lt;br /&gt;
&lt;br /&gt;
* Practical experience in designing, implementing, testing and documenting small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Understand the theory of large scale software system development&lt;br /&gt;
** recognize the need for using a formal development process&lt;br /&gt;
** learn the phases of software development life cycle (requirements elicitation, analysis, high-level design, detailed design, implementation, testing)&lt;br /&gt;
** learn basics of project management&lt;br /&gt;
&lt;br /&gt;
* Gain the practical experience to:&lt;br /&gt;
** analyze a problem description for a large system&lt;br /&gt;
** apply each phase of the software development life cycle&lt;br /&gt;
** produce quality output for each phase&lt;br /&gt;
&lt;br /&gt;
* Prepare for a career as a software development professional:&lt;br /&gt;
** develop tools and strategies for working as a member of a team&lt;br /&gt;
** understand the Software Engineering Code of Ethics; learn to identify and analyze ethical dilemmas in a systematic fashion&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Development Life Cycle ==&lt;br /&gt;
&lt;br /&gt;
* Requirements elicitation&lt;br /&gt;
** able to extract functional and non-functional requirements from a problem description&lt;br /&gt;
** able to construct corresponding functional model, with UML use cases and scenarios&lt;br /&gt;
** able to incorporate traceability into every work product&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
** able to identify high level objects and categorize them into entity, boundary and control objects&lt;br /&gt;
** able to construct corresponding object model, including associations (inheritance, aggregation), dependencies and multiplicity, with UML class diagrams&lt;br /&gt;
** able to construct a dynamic model based on functional requirements, with UML sequence diagrams, state machines and/or activity diagrams&lt;br /&gt;
&lt;br /&gt;
* High-level system design&lt;br /&gt;
** understand the need for code reuse&lt;br /&gt;
** understand major design patterns&lt;br /&gt;
** understand different types of architectural styles (repository, client/server, peer-to-peer, MVC)&lt;br /&gt;
** able to break down analysis object model into subsystems, with UML component diagrams&lt;br /&gt;
** able to identify subsystem services and interfaces&lt;br /&gt;
&lt;br /&gt;
* Detailed object design&lt;br /&gt;
&lt;br /&gt;
* Implementation&lt;br /&gt;
&lt;br /&gt;
* Testing&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>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9118</id>
		<title>CR: COMP 3004 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9118"/>
		<updated>2011-04-08T16:40:51Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Software Development Life Cycle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Theory and development of software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Practical experience with rudimentary software design techniques&lt;br /&gt;
** able to take an assignment description and identify the objects that are required&lt;br /&gt;
** able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
** able to identify opportunities for code reuse and implement them&lt;br /&gt;
** able to apply advanced object-oriented programming concepts, including polymorphism and generic programming&lt;br /&gt;
&lt;br /&gt;
* Practical experience in designing, implementing, testing and documenting small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Understand the theory of large scale software system development&lt;br /&gt;
** recognize the need for using a formal development process&lt;br /&gt;
** learn the phases of software development life cycle (requirements elicitation, analysis, high-level design, detailed design, implementation, testing)&lt;br /&gt;
** learn basics of project management&lt;br /&gt;
&lt;br /&gt;
* Gain the practical experience to:&lt;br /&gt;
** analyze a problem description for a large system&lt;br /&gt;
** apply each phase of the software development life cycle&lt;br /&gt;
** produce quality output for each phase&lt;br /&gt;
&lt;br /&gt;
* Prepare for a career as a software development professional:&lt;br /&gt;
** develop tools and strategies for working as a member of a team&lt;br /&gt;
** understand the Software Engineering Code of Ethics; learn to identify and analyze ethical dilemmas in a systematic fashion&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Development Life Cycle ==&lt;br /&gt;
&lt;br /&gt;
* Requirements elicitation&lt;br /&gt;
** able to extract functional and non-functional requirements from a problem description&lt;br /&gt;
** able to construct corresponding functional model, with UML use cases and scenarios&lt;br /&gt;
** able to incorporate traceability into every work product&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
** able to identify high level objects and categorize them into entity, boundary and control objects&lt;br /&gt;
** able to construct corresponding object model, with UML class diagrams&lt;br /&gt;
&lt;br /&gt;
* High-level system design&lt;br /&gt;
&lt;br /&gt;
* Detailed object design&lt;br /&gt;
&lt;br /&gt;
* Implementation&lt;br /&gt;
&lt;br /&gt;
* Testing&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>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9117</id>
		<title>CR: COMP 3004 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9117"/>
		<updated>2011-04-08T16:39:36Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Topic 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Theory and development of software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Practical experience with rudimentary software design techniques&lt;br /&gt;
** able to take an assignment description and identify the objects that are required&lt;br /&gt;
** able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
** able to identify opportunities for code reuse and implement them&lt;br /&gt;
** able to apply advanced object-oriented programming concepts, including polymorphism and generic programming&lt;br /&gt;
&lt;br /&gt;
* Practical experience in designing, implementing, testing and documenting small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Understand the theory of large scale software system development&lt;br /&gt;
** recognize the need for using a formal development process&lt;br /&gt;
** learn the phases of software development life cycle (requirements elicitation, analysis, high-level design, detailed design, implementation, testing)&lt;br /&gt;
** learn basics of project management&lt;br /&gt;
&lt;br /&gt;
* Gain the practical experience to:&lt;br /&gt;
** analyze a problem description for a large system&lt;br /&gt;
** apply each phase of the software development life cycle&lt;br /&gt;
** produce quality output for each phase&lt;br /&gt;
&lt;br /&gt;
* Prepare for a career as a software development professional:&lt;br /&gt;
** develop tools and strategies for working as a member of a team&lt;br /&gt;
** understand the Software Engineering Code of Ethics; learn to identify and analyze ethical dilemmas in a systematic fashion&lt;br /&gt;
&lt;br /&gt;
=Topics=&lt;br /&gt;
&lt;br /&gt;
== Software Development Life Cycle ==&lt;br /&gt;
&lt;br /&gt;
* Requirements elicitation&lt;br /&gt;
** able to extract functional and non-functional requirements from a problem description&lt;br /&gt;
** able to construct corresponding functional model, with use cases and scenarios&lt;br /&gt;
** able to incorporate traceability into every work product&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
&lt;br /&gt;
* High-level system design&lt;br /&gt;
&lt;br /&gt;
* Detailed object design&lt;br /&gt;
&lt;br /&gt;
* Implementation&lt;br /&gt;
&lt;br /&gt;
* Testing&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>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9017</id>
		<title>CR: COMP 3004 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9017"/>
		<updated>2011-03-31T17:52:53Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Learning Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Theory and development of software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Practical experience with rudimentary software design techniques&lt;br /&gt;
** able to take an assignment description and identify the objects that are required&lt;br /&gt;
** able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
** able to identify opportunities for code reuse and implement them&lt;br /&gt;
** able to apply advanced object-oriented programming concepts, including polymorphism and generic programming&lt;br /&gt;
&lt;br /&gt;
* Practical experience in designing, implementing, testing and documenting small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Understand the theory of large scale software system development&lt;br /&gt;
** recognize the need for using a formal development process&lt;br /&gt;
** learn the phases of software development life cycle (requirements elicitation, analysis, high-level design, detailed design, implementation, testing)&lt;br /&gt;
** learn basics of project management&lt;br /&gt;
&lt;br /&gt;
* Gain the practical experience to:&lt;br /&gt;
** analyze a problem description for a large system&lt;br /&gt;
** apply each phase of the software development life cycle&lt;br /&gt;
** produce quality output for each phase&lt;br /&gt;
&lt;br /&gt;
* Prepare for a career as a software development professional:&lt;br /&gt;
** develop tools and strategies for working as a member of a team&lt;br /&gt;
** understand the Software Engineering Code of Ethics; learn to identify and analyze ethical dilemmas in a systematic fashion&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>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9007</id>
		<title>CR: COMP 3004 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9007"/>
		<updated>2011-03-30T14:22:16Z</updated>

		<summary type="html">&lt;p&gt;Claurend: /* Learning Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Theory and development of software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Practical experience with rudimentary software design techniques&lt;br /&gt;
** able to take an assignment description and identify the objects that are required&lt;br /&gt;
** able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
** able to identify opportunities for code reuse and implement them&lt;br /&gt;
** able to apply advanced object-oriented programming concepts, including polymorphism and generic programming&lt;br /&gt;
&lt;br /&gt;
* Practical experience in designing, implementing, testing and documenting small to medium size object-oriented programming assignments&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Learning Objectives=&lt;br /&gt;
&lt;br /&gt;
* Gain the practical experience to:&lt;br /&gt;
** analyze a problem description for a large system&lt;br /&gt;
** apply each phase of the software development life cycle&lt;br /&gt;
** produce quality output for each phase&lt;br /&gt;
&lt;br /&gt;
* Prepare for a career as a software development professional:&lt;br /&gt;
** develop tools and strategies for working as a member of a team&lt;br /&gt;
** understand the Software Engineering Code of Ethics; learn to identify and analyze ethical dilemmas in a systematic fashion&lt;br /&gt;
** understand the expectations of an employer&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>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9006</id>
		<title>CR: COMP 3004 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=9006"/>
		<updated>2011-03-30T13:55:26Z</updated>

		<summary type="html">&lt;p&gt;Claurend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Theory and development of software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&lt;br /&gt;
&lt;br /&gt;
=Assumed Background=&lt;br /&gt;
&lt;br /&gt;
* Practical experience with rudimentary software design techniques&lt;br /&gt;
** able to take an assignment description and identify the objects that are required&lt;br /&gt;
** able to apply concepts of encapsulation to organize the required objects&lt;br /&gt;
** able to identify opportunities for code reuse and implement them&lt;br /&gt;
** able to apply advanced object-oriented programming concepts, including polymorphism and generic programming&lt;br /&gt;
&lt;br /&gt;
* Practical experience in designing, implementing, testing and documenting small to medium size object-oriented programming assignments&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;
&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>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=8972</id>
		<title>CR: COMP 3004 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=8972"/>
		<updated>2011-03-28T18:14:47Z</updated>

		<summary type="html">&lt;p&gt;Claurend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Theory and development of software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&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;
&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>Claurend</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=8971</id>
		<title>CR: COMP 3004 Learning Objectives</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=CR:_COMP_3004_Learning_Objectives&amp;diff=8971"/>
		<updated>2011-03-28T18:14:05Z</updated>

		<summary type="html">&lt;p&gt;Claurend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Calendar Description=&lt;br /&gt;
Theory and development software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.&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;
&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>Claurend</name></author>
	</entry>
</feed>