<?xml version="1.0" encoding="UTF-8"?>
<course>
  <academic-career-val type="integer">3</academic-career-val>
  <assumed-knowledge-and-required-skills>Assumed knowledge is equivalent to having done the equivalent of an introductory course on computer architecture, a course on concurrency, and intermediate programming and data structure courses.</assumed-knowledge-and-required-skills>
  <available-through-customised-graduate-programs type="integer">1</available-through-customised-graduate-programs>
  <co-teaching-course-id type="integer" nil="true"></co-teaching-course-id>
  <consent-description></consent-description>
  <consent-required type="boolean">false</consent-required>
  <corequisites></corequisites>
  <cost-considerations></cost-considerations>
  <course-code>COMP8320</course-code>
  <course-description>This course is a practical introduction to large-scale multicore computing. It covers the principles and practices of contemporary and emerging multicore computers, with an emphasis on their impact upon software engineering practice. It also has an emphasis on the state-of-the-art of research which is driving the rapid evolution of these systems.  </course-description>
  <course-group nil="true"></course-group>
  <eligibility></eligibility>
  <filled-flag type="integer">1</filled-flag>
  <first-year-course type="boolean">false</first-year-course>
  <id type="integer">10857</id>
  <incompatibility></incompatibility>
  <indicative-assessment>Assignments 30%, Research Presentation 20%, Final Exam 50%</indicative-assessment>
  <indicative-reading-list></indicative-reading-list>
  <is-active type="integer">1</is-active>
  <is-public type="integer">1</is-public>
  <learning-outcomes>Students will have an understanding of the issues involved in the design of hardware and programming languages for multicore systems, and be able to employ algorithms and data structures for applications that are efficient on large-scale systems. They will be proficient in at least two programming languages used on multicore systems, and will be able to evaluate their program&amp;#39;s reliability and scalability. Students will have an understanding of the research issues driving multicore technology, and be&amp;nbsp; able to assimilate and understand the impact of current literature.</learning-outcomes>
  <lock-version type="integer">0</lock-version>
  <long-title>Multicore Computing: Principles and Practice</long-title>
  <max-units type="integer">6</max-units>
  <min-units type="integer">6</min-units>
  <other-information></other-information>
  <preliminary-reading></preliminary-reading>
  <prescribed-texts>&lt;p&gt;Maurice Herlihy and Nir Shavit, &lt;em&gt;The Art of Multiprocessor Programming&lt;/em&gt;, Morgan Kaufmann, 2008.&lt;/p&gt; &lt;p&gt;Cameron Hughes and Tracey Hughes, &lt;em&gt;Professional Multicore Programming: Design and Implementation for C++ Developers, &lt;/em&gt;Wiley, 2008.&lt;/p&gt;</prescribed-texts>
  <progress-units type="integer">6</progress-units>
  <quota></quota>
  <recommended-courses>Assumed knowledge is equivalent to having done the equivalent of an introductory course on computer architecture, a course on concurrency, and intermediate programming and data structure courses.</recommended-courses>
  <requisite-statement>Enrolment in the Master of Computing</requisite-statement>
  <restricted-program-entry type="integer" nil="true"></restricted-program-entry>
  <short-title>Multicore Computing</short-title>
  <student-contribution-band>Band 2</student-contribution-band>
  <subject>Computer Science</subject>
  <technology-requirements></technology-requirements>
  <updated-by nil="true"></updated-by>
  <version type="integer" nil="true"></version>
  <workload>There will be one two-hour lecture per week (20 lectures in total), 4-6 two-hour tutorials (based on selected readings), and 6 two-hour practical laboratory sessions.  </workload>
  <year type="integer">2010</year>
</course>
