<?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>COMP26120</Code>
  </UnitCode>
  <UnitTitle Applicant="Y" Label="Unit title" Student="Y">
    <Title>Algorithms and Data Structures</Title>
  </UnitTitle>
  <MaxUnits Applicant="Y" Label="Credit rating" Student="Y">
    <Units>20</Units>
  </MaxUnits>
  <TeachingPeriods Applicant="Y" Label="Teaching period(s)" Student="Y">
    <Period>Full year</Period>
  </TeachingPeriods>
  <AcademicCareer Applicant="Y" Label="Academic career" Student="Y">
    <Value>Undergraduate</Value>
  </AcademicCareer>
  <UnitLevel Applicant="Y" Label="Unit level" Student="Y">
    <Level>Level 2</Level>
  </UnitLevel>
  <StaffList Applicant="Y" Label="Teaching staff" RoleLabel="Course Unit Role" Student="Y">
    <StaffMember>
      <Name>Louise Dennis</Name>
      <Role>Unit coordinator</Role>
    </StaffMember>
  </StaffList>
  <OfferedBy Applicant="Y" Label="Offered by" Student="Y">
    <OrganisationList>
      <Organisation>
        <OrgName></OrgName>
      </Organisation>
    </OrganisationList>
    <GroupList>
      <Group>
        <GroupName></GroupName>
      </Group>
    </GroupList>
    <FheqLevels>
      <FheqLevel>
        <LevelNumber>1</LevelNumber>
        <LevelName>FHEQ level (Framework for Higher Education Qualifications) ' Middle part of Bachelors ' </LevelName>
      </FheqLevel>
    </FheqLevels>
    <Ects>
      <MaxUnits>European Credit Transfer &amp; Accumulation System Rating :   10.0</MaxUnits>
    </Ects>
  </OfferedBy>
  <MarketingOverview Applicant="Y" Label="Marketing Course unit overview" Student="">
    <Content>&lt;p&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:11pt;"&gt;This course unit covers fundamental material in Computer Science concerning algorithms and their correctness and performance. It is a two-semester practical course, with some video and reading resources, considerable practical experience and lab support. The student is expected to seek out material to support work on the course, thus contributing to developing "algorithmic literacy". The implementation of algorithms is illustrated in C, Java and Python.&lt;/span&gt;&lt;/p&gt;</Content>
  </MarketingOverview>
  <UnitOverview Applicant="" Label="Course unit overview" Student="Y">
    <Content>&lt;p&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:11pt;"&gt;This course unit covers fundamental material in Computer Science concerning algorithms and their correctness and performance. It is a two-semester practical course, with some video and reading resources, considerable practical experience and lab support. The student is expected to seek out material to support work on the course, thus contributing to developing "algorithmic literacy". The implementation of algorithms is illustrated in C, Java and Python.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Calibri,sans-serif;font-size:11pt;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoPlainText"&gt;&amp;nbsp;&lt;/p&gt;</Content>
  </UnitOverview>
  <Aims Applicant="Y" Label="Aims" Student="Y">
    <Content>&lt;p&gt;To make best use of available learning time by encouraging active learning and by transmitting information in the most effective ways.&lt;/p&gt;&lt;p&gt;To make students aware of the importance of algorithmic concerns in real-life Computer Science situations.&lt;/p&gt;&lt;p&gt;To emphasise practical concerns, rather than mathematical analysis.&lt;/p&gt;&lt;p&gt;To become confident with a range of data structures and algorithms and able to apply them in realistic tasks.&lt;/p&gt;</Content>
  </Aims>
  <LearningOutcomes Applicant="Y" Label="Learning outcomes" Student="Y">
    <Content>&lt;p&gt;&lt;wbr style="color: rgb(0, 0, 0); font-family: Times New Roman; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;" /&gt;&lt;/p&gt;&lt;div&gt;	&lt;ul&gt;		&lt;li&gt;			ILO 1&lt;span style="white-space:pre"&gt; &lt;/span&gt;Analyse problems to identify and implement the most appropriate algorithmic solution&lt;/li&gt;		&lt;li&gt;			ILO 2&lt;span style="white-space:pre"&gt; &lt;/span&gt;Define standard notions of asymptotic complexity and use these to reason about the complexity of algorithms&lt;/li&gt;		&lt;li&gt;			ILO 3&lt;span style="white-space:pre"&gt; &lt;/span&gt;Use pseudocode to represent algorithms and informally reason about their correctness&amp;nbsp;&lt;/li&gt;		&lt;li&gt;			ILO 4&lt;span style="white-space:pre"&gt; &lt;/span&gt;Recall the definitions and representations of basic data structures and the complexity of the operations on them&lt;/li&gt;		&lt;li&gt;			ILO 5&lt;span style="white-space:pre"&gt; &lt;/span&gt;Explain, using examples of real-world applications, standard algorithmic problems coming from sorting and searching on different data structures, operations on graphs, and number theory&lt;/li&gt;		&lt;li&gt;			ILO 6&lt;span style="white-space:pre"&gt; &lt;/span&gt;Identify from a set of taught algorithms, which algorithm should apply in a given situation, explain how it should be applied, and compare the solution to possible alternatives&amp;nbsp;&lt;/li&gt;		&lt;li&gt;			ILO 7&lt;span style="white-space:pre"&gt; &lt;/span&gt;Explain the algorithmic techniques such as divide-and-conquer, dynamic programming, greedy algorithms, and linear programming, discuss when they are appropriate, and apply them to solve problems&lt;/li&gt;		&lt;li&gt;			ILO 8&lt;span style="white-space:pre"&gt; &lt;/span&gt;Recall and explain the notions of tractability and NP-completeness, with a particular focus on classical NP-complete problems, and apply these to demonstrate NP-completeness of new problems&lt;/li&gt;	&lt;/ul&gt;	&lt;div&gt;		&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&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>
    <Skill>
      <SkillId>Written communication</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
  </EmployabilitySkillsList>
  <Syllabus Applicant="Y" Label="Syllabus" Student="Y">
    <Content>&lt;p&gt;Algorithms - what they are and how to express them (in pseudocode and selected programming languages: Java, C or Python).&lt;/p&gt;&lt;p&gt;Practical experience in devising, assessing and using algorithms:&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;considerable practice in algorithmic problem solving for realistic problems&lt;/li&gt;	&lt;li&gt;examples from a wide range of application areas&lt;/li&gt;	&lt;li&gt;finding appropriate algorithms and data-structures&lt;/li&gt;	&lt;li&gt;inventing appropriate algorithms and data-structures&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Practical experience in &amp;#39;algorithmic literacy&amp;#39; - knowing how to use the extensive literature on the subject, recognising what algorithms to use in applications and assessing their utility.&lt;/p&gt;&lt;p&gt;A range of basic data structures: arrays, lists, trees (including ordered and balanced trees and heaps), and various kinds of graphs.&amp;nbsp; Representations of basic data structures in programming languages.&lt;/p&gt;&lt;p&gt;A range of basic algorithms: searching and sorting algorithms, tree traversal and manipulation algorithms, some basic graph algorithms. Other algorithmic areas will be explored through practical examples.&lt;/p&gt;&lt;p&gt;An introduction to algorithmic performance: space and time requirements, worst-case, average-case and best case estimates. Practical experience and techniques for measuring and predicting performance: Counting operations.&lt;/p&gt;&lt;p&gt;Scaling and some common rates of growth.&lt;/p&gt;&lt;p&gt;Reasoning about algorithms - experience in informally reasoning about algorithms to establish correctness.&lt;/p&gt;</Content>
  </Syllabus>
  <TeachingMethods Applicant="Y" Label="Teaching and learning methods" Student="Y">
    <Content>&lt;p&gt;&lt;strong&gt;Asynchronous material (directed videos and reading):&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;44 hours in total, 2 hours of study per week&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Synchronous Q&amp;amp;A Sessions&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;22 in total, 1 per week&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Laboratories&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;44 hours in total, 44 1-hour sessions, 2 per week&lt;/p&gt;&lt;div&gt;Examinable content is introduced in both asynchronous material and lab exercises&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Formative Blackboard quizzes each week provide early feedback on examinable concepts&lt;/div&gt;</Content>
  </TeachingMethods>
  <AssessmentMethods Applicant="Y" Label="Assessment methods" Student="Y">
    <IntroText> </IntroText>
    <Method>
      <MethodId>1</MethodId>
      <MethodName>Written exam</MethodName>
      <MethodWeight>50%</MethodWeight>
    </Method>
    <Method>
      <MethodId>8</MethodId>
      <MethodName>Practical skills assessment</MethodName>
      <MethodWeight>50%</MethodWeight>
    </Method>
  </AssessmentMethods>
  <FeedbackMethods Applicant="Y" Label="Feedback methods" Student="Y">
    <Content>&lt;p&gt;Feedback is via a variety of methods. Immediate feedback is provided in laboratory sessions. There are Blackboard quizzes associated with all material to track understanding. Summative feedback on assessed coursework is provided on individual scripts within Blackboard.&lt;/p&gt;</Content>
  </FeedbackMethods>
  <RequirementsList Applicant="Y" Label="Pre/co-requisites" Student="Y">
    <Requirement>
      <UnitCode>COMP16321</UnitCode>
      <UnitTitle>Introduction to Programming 1</UnitTitle>
      <RequirementType>Pre-Requisite</RequirementType>
      <Description>Compulsory</Description>
    </Requirement>
    <Requirement>
      <UnitCode>COMP16412</UnitCode>
      <UnitTitle>Introduction to Programming 2</UnitTitle>
      <RequirementType>Pre-Requisite</RequirementType>
      <Description>Compulsory</Description>
    </Requirement>
    <AdditionalRequirement>&lt;p&gt;Alternative equivalent knowledge of C, Java or Python accepted.&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>N</Content>
  </FreeChoice>
  <Accreditation Applicant="Y" Label="Accreditation" Student="Y">
    <Content></Content>
  </Accreditation>
  <RecommendedReading Applicant="Y" Label="Recommended reading" Student="Y">
    <Content>&lt;p&gt;&lt;a href="http://studentnet.cs.manchester.ac.uk/syllabus/index.php?code=COMP26120&amp;amp;year=2020" target="_blank"&gt;COMP26120 reading list&lt;/a&gt; can be found on the Department of Computer Science website for current students.&lt;/p&gt;</Content>
  </RecommendedReading>
  <StudyHours Applicant="Y" Label="Study hours" Student="Y">
    <IntroText> </IntroText>
    <ScheduledHours Applicant="Y" Label="Scheduled activity hours" Student="Y">
      <ActivityHours>
        <ActivityType>Assessment written exam</ActivityType>
        <Hours>4</Hours>
      </ActivityHours>
      <ActivityHours>
        <ActivityType>Lectures</ActivityType>
        <Hours>22</Hours>
      </ActivityHours>
      <ActivityHours>
        <ActivityType>Practical classes &amp; workshops</ActivityType>
        <Hours>44</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>130</Hours>
    </TotalHours>
  </StudyHours>
  <Notes Applicant="Y" Label="Additional notes" Student="Y">
    <Content>&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:14px;"&gt;Course unit materials&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://studentnet.cs.manchester.ac.uk/ugt/syllabus.php"&gt;Links to course unit teaching materials&lt;/a&gt; can be found on the School of Computer Science website for current students.&lt;/p&gt;</Content>
  </Notes>
</CourseUnit>
