<?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>COMP16321</Code>
  </UnitCode>
  <UnitTitle Applicant="Y" Label="Unit title" Student="Y">
    <Title>Introduction to Programming 1</Title>
  </UnitTitle>
  <MaxUnits Applicant="Y" Label="Credit rating" Student="Y">
    <Units>20</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>Gareth Henshall</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) ' First part HE study/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;This course offers a comprehensive introduction to programming through Python, one of the most accessible and widely used programming languages today. Students will explore core programming concepts including variables, control structures, functions, file handling, and modular design. The curriculum also covers practical skills such as using libraries, building graphical user interfaces, implementing animations, and visualising data. With an emphasis on writing maintainable and secure code, students will gain the confidence to analyse, design, and implement solutions to real-world problems. Through a blend of foundational theory and hands-on coding experience, this course equips learners with the essential tools and mindset to begin their journey as capable, problem-solving developers.&lt;/p&gt;</Content>
  </MarketingOverview>
  <UnitOverview Applicant="" Label="Course unit overview" Student="Y">
    <Content>&lt;p&gt;Programming is a core skill in the digital era, underpinning innovation in virtually every domain of computing, from web and mobile apps to scientific research and intelligent systems. This unit introduces students to the foundational concepts of programming through Python, a widely-used and versatile programming language known for its readability and broad ecosystem.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;The course begins by exploring the building blocks of programming: variables, data types, and control structures such as selection and iteration. From these fundamentals, students’ progress into practical techniques like file handling and modular programming using functions. They will learn to structure their programs using functions, leverage external libraries and packages, and apply best practices for writing clean, maintainable, and secure code.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;As students gain confidence, they will investigate more applied topics such as graphical interfaces and animation, enabling the development of interactive applications. Object-oriented programming principles will be introduced to illustrate how complex software systems are structured and maintained. The course also places a strong emphasis on real-world applicability, teaching secure coding practices and exploring how to visualize data effectively, skills increasingly vital across industries.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;Throughout the unit, students will not only learn how to write Python programs, but also how to think computationally, analysing problems, designing algorithmic solutions, and evaluating code quality in terms of performance, maintainability, and correctness. They will build confidence in estimating development effort, selecting appropriate libraries and tools, and reflecting on the purpose and structure of existing code.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;By combining theory, hands-on programming, and creative problem-solving, this unit equips students with the essential skills to begin their journey as confident, capable software developers.&lt;br/&gt;&amp;nbsp;&lt;/p&gt;</Content>
  </UnitOverview>
  <Aims Applicant="Y" Label="Aims" Student="Y">
    <Content>&lt;p&gt;The aim of this course unit is to provide students with a solid foundation in programming principles, practices, and problem-solving techniques, using Python as a modern, versatile, and widely adopted programming language.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;The course introduces programming as a key computational thinking skill, enabling students to analyse problems, design algorithms, and translate these into functional, maintainable code. It explores the fundamental constructs of programming variables, data types, control flow, and modular design while also encouraging an understanding of how these constructs manifest in different programming paradigms and languages.&lt;br/&gt;A strong emphasis is placed on structured and maintainable code development, including the use of functions, libraries, and file handling to build reusable, efficient solutions. Students will gain practical experience using standard development tools and environments, and will learn how to structure projects for clarity, scalability, and reuse.&lt;br/&gt;The course explores user interaction through graphical user interfaces (GUIs) and introduces techniques for creating visual and animated content using Python libraries. These experiences are supported by an introduction to secure coding practices, including input validation, error handling, and awareness of common vulnerabilities in software development.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;Object-oriented programming (OOP) is introduced as a key approach to structuring more complex programs, providing a foundation for future software development. Students will learn basic class design and encapsulation, setting the stage for further exploration in more advanced modules.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;The course also introduces data visualisation, enabling students to present and interpret data effectively using Python libraries. This supports not only programming skill development but also broader competencies in communication and analytical thinking.&lt;br/&gt;Throughout the course, students will apply their learning through hands-on programming exercises and projects, gradually developing the ability to design, implement, evaluate, and refine software solutions. By the end of the unit, students will be well-equipped to continue their programming journey with confidence and a clear understanding of the tools, techniques, and mindsets required for success.&lt;br/&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</Content>
  </Aims>
  <LearningOutcomes Applicant="Y" Label="Learning outcomes" Student="Y">
    <Content>&lt;p&gt;On the successful completion of the course, students will be able to:&amp;nbsp;&lt;br/&gt;&lt;strong&gt;ILO 1: &lt;/strong&gt;Explain basic programming constructs and describe their manifestation in different programming languages.&amp;nbsp;&lt;br/&gt;&lt;strong&gt;ILO 2:&lt;/strong&gt; Explain what a given (simple) program does.&amp;nbsp;&lt;br/&gt;&lt;strong&gt;ILO 3:&lt;/strong&gt; Design programs to solve given (simple) problems.&amp;nbsp;&lt;br/&gt;&lt;strong&gt;ILO 4:&lt;/strong&gt; Implement maintainable solutions to problems using appropriate development tools.&amp;nbsp;&lt;br/&gt;&lt;strong&gt;ILO 5:&lt;/strong&gt; Evaluate the quality of code (correctness, maintainability, efficiency).&amp;nbsp;&lt;br/&gt;&lt;strong&gt;ILO 6:&lt;/strong&gt; Estimate the development time needed to implement a solution to a problem.&amp;nbsp;&lt;br/&gt;&lt;strong&gt;ILO 7:&lt;/strong&gt; Identify appropriate programming resources (tools, libraries) needed to implement a solution to a problem.&lt;br/&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="line-height:1.2;margin-bottom:0pt;margin-top:0pt;" dir="ltr"&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&amp;nbsp;&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>Analytical skills</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
    <Skill>
      <SkillId>Innovation/creativity</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
    <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>Written communication</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
  </EmployabilitySkillsList>
  <Syllabus Applicant="Y" Label="Syllabus" Student="Y">
    <Content>&lt;p&gt;&lt;strong&gt;Week 1:&lt;/strong&gt; Variable, States &amp;amp; Types&lt;br/&gt;&lt;strong&gt;Week 2:&lt;/strong&gt; Selection &amp;amp; Iteration&lt;br/&gt;&lt;strong&gt;Week 3:&lt;/strong&gt; File Handling&lt;br/&gt;&lt;strong&gt;Week 4:&lt;/strong&gt; Functions&lt;br/&gt;&lt;strong&gt;Week 5:&lt;/strong&gt; Packages &amp;amp; Libraries&lt;br/&gt;&lt;strong&gt;Week 6:&lt;/strong&gt; Reading Week&lt;br/&gt;&lt;strong&gt;Week 7:&lt;/strong&gt; Graphics &amp;amp; User Interfaces&lt;br/&gt;&lt;strong&gt;Week 8:&lt;/strong&gt; Graphics &amp;amp; Animation&lt;br/&gt;&lt;strong&gt;Week 9:&lt;/strong&gt; Secure Coding&lt;br/&gt;&lt;strong&gt;Week 10:&lt;/strong&gt; General Intro to OOP&lt;br/&gt;&lt;strong&gt;Week 11:&lt;/strong&gt; Data Visualisation in Python&lt;br/&gt;&amp;nbsp;&lt;/p&gt;</Content>
  </Syllabus>
  <TeachingMethods Applicant="Y" Label="Teaching and learning methods" Student="Y">
    <Content>&lt;p&gt;Lectures [10 in total]&lt;br/&gt;Videos [ various each week]&lt;br/&gt;Workshops [8 in total]&lt;br/&gt;Drop-In Laboratory Session [1 per week]&lt;br/&gt;Formative Quizzes [1 per week]&lt;br/&gt;Additional Reading&amp;nbsp;&lt;br/&gt;&amp;nbsp;&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>8</MethodId>
      <MethodName>Practical skills assessment</MethodName>
      <MethodWeight>50%</MethodWeight>
    </Method>
  </AssessmentMethods>
  <FeedbackMethods Applicant="Y" Label="Feedback methods" Student="Y">
    <Content>&lt;p class="MsoNormal"&gt;Workshops, Drop-In Labs, Discussion Boards, Formal through Coursework&lt;p&gt;&lt;/p&gt;&lt;/p&gt;</Content>
  </FeedbackMethods>
  <RequirementsList Applicant="Y" Label="Pre/co-requisites" Student="Y">
    <Requirement>
      <UnitCode>COMP16412</UnitCode>
      <UnitTitle>Introduction to Programming 2</UnitTitle>
      <RequirementType>Co-Requisite</RequirementType>
      <Description>Compulsory</Description>
    </Requirement>
    <AdditionalRequirement>COMP16321 has co-requisite of COMP16412</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;We do not use a recommended textbook instead providing various resources including articles, papers and blogs throughout the semester.&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>2</Hours>
      </ActivityHours>
      <ActivityHours>
        <ActivityType>Lectures</ActivityType>
        <Hours>10</Hours>
      </ActivityHours>
      <ActivityHours>
        <ActivityType>Practical classes &amp; workshops</ActivityType>
        <Hours>18</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>170</Hours>
    </TotalHours>
  </StudyHours>
  <Notes Applicant="Y" Label="Additional notes" Student="Y">
    <Content></Content>
  </Notes>
</CourseUnit>
