<?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>PHYS30762</Code>
  </UnitCode>
  <UnitTitle Applicant="Y" Label="Unit title" Student="Y">
    <Title>Object-Oriented Programming in C++</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 2</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>Caterina Doglioni</Name>
      <Role>Unit coordinator</Role>
    </StaffMember>
    <StaffMember>
      <Name>Charanjit Kaur</Name>
      <Role>Unit coordinator</Role>
    </StaffMember>
  </StaffList>
  <OfferedBy Applicant="Y" Label="Offered by" Student="Y">
    <OrganisationList>
      <Organisation>
        <OrgName>Department of Physics &amp; Astronomy</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;Object-Oriented Programming in C++&lt;/p&gt;</Content>
  </MarketingOverview>
  <UnitOverview Applicant="" Label="Course unit overview" Student="Y">
    <Content>&lt;p&gt;Object-Oriented Programming in C++&lt;/p&gt;</Content>
  </UnitOverview>
  <Aims Applicant="Y" Label="Aims" Student="Y">
    <Content>&lt;p&gt;&lt;span class="cf0"&gt;To learn the fundamentals of Object Oriented Analysis and Design. To become fluent in the C++ programming language. To develop good programming style. To be able to apply coding quickly and efficiently to realistic applications.&lt;/span&gt;&lt;/p&gt;</Content>
  </Aims>
  <LearningOutcomes Applicant="Y" Label="Learning outcomes" Student="Y">
    <Content>&lt;div&gt;On completion successful students will be able to:&lt;/div&gt;&lt;div&gt;1. Write C++ code that is compact and intelligible&lt;/div&gt;&lt;div&gt;2. Design and write programs in C++ using a wide range of ANSI standard features&lt;/div&gt;&lt;div&gt;3. Locate data structures and algorithms in the standard library to simplify coding&lt;/div&gt;&lt;div&gt;4. Select and use appropriate object-orientation techniques to solve new problems&lt;/div&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></SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
  </EmployabilitySkillsList>
  <Syllabus Applicant="Y" Label="Syllabus" Student="Y">
    <Content>&lt;p class="pf0"&gt;&lt;span class="cf0"&gt;1. The basic properties of C++: constants; boolean data-types; pointers and references; dynamic memory allocation; function overloading.&lt;/span&gt;&lt;/p&gt;&lt;p class="pf0"&gt;&lt;span class="cf0"&gt;2. Data streams: standard input/output; managing files.&lt;/span&gt;&lt;/p&gt;&lt;p class="pf0"&gt;&lt;span class="cf0"&gt;3. Classes and objects: encapsulation; access functions; constructors and destructors; arrays of objects; friends; operator overloading; assignment operator; shallow and deep copying; this pointer. Move semantics.&lt;/span&gt;&lt;/p&gt;&lt;p class="pf0"&gt;&lt;span class="cf0"&gt;4. Inheritance: base and derived classes; access specifiers; overriding functions; multiple inheritance.&lt;/span&gt;&lt;/p&gt;&lt;p class="pf0"&gt;&lt;span class="cf0"&gt;5. Polymorphism: base class pointers; abstract base classes; virtual and pure virtual functions; interface classes.&lt;/span&gt;&lt;/p&gt;&lt;p class="pf0"&gt;&lt;span class="cf0"&gt;6. Structuring programs: header files; multiple source files; namespaces.&lt;/span&gt;&lt;/p&gt;&lt;p class="pf0"&gt;&lt;span class="cf0"&gt;7. Advanced C++ features: static data; templates; runtime type checking; error handling and exceptions. Lambda closures.&lt;/span&gt;&lt;/p&gt;&lt;p class="pf0"&gt;&lt;span class="cf0"&gt;8.The C++ Standard Library; the boost library; other libraries.&lt;/span&gt;&lt;/p&gt;</Content>
  </Syllabus>
  <TeachingMethods Applicant="Y" Label="Teaching and learning methods" Student="Y">
    <Content></Content>
  </TeachingMethods>
  <AssessmentMethods Applicant="Y" Label="Assessment methods" Student="Y">
    <IntroText> </IntroText>
    <Method>
      <MethodId>0</MethodId>
      <MethodName>Other</MethodName>
      <MethodWeight>100%</MethodWeight>
    </Method>
    <OtherDescription>&lt;p&gt;6 short coding assignments, marked on code quality; One larger coding project with a short report.&lt;/p&gt;&lt;p&gt;Standard late penalties apply for all assessments&amp;nbsp;&lt;/p&gt;</OtherDescription>
  </AssessmentMethods>
  <FeedbackMethods Applicant="Y" Label="Feedback methods" Student="Y">
    <Content>&lt;p&gt;Written feedback will be offered for the short assignments, and demonstrators will be available to give additional oral feedback on the short assignments. Written feedback will be provided with final project marks.&lt;/p&gt;</Content>
  </FeedbackMethods>
  <RequirementsList Applicant="Y" Label="Pre/co-requisites" Student="Y">
    <Requirement>
      <UnitCode></UnitCode>
      <UnitTitle></UnitTitle>
      <RequirementType></RequirementType>
      <Description></Description>
    </Requirement>
  </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;div&gt;	A. Koenig and B. E. Moo. Accelerated C++ (Addison Wesley, 2000)&lt;/div&gt;&lt;div&gt;	Or any of the many C++ textbooks listed in the library reading list&lt;/div&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>10</Hours>
      </ActivityHours>
      <ActivityHours>
        <ActivityType>Practical classes &amp; workshops</ActivityType>
        <Hours>10</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>80</Hours>
    </TotalHours>
  </StudyHours>
  <Notes Applicant="Y" Label="Additional notes" Student="Y">
    <Content></Content>
  </Notes>
</CourseUnit>
