<?xml version="1.0" encoding="UTF-8"?>
<CourseUnit xmlns="http://www.manchester.ac.uk/CUICourseUnitDetails" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.manchester.ac.uk/CUICourseUnitDetails.xsd">
  <UnitCode Applicant="Y" Label="Unit code" Student="Y">
    <Code>COMP36111</Code>
  </UnitCode>
  <UnitTitle Applicant="Y" Label="Unit title" Student="Y">
    <Title>Algorithms and Complexity</Title>
  </UnitTitle>
  <MaxUnits Applicant="Y" Label="Credit rating" Student="Y">
    <Units>10</Units>
  </MaxUnits>
  <TeachingPeriods Applicant="Y" Label="Teaching period(s)" Student="Y">
    <Period>Semester 1</Period>
  </TeachingPeriods>
  <AcademicCareer Applicant="Y" Label="Academic career" Student="Y">
    <Value>Undergraduate</Value>
  </AcademicCareer>
  <UnitLevel Applicant="Y" Label="Unit level" Student="Y">
    <Level>Level 3</Level>
  </UnitLevel>
  <StaffList Applicant="Y" Label="Teaching staff" RoleLabel="Course Unit Role" Student="Y">
    <StaffMember>
      <Name>Ian Pratt-Hartmann</Name>
      <Role>Unit coordinator</Role>
    </StaffMember>
  </StaffList>
  <OfferedBy Applicant="Y" Label="Offered by" Student="Y">
    <OrganisationList>
      <Organisation>
        <OrgName>Department of Computer Science</OrgName>
      </Organisation>
    </OrganisationList>
    <GroupList>
      <Group>
        <GroupName></GroupName>
      </Group>
    </GroupList>
    <FheqLevels>
      <FheqLevel>
        <LevelNumber>1</LevelNumber>
        <LevelName>FHEQ level (Framework for Higher Education Qualifications) ' Last part of a Bachelors ' </LevelName>
      </FheqLevel>
    </FheqLevels>
    <Ects>
      <MaxUnits>European Credit Transfer &amp; Accumulation System Rating :   5.0</MaxUnits>
    </Ects>
  </OfferedBy>
  <MarketingOverview Applicant="Y" Label="Marketing Course unit overview" Student="">
    <Content>&lt;p&gt;The Unit constitutes a self-contained introduction to the theory of Computational Complexity. It assumes no pre-requisites other than a knowledge of basic algorithms and mathematical notation. The teaching will be exclusively by means of traditional lectures, supported by the prescribed course text.&lt;/p&gt;</Content>
  </MarketingOverview>
  <UnitOverview Applicant="" Label="Course unit overview" Student="Y">
    <Content>&lt;p&gt;The Unit is divided into two sections, of roughly equal weight. The first comprises a survey of some classic algorithms in Computer Science and analyses their complexity. The second section looks at the intrinsic complexity of problems (rather than of the algorithms for solving them), and comprises a basic introduction to the theory of computational complexity.&lt;/p&gt;</Content>
  </UnitOverview>
  <Aims Applicant="Y" Label="Aims" Student="Y">
    <Content>&lt;p&gt;The unit aims to make students familiar with the basic concepts and techniques of the theory of Computational Complexity.&amp;nbsp;&lt;/p&gt;</Content>
  </Aims>
  <LearningOutcomes Applicant="Y" Label="Learning outcomes" Student="Y">
    <Content>&lt;p&gt;&lt;strong&gt;ILO 1:&lt;/strong&gt; implement and analyse basic algorithms encountered in Computer Science (graph processing, string searching, flow networks, matching etc.)&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ILO 2: &lt;/strong&gt;recite the standard hierarchy of commonly-encountered complexity classes defined in relation to the Turing model of computation.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ILO 3: &lt;/strong&gt;determine the computational complexity of a range of problems.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ILO 4: &lt;/strong&gt;define the concepts of (problem-) reduction and computational hardness, and to develop familiarity with techniques for establishing lower complexity bounds---especially, NPTime-hardness.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ILO 5: &lt;/strong&gt;prove the most important and central theorems in Complexity Theory (Cook's theorem, Ladner's theorem, Savitch's theorem the Immerman-Szelepcsényi theorem).&lt;/p&gt;</Content>
  </LearningOutcomes>
  <Knowledge Applicant="Y" Label="Knowledge and understanding" Student="Y">
    <Content></Content>
  </Knowledge>
  <IntellectualSkills Applicant="Y" Label="Intellectual skills" Student="Y">
    <Content></Content>
  </IntellectualSkills>
  <PracticalSkills Applicant="Y" Label="Practical skills" Student="Y">
    <Content></Content>
  </PracticalSkills>
  <TransferableSkills Applicant="Y" Label="Transferable skills and personal qualities" Student="Y">
    <Content></Content>
  </TransferableSkills>
  <EmployabilitySkillsList Applicant="Y" Label="Employability skills" Student="Y">
    <Skill>
      <SkillId>Analytical skills</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
    <Skill>
      <SkillId>Innovation/creativity</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
    <Skill>
      <SkillId>Problem solving</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
  </EmployabilitySkillsList>
  <Syllabus Applicant="Y" Label="Syllabus" Student="Y">
    <Content>&lt;p&gt;Directed graphs---topological ordering and Kosaraju's algorithm; undirected graphs--- union find; the Grzegorczyk hierarchy; flow networks---optimal flows, min-cost max-flow; 2D matching; string-processing algorithms; Turing Machines and computability; the Entscheidungsproblem; measuring computational complexity; separation theorems; SAT, k-SAT, Horn-SAT and QBF-SAT; hardness and reductions---Cook's theorem; graph-theoretical problems---3-colouring, Hamiltonian and Eulerian circuits; the TSP; integer linear programming; Savitch's theorem and the Immerman-Szelepcsényi theorem.&lt;/p&gt;</Content>
  </Syllabus>
  <TeachingMethods Applicant="Y" Label="Teaching and learning methods" Student="Y">
    <Content>&lt;p&gt;Two 1-hour lectures per week; coursework to provide practice for examination; final lecture on how to pass the examination.&lt;/p&gt;</Content>
  </TeachingMethods>
  <AssessmentMethods Applicant="Y" Label="Assessment methods" Student="Y">
    <IntroText> </IntroText>
    <Method>
      <MethodId>1</MethodId>
      <MethodName>Written exam</MethodName>
      <MethodWeight>80%</MethodWeight>
    </Method>
    <Method>
      <MethodId>9</MethodId>
      <MethodName>Set exercise</MethodName>
      <MethodWeight>20%</MethodWeight>
    </Method>
  </AssessmentMethods>
  <FeedbackMethods Applicant="Y" Label="Feedback methods" Student="Y">
    <Content>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Through coursework in weeks 4, 7 and 10&lt;/p&gt;</Content>
  </FeedbackMethods>
  <RequirementsList Applicant="Y" Label="Pre/co-requisites" Student="Y">
    <Requirement>
      <UnitCode>COMP11120</UnitCode>
      <UnitTitle>Mathematical Techniques for Computer Science</UnitTitle>
      <RequirementType>Pre-Requisite</RequirementType>
      <Description>Compulsory</Description>
    </Requirement>
    <Requirement>
      <UnitCode>COMP11212</UnitCode>
      <UnitTitle>Fundamentals of Computation</UnitTitle>
      <RequirementType>Pre-Requisite</RequirementType>
      <Description>Compulsory</Description>
    </Requirement>
    <Requirement>
      <UnitCode>COMP26120</UnitCode>
      <UnitTitle>Algorithms and Data Structures</UnitTitle>
      <RequirementType>Pre-Requisite</RequirementType>
      <Description>Compulsory</Description>
    </Requirement>
    <Requirement>
      <UnitCode>MATH11121</UnitCode>
      <UnitTitle>Mathematical Foundations &amp; Analysis</UnitTitle>
      <RequirementType>Pre-Requisite</RequirementType>
      <Description>Compulsory</Description>
    </Requirement>
    <Requirement>
      <UnitCode>MATH10111</UnitCode>
      <UnitTitle>Foundations of Pure Mathematics B</UnitTitle>
      <RequirementType>Pre-Requisite</RequirementType>
      <Description>Compulsory</Description>
    </Requirement>
    <Requirement>
      <UnitCode>MATH10101</UnitCode>
      <UnitTitle>Foundations of Pure Mathematics A</UnitTitle>
      <RequirementType>Pre-Requisite</RequirementType>
      <Description>Compulsory</Description>
    </Requirement>
    <AdditionalRequirement>COMP26120, COMP11212, and COMP11120 are pre-requisites. For CM students, MATH11121 or equivalent is required.&lt;p&gt;&lt;span style="font-size:12px;"&gt;COMP26120, COMP11212, and COMP11120 are pre-requisites. For CM students, MATH11121 or equivalent is required.&lt;/span&gt;&lt;/p&gt;</AdditionalRequirement>
  </RequirementsList>
  <AcademicPrograms Applicant="Y" Label="Academic programmes" Student="Y">
    <AcademicProgram>
      <Program></Program>
      <Plan></Plan>
      <Level></Level>
      <Requirement></Requirement>
    </AcademicProgram>
  </AcademicPrograms>
  <FreeChoice Applicant="Y" Label="Available as a free choice unit?" Student="Y">
    <Content>Y</Content>
  </FreeChoice>
  <Accreditation Applicant="Y" Label="Accreditation" Student="Y">
    <Content></Content>
  </Accreditation>
  <RecommendedReading Applicant="Y" Label="Recommended reading" Student="Y">
    <Content>&lt;ol&gt;&lt;li&gt;Sipser, Michael. (2013). &lt;i&gt;Introduction to the theory of computatio&lt;/i&gt;n. Cengage Learning. ISBN:&lt;a href="https://www.librarysearch.manchester.ac.uk/discovery/search?query=isbn,contains,9781133187813&amp;amp;search_scope=MyInst_and_CI&amp;amp;sortby=rank&amp;amp;vid=44MAN_INST:MU_NUI&amp;amp;lang=en&amp;amp;mode=advanced&amp;amp;offset=0" target="_blank"&gt; 9781133187813&lt;/a&gt;&lt;br&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Arora, Sanjeev. (2009). &lt;i&gt;Computational complexity: a modern approach&lt;/i&gt;. Cambridge University Press. ISBN:&lt;a href="https://www.librarysearch.manchester.ac.uk/discovery/search?query=isbn,contains,9780511804090&amp;amp;search_scope=MyInst_and_CI&amp;amp;sortby=rank&amp;amp;vid=44MAN_INST:MU_NUI&amp;amp;lang=en&amp;amp;mode=advanced&amp;amp;offset=0" target="_blank"&gt; 9780511804090&lt;/a&gt;&lt;br&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Goodrich, Michael T. (2015).&lt;i&gt; Algorithm design and applications.&lt;/i&gt; Wiley. ISBN:&lt;a href="https://www.librarysearch.manchester.ac.uk/discovery/search?query=isbn,contains,9781119028482&amp;amp;search_scope=MyInst_and_CI&amp;amp;sortby=rank&amp;amp;vid=44MAN_INST:MU_NUI&amp;amp;lang=en&amp;amp;mode=advanced&amp;amp;offset=0" target="_blank"&gt; 9781119028482&lt;/a&gt;&lt;br&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Roughgarden, Tim. (2022). &lt;i&gt;Algorithms illuminated.&lt;/i&gt; Soundlikeyourself Publishing. ISBN:&lt;a href="https://www.librarysearch.manchester.ac.uk/discovery/search?query=isbn,contains,9780999282984&amp;amp;search_scope=MyInst_and_CI&amp;amp;sortby=rank&amp;amp;vid=44MAN_INST:MU_NUI&amp;amp;lang=en&amp;amp;mode=advanced&amp;amp;offset=0" target="_blank"&gt; 9780999282984&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;</Content>
  </RecommendedReading>
  <StudyHours Applicant="Y" Label="Study hours" Student="Y">
    <IntroText> </IntroText>
    <ScheduledHours Applicant="Y" Label="Scheduled activity hours" Student="Y">
      <ActivityHours>
        <ActivityType>Lectures</ActivityType>
        <Hours>22</Hours>
      </ActivityHours>
    </ScheduledHours>
    <PlacementHours Applicant="Y" Label="Placement hours" Student="Y">
      <ActivityHours>
        <ActivityType></ActivityType>
        <Hours>0</Hours>
      </ActivityHours>
    </PlacementHours>
    <TotalHours Applicant="Y" Label="Independent study hours" Student="Y">
      <Hours>78</Hours>
    </TotalHours>
  </StudyHours>
  <Notes Applicant="Y" Label="Additional notes" Student="Y">
    <Content></Content>
  </Notes>
</CourseUnit>
