<?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>COMP63502</Code>
  </UnitCode>
  <UnitTitle Applicant="Y" Label="Unit title" Student="Y">
    <Title>Data Engineering Technologies</Title>
  </UnitTitle>
  <MaxUnits Applicant="Y" Label="Credit rating" Student="Y">
    <Units>15</Units>
  </MaxUnits>
  <TeachingPeriods Applicant="Y" Label="Teaching period(s)" Student="Y">
    <Period>Semester 2</Period>
  </TeachingPeriods>
  <AcademicCareer Applicant="Y" Label="Academic career" Student="Y">
    <Value>Postgraduate Taught</Value>
  </AcademicCareer>
  <UnitLevel Applicant="Y" Label="Unit level" Student="Y">
    <Level>Level 6</Level>
  </UnitLevel>
  <StaffList Applicant="Y" Label="Teaching staff" RoleLabel="Course Unit Role" Student="Y">
    <StaffMember>
      <Name>Jiaoyan Chen</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) ' Masters/Integrated Masters P4 ' </LevelName>
      </FheqLevel>
    </FheqLevels>
    <Ects>
      <MaxUnits>European Credit Transfer &amp; Accumulation System Rating :   7.5</MaxUnits>
    </Ects>
  </OfferedBy>
  <MarketingOverview Applicant="Y" Label="Marketing Course unit overview" Student="">
    <Content>&lt;p&gt;In the world of data analytics, preparing and managing data of often the most time-consuming task --- estimated to take up to 80% of a whole workload by many reports and surveys. This unit focuses on the essential data engineering techniques that make large-scale data processing and analysis possible and efficient. Students will explore the foundational concepts and tools used in modern data engineering, including scalable data storage systems, advanced querying methods, parallel and distributed data processing, data interpretation, and effective data retrieval strategies. Emphasis is placed not just on theory, but on hands-on, practical skills that prepare students to work with real-world data.&lt;/p&gt;</Content>
  </MarketingOverview>
  <UnitOverview Applicant="" Label="Course unit overview" Student="Y">
    <Content>&lt;p&gt;Data engineering can be considered to follow a lifecycle that captures activities such as data ingestion, storage, transformation and dissemination. Data engineering is a long standing, substantial and evolving discipline, and many technologies have been developed that can underpin different steps in the data engineering lifecycle, addressing challenges such as data heterogeneity and scale. The judicious selection and effective deployment of suitable specialised technologies can have a significant impact of the success of data engineering projects.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;In this unit, we explore some of these technologies, including those that support scalability, data curation and data analysis. Scalability is a cross-cutting concern of relevance to multiple stages in a data engineering pipeline. In relation to scalability, we investigate techniques for storage and indexing, algorithmic strategies for large data sets, query processing and big data platforms. Data curation and analysis applies technologies for managing data complexity, including inconsistent representations. In relation to data curation and analysis, we investigate techniques for data representation, data integration and data retrieval.&lt;/p&gt;</Content>
  </UnitOverview>
  <Aims Applicant="Y" Label="Aims" Student="Y">
    <Content>&lt;p&gt;This unit aims to provide students with exposure to and experience of specialised technologies that support data storage, access, integration and use at scale. Data engineering relates to the processes, tools and techniques required to maximise the value that can be obtained from the data resources an individual or organisation has access to. Many of the challenges faced by data engineers have been prominent for a considerable period, and have benefited from research and development that has given rise to specialised techniques for obtaining value from data. This unit aims to provide potential data engineers with the ability to select, evaluate and apply data engineering technologies to problems that involve complex data at scale.&lt;/p&gt;</Content>
  </Aims>
  <LearningOutcomes Applicant="Y" Label="Learning outcomes" Student="Y">
    <Content>&lt;p&gt;1. Describe technologies that underpin scalability in data intensive systems and their properties.&lt;/p&gt;&lt;p&gt;2. Describe and discuss data integration and data retrieval techniques.&lt;/p&gt;&lt;p&gt;3. Compare and contrast approaches to the development of data intensive applications.&lt;/p&gt;&lt;p&gt;4. Analyse how different algorithms and data structures affect data intensive system performance.&lt;/p&gt;&lt;p&gt;5. Construct and apply different data representations that support data curation and analysis.&lt;/p&gt;&lt;p&gt;6. Design experiments for comparing and analysing different data engineering techniques.&lt;/p&gt;&lt;p&gt;7. Write reports that analyse properties of data engineering techniques.&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>Oral communication</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
    <Skill>
      <SkillId>Problem solving</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
    <Skill>
      <SkillId>Research</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
    <Skill>
      <SkillId>Written communication</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
  </EmployabilitySkillsList>
  <Syllabus Applicant="Y" Label="Syllabus" Student="Y">
    <Content>&lt;p&gt;Part I: Techniques for Scalability&lt;br/&gt;&lt;br/&gt;Week 1: Storage: Storing Datasets for Scalability&amp;nbsp;&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; File Systems&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Storage structures&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Indexes on disk and in memory&lt;br/&gt;&lt;br/&gt;Week 2: Algorithms&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Algorithmic strategies&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Modelling algorithm behaviour&lt;br/&gt;&lt;br/&gt;Week 3: Queries&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Query processing&amp;nbsp;&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Modelling query properties&lt;br/&gt;&lt;br/&gt;Week 4: Parallelism/Distribution&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Architectures&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Paradigms&lt;br/&gt;&lt;br/&gt;Week 5: Platforms&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Batch&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Interative&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Streaming&lt;br/&gt;&lt;br/&gt;Week 6:&amp;nbsp;&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Complete laboratory work.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;Part I: Data Curation and Analysis&lt;br/&gt;&lt;br/&gt;Week 7: Graph-based Data Analysis&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Graph database&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Graph query&lt;br/&gt;&lt;br/&gt;Week 8: Table Representation&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Models and learning methods&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Discussion and applications&lt;br/&gt;&lt;br/&gt;Week 9: Semantic Table Interpretation&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Entity annotation&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Type annotation&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Attribute and relation annotation&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Table to graph transformation&lt;br/&gt;&lt;br/&gt;Week 10: Data Integration&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Schema inference&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Entity alignment&lt;br/&gt;&lt;br/&gt;Week 11: Advanced Topics and Recent Development&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Question answering&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Retrieval augmented generation&lt;br/&gt;&lt;br/&gt;Week 12:&amp;nbsp;&lt;br/&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Complete laboratory work&lt;br/&gt;&lt;br/&gt;&lt;span style="font-family:&amp;quot;Arial&amp;quot;,sans-serif;"&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&amp;nbsp;&lt;/ul&gt;</Content>
  </Syllabus>
  <TeachingMethods Applicant="Y" Label="Teaching and learning methods" Student="Y">
    <Content>&lt;p class="MsoNormal"&gt;The unit will adopt a blended learning approach, with videos and quizzes for students to engage with asynchronously, in addition to synchronous activities in the form of: (i) workshops that include both presentation of new material and problem solving; (ii) laboratory sessions that explore specific techniques in more detail and apply them in practice.&lt;span style="color:black;"&gt;&lt;span style="font-family:&amp;quot;Arial&amp;quot;,sans-serif;font-size:11.0pt;layout-grid-mode:line;mso-bidi-font-size:12.0pt;"&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&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>2</MethodId>
      <MethodName>Written assignment (inc essay)</MethodName>
      <MethodWeight>50%</MethodWeight>
    </Method>
  </AssessmentMethods>
  <FeedbackMethods Applicant="Y" Label="Feedback methods" Student="Y">
    <Content>&lt;p&gt;Summative lab-based coursework: individual rubric-based feedback after marking.&lt;br/&gt;Formative weekly quizzes: Autograded quizzes providing immediate feedback.&lt;br/&gt;Exam: cohort level feedback after marking.&lt;br/&gt;&amp;nbsp;&lt;/p&gt;</Content>
  </FeedbackMethods>
  <RequirementsList Applicant="Y" Label="Pre/co-requisites" Student="Y">
    <Requirement>
      <UnitCode>COMP63301</UnitCode>
      <UnitTitle>Data Engineering Concepts</UnitTitle>
      <RequirementType>Pre-Requisite</RequirementType>
      <Description>Recommended</Description>
    </Requirement>
    <AdditionalRequirement>&lt;p class="MsoNormal"&gt;Prior knowledge of machine learning is needed&lt;p&gt;&lt;/p&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>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;Martin Kleppmann, Designing Data-Intensive Applications, O’Reilly, 2017.&lt;/p&gt;&lt;p&gt;Jure Leskovec, Anand Rajaraman, Jeff Ullman, Mining of Massive Datasets, 3rd Edition, Cambridge University Press, 2020.&lt;/p&gt;&lt;p&gt;Joe Reis and Matt Housley, Fundamentals of Data Engineering, O’Reilly, 2022.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&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>1.5</Hours>
      </ActivityHours>
      <ActivityHours>
        <ActivityType>Lectures</ActivityType>
        <Hours>20</Hours>
      </ActivityHours>
      <ActivityHours>
        <ActivityType>Practical classes &amp; workshops</ActivityType>
        <Hours>12</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>116.5</Hours>
    </TotalHours>
  </StudyHours>
  <Notes Applicant="Y" Label="Additional notes" Student="Y">
    <Content></Content>
  </Notes>
</CourseUnit>
