<?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>COMP15111</Code>
  </UnitCode>
  <UnitTitle Applicant="Y" Label="Unit title" Student="Y">
    <Title>Fundamentals of Computer Architecture</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 1</Level>
  </UnitLevel>
  <StaffList Applicant="Y" Label="Teaching staff" RoleLabel="Course Unit Role" Student="Y">
    <StaffMember>
      <Name>Pavlos Petoumenos</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) ' First part HE study/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 module introduces fundamental concepts involved in Computer Architecture, which is the study and design of Computer Systems. Among others, the module discusses:&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how to talk about computer systems,&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how to think about computer systems,&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how are computers structured,&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;what is the language that computers natively speak,&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how programs are executed by the hardware,&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how to make programs faster and smaller, &amp;nbsp;&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how data (whether numbers, text, colours, or polygons) are represented in hardware using only binary digits, &amp;nbsp;&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how high-level program structures (like loops, functions, and objects) are translated into operations the computer understands, &amp;nbsp;&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how to build complex systems out of the simple operations provided by the computer, and what is the system software that allows us to run high-level programs &amp;nbsp;&lt;/p&gt;&lt;p&gt;Understanding the Fundamentals of Computer Architecture is essential for being able to reason about what exactly happens when we run a program. This is critical not only for students who are interested in hardware and low-level software, but also to any software developer who wants to be able to produce high performing programs and/or work across multiple software stack layers. In particular, business, finance, scientific programming, and AI frameworks rely on programmers that understand how programs actually work. &amp;nbsp;&lt;/p&gt;</Content>
  </MarketingOverview>
  <UnitOverview Applicant="" Label="Course unit overview" Student="Y">
    <Content>&lt;p&gt;The module introduces fundamental concepts involved in Computer Architecture, which is the study and design of Computer Systems. Among others, the module discusses:&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how to talk about computer systems,&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how to think about computer systems,&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how are computers structured,&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;what is the language that computers natively speak,&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how programs are executed by the hardware,&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how to make programs faster and smaller, &amp;nbsp;&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how data (whether numbers, text, colours, or polygons) are represented in hardware using only binary digits, &amp;nbsp;&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how high-level program structures (like loops, functions, and objects) are translated into operations the computer understands, &amp;nbsp;&lt;/p&gt;&lt;p&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;how to build complex systems out of the simple operations provided by the computer, and what is the system software that allows us to run high-level programs &amp;nbsp;&lt;/p&gt;&lt;p&gt;Understanding the Fundamentals of Computer Architecture is essential for being able to reason about what exactly happens when we run a program. This is critical not only for students who are interested in hardware and low-level software, but also to any software developer who wants to be able to produce high performing programs and/or work across multiple software stack layers. In particular, business, finance, scientific programming, and AI frameworks rely on programmers that understand how programs actually work. &amp;nbsp;&lt;/p&gt;</Content>
  </UnitOverview>
  <Aims Applicant="Y" Label="Aims" Student="Y">
    <Content>&lt;p&gt;This unit aims to introduce how computers and computer programs actually work. Much of the focus of the unit is on the language that computer hardware natively understands, the instruction set, and on how all types of information are represented in binary, using ones and zeros. The unit uses Python and the RISC-V processor to demonstrate the relationship between high-level programs and what happens in the processor when such programs are executed. Practical experience is gained in the laboratory through exercises which progressively expose features of the RISC-V instruction set.&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; Analyse the suitability of different computer architectures for data processing&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ILO 2:&lt;/strong&gt; Explain the transition of source code into machine code and compare the different ways for organising machine code&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ILO 3:&lt;/strong&gt; Propose and evaluate methods of representing different classes of data in a digital computer&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ILO 4:&lt;/strong&gt; Implement high-level code and data structures in assembly language and reason about the relative benefits of different design choices&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ILO 5:&lt;/strong&gt; Illustrate how the processor architecture enables and supports building a complete computing system&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>Project management</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;ul&gt;&lt;li&gt;Introduction: Processors, simple RISC-V programs, binary representations, fetch-execute cycle, registers.&lt;br/&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;RISC-V code for imperative constructs: Basic data types and expressions, data structures, control structures, functions, input/output, interrupts.&lt;br/&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;System software: Operating Systems, Assemblers, Compilers, Libraries, Loaders, Interpreters.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</Content>
  </Syllabus>
  <TeachingMethods Applicant="Y" Label="Teaching and learning methods" Student="Y">
    <Content>&lt;ul&gt;&lt;li&gt;Pre-recorded Lectures: 11 sets in total, 1 per week&lt;br/&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Live Lectures: 11 in total, 1 per week&lt;br/&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Laboratories: 4 labs in total, 1 per fortnight&lt;br/&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Example Exercises: 4 in total, 1 per fortnight&lt;br/&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Canvas Quizzes: A set of questions with each pre-recorded lecture&lt;br/&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Mentimeter Quizzes: 1 in each Live Lecture&lt;/li&gt;&lt;/ul&gt;</Content>
  </TeachingMethods>
  <AssessmentMethods Applicant="Y" Label="Assessment methods" Student="Y">
    <IntroText> </IntroText>
    <Method>
      <MethodId>0</MethodId>
      <MethodName>Other</MethodName>
      <MethodWeight>15%</MethodWeight>
    </Method>
    <Method>
      <MethodId>1</MethodId>
      <MethodName>Written exam</MethodName>
      <MethodWeight>50%</MethodWeight>
    </Method>
    <Method>
      <MethodId>8</MethodId>
      <MethodName>Practical skills assessment</MethodName>
      <MethodWeight>35%</MethodWeight>
    </Method>
    <OtherDescription>&lt;p&gt;Written Exam: 50%&lt;/p&gt;&lt;p&gt;Practical Exam: 35%&lt;/p&gt;&lt;p&gt;Laboratory Coursework: 15%&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</OtherDescription>
  </AssessmentMethods>
  <FeedbackMethods Applicant="Y" Label="Feedback methods" Student="Y">
    <Content>&lt;p&gt;Considering that different students respond and process feedback in different ways, this module implements several different approaches for giving feedback.&lt;/p&gt;&lt;p&gt;Students receive personalised feedback (one-to-one) mainly in the context of the lab exercises. Students can directly ask the instructors or the Teaching Assistants (typically post-graduate researchers in Computer Architecture) any question about the lab exercises and receive immediate high-quality feedback. If the teaching staff have time, they might also be able to provide feedback on any student question, even if it is not related to the lab. On top of that, the student will receive detailed written individual feedback for every submitted lab coursework. Another way for students to receive personalised feedback is by asking questions during the Live Lecture. To lower the barrier for asking questions, the Live Lectures allow anonymous questions submitted through Mentimeter. A final way is by asking questions in the module’s Discussion Board. The lecturers aim to answer questions within one working day, but typically within a few hours.&lt;/p&gt;&lt;p&gt;Additionally, the unit offers several opportunities for group feedback (one-to-many). Canvas quizzes allow students to get immediate feedback on their understanding of the material, including detailed answers explaining the correct answers. Live Mentimeter quizzes provide similar feedback opportunities with the added benefit that the lecturer can elaborate more if the students request that. For each set of Example and Lab Exercises, we release detailed group feedback explaining what the correct answers were and what common mistakes we found in student submissions. We compile similarly detailed group feedback for the exam, which we release soon after we have completed marking. To help students prepare for the exam and get early feedback about their expected exam performance, we also give them a mock exam quiz which follows a similar structure and question difficulty as the actual exam.&lt;/p&gt;</Content>
  </FeedbackMethods>
  <RequirementsList Applicant="Y" Label="Pre/co-requisites" Student="Y">
    <Requirement>
      <UnitCode></UnitCode>
      <UnitTitle></UnitTitle>
      <RequirementType></RequirementType>
      <Description></Description>
    </Requirement>
    <AdditionalRequirement></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;Borin, Edson. (2023). &lt;i&gt;An Introduction to Assembly Programming with RISC-V&lt;/i&gt;. Independently published (11 Oct 2023). ISBN:&lt;a href="https://www.librarysearch.manchester.ac.uk/discovery/search?query=isbn,contains,9786500158113&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; 9786500158113&lt;/a&gt;&lt;br&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Clements, Alan, 1948-. (2006). &lt;i&gt;Principles of computer hardware.&lt;/i&gt; Oxford University. ISBN:&lt;a href="https://www.librarysearch.manchester.ac.uk/discovery/search?query=isbn,contains,9780199273133&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; 9780199273133&lt;/a&gt;&lt;br&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Patterson, David A. (2021). &lt;i&gt;Computer organization and design RISC-V edition: the hardware software interface.&lt;/i&gt; Morgan Kaufmann. ISBN:&lt;a href="https://www.librarysearch.manchester.ac.uk/discovery/search?query=isbn,contains,9780128245583&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; 9780128245583&lt;/a&gt;&lt;br&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Harris, Sarah L. (2022). &lt;i&gt;Digital design and computer architecture&lt;/i&gt;. Morgan Kaufmann is an imprint of Elsevier. &amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Furber, Stephen B. (2000). &lt;i&gt;ARM system-on-chip architecture&lt;/i&gt; /. Addison-Wesley, an imprint of Pearson Education,. ISBN:&lt;a href="https://www.librarysearch.manchester.ac.uk/discovery/search?query=isbn,contains,0201675196&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; 0201675196&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>Assessment practical exam</ActivityType>
        <Hours>2</Hours>
      </ActivityHours>
      <ActivityHours>
        <ActivityType>Assessment written exam</ActivityType>
        <Hours>2</Hours>
      </ActivityHours>
      <ActivityHours>
        <ActivityType>Lectures</ActivityType>
        <Hours>22</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>62</Hours>
    </TotalHours>
  </StudyHours>
  <Notes Applicant="Y" Label="Additional notes" Student="Y">
    <Content>&lt;p&gt;For Independent study hours:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Pre-recorded Lectures: 11 hours&lt;br/&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Other: 60 hours&lt;/li&gt;&lt;/ul&gt;</Content>
  </Notes>
</CourseUnit>
