40009 | Faculty of Engineering | Imperial College London Skip to main content Skip to search Skip to section menu Skip to sidebar menu View accessibility support page Imperial College London Imperial College London Imperial Alert Coronavirus (COVID-19) updates: Safety information for academic year 2021-22 Latest information for current students, staff, offer holders and applicants Main Navigation Study Close Study overview Undergraduate Top Links Courses for 2022 How to apply Fees and funding Accommodation Open days, events and visits Undergraduate prospectus Postgraduate Top Links Courses for 2022-23 Doctoral courses How to apply Fees and funding Accommodation Events and visits Study guide Faculties and departments Education centres and schools Continuing Professional Development Executive Education Living in LondonLondon’s fusion of culture, charm and career opportunities is hard to beat International studentsStudents come from over 140 different countries to study at Imperial Campus lifeExperience what it's like to be a member of the College community Research & Innovation Close Research and Innovation Partner with us At a glance Clinical Trials Business support and partnerships Consultancy Executive education A-Z services for partners Research support At a glance Resources for staff Research Office Faculty research services teams Research integrity Clinical Trials Global Imperial College Strategy 2015-2020 Faculties and departments A-Z research groups and centres Funding opportunities REF 2021 Imperial’s impactRead case studies about how Imperial research has made a difference Research newsKeep up to date with Imperial’s cutting edge discoveries EnterpriseLearn how we support entrepreneurship and help find research-driven solutions to industry challenges Be Inspired Close Be Inspired Take part Top links Schools Outreach What's on at Imperial Festival Imperial Lates Alumni events Volunteering and outreach Engage online Top links Imperial news Podcasts Imperial Magazine Imperial Stories Social media directory Staff and student volunteering Imperial magazine Societal engagement Imperial College Podcastpresented by Gareth Mitchell and the Communications & Public Affairs pod squad Imperial TodaySubscribe to our daily newsletter and receive the best stories from Imperial direct to your inbox Student blogsFind out about life on campus from our team of student bloggers About Close About The College Overview Strategy 2020-2025 Academic Strategy League tables Facts and figures College governance Sustainability Our people At a glance President Provost Alumni stories Award winners Recognising our people Equality, diversity and inclusion A - Z of Faculties and Departments Faculty of Engineering Faculty of Medicine Faculty of Natural Sciences Imperial College Business School Global ImperialWe are the UK's most international university Our campusesExplore our London locations White City CampusImperial’s research and innovation district News What's on News Give A-Z Close Faculties and departments Multidisciplinary networks, centres and institutes Research groups People finder Administration and support services Information for Close Prospective students Current students Alumni Staff Jobs at Imperial Partners and business Media Donors Parents Conference organisers Search Imperial Search Department of Computing Section Navigation Close Department of Computing Overview About Getting here Our values Our facilities Useful contacts Equality and Diversity Equality, Diversity and Culture Committee Women in Computing Athena SWAN Resources Vacancies News and events Health and safety Qualified first aiders Training requirements Theft Students Welcome Information Awards and honours People Academic staff Welcome to new academics Teaching fellows Research staff Administrative staff CSG Recent changes New users Students Lab regulations Staff and PhDs Services Guides Remote Access Facilities Loans Lab Workstations Theatres Help desk Policies Activities CSG Systems Activities Information Systems Activities Honorary staff Emeritus staff DeepMind scholarships Alumnus Research Artificial Intelligence Data Science Programming Languages Security Software Engineering Systems Theory and Algorithms Analysis and Verification Visual Computing Research groups listed alphabetically Prospective students Welcome Undergraduate courses BEng/MEng Computing BEng/MEng Joint Mathematics and Computer Science Postgraduate courses MSc Computing MSc Computing Science regulations MSc Advanced Computing MSc Advanced Computing regulations MSc in Artificial Intelligence MSc Artificial Intelligence regulations MSc Specialist Degrees MSc in Computing (Artificial Intelligence and Machine Learning) MSc in Computing (Management and Finance) MSc in Computing (Security and Reliability) MSc in Computing (Software Engineering) MSc in Computing (Visual Computing and Robotics) MSc in Computing (Specialisms) regulations Integrated MRes/PhD Degrees MRes AI and Machine Learning PhD FAQs Scholarships HiPEDS Centre for Doctoral Training PhD success stories PhD application guidelines AI4Health Centre for Doctoral Training Open days and taster courses COVID-19 Updates Scholarships and Bursaries Current students Undergraduate Computing: degree and course information Undergraduate degrees UG handbook Undergraduate JMC: degree and course information JMC undergraduate degrees UG handbook Postgraduate degrees and course information PG handbook PhD information PhD diary Facewall PhD 1st Year - Cohort 2020 / 2021 Undergraduate student welfare DoC student hub Scholarships and Bursaries Industry Recruit our Students Industrial placements Corporate Partnership Programme Industrial Advisory Board Membership Terms of reference Applications of Computing in Industry Prizes and sponsorship Consultancy Collaborations Outreach and Engagement Girls in Computing DoC Explains Ethics in Computing Coding for Children Bring your child to work day Outreach news and events Public Lecture Series Computing in Schools STEM Club Training Beyond the Classroom This is Engineering CSG Recent changes New users Students Lab regulations Staff and PhDs Services Guides Remote Access Facilities Loans Lab Workstations Theatres Help desk Policies Activities CSG Systems Activities Information Systems Activities Staff intranet Health and safety Qualified first aiders Training requirements Theft Students Welcome Information Home Faculty of Engineering Departments, institutes and centres Department of Computing Current students Courses 40009 40009 Computing Practical 1 Module aims In this module you will have the opportunity to develop various practical skills, including programming, Web development, basic academic research and both written and oral communication skills, all of which are important attributes of a professional software engineer. The programming aspects of this module will also give you a chance to put into practice some of the theoretical material covered in the first year lecture courses and to explore additional topics in Computing that will be built on in later years. Learning outcomes Upon successful completion of this module, you should be able to: demonstrate proficiency in using programming languages from three of the major paradigms develop working solutions to well-specified programming problems of small to medium size create a website that meets stakeholder needs use core software development tools effectively, including those for version control undertake basic research into Computing topics, including those related to Computing ethics write short technical documentation that demonstrate proficiency in scientific communication deliver short oral presentations summarising practical project work and research findings operate effectively as a member of a group to produce deliverables that meet set criteria Module syllabus Functional programming in Haskell Functional and procedural programming in Kotlin Object-oriented programming in Kotlin and Java Assembler programming Programming in C Web development using HTML, CSS and JavaScript Computer systems project Introduction to research methods Introduction to Ethics in Computing Introduction to academic writing Oral presentation skills Teaching methods The emphasis is on self-study, both as an individual and as part of a small group. In the first two terms there will be weekly small-group personal programming tutorials (PPTs) which will give you the chance to develop your individual programming skills under the guidance of an academic tutor and Undergraduate Teaching Assistant (UTA). There will also be timetabled laboratory sessions, supported by both Graduate Teaching Assistants (GTAs) and UTAs, which will give you dedicated time to work on the practical exercises and receive support and guidance on your work. There will be formative programming exercises each week in the first two terms and these will be assessed by your UTA and returned to you at the following week's PPT session. The first two terms will focus on Haskell and Java/Kotlin, alongside Web development skills. In the third term you will work in small groups to develop an assembler and emulator for the ARM architecture. An accompanying exercise will involve you developing a simple application for the Raspberry Pi and then building an extension of your choice. The objective here is to combine your C and assembler programming skills with some basic hardware development skills to build a novel application for the Pi from first principles. The module also exercises your ability to communicate the results of practical work and how to use basic research methods to find things out for yourself. These are exercised through research into a Computing topic of your own choice as well as ethical issues that you need to bear in mind when developing computer-based systems. You will be giving basic training in technical writing and oral presentation skills, in order to help you to communicate effectively the findings of both project work and research. These are important skills that will be exercised throughout your degree programme. Assessments The weekly formative programming exercises are assessed and returned within 7 days, but this is for feedback only - the marks do not count towards your year total. The assessed components include tests in both Haskell and Kotlin/Java, and a C programming test. These are undertaken using an online programming test system and under exam conditions. The assembler/emulator project in the summer term is assessed in small groups via a demonstration and short presentation. Your Web development skills will also be assessed. The research and ethics components are assessed by a short report and presentation; the assessment addresses technical content as well as your written and oral communication skills. Detailed feedback, both written and verbal, will be given on the weekly formative programming exercises covered in the PPT tutorials, as well as the assessed online programming tests. You will get verbal feedback on your summer term assembler/ emulator and Raspberry Pi projects as part of the assessment. You will receive written feedback on the content of your research and ethics investigations and also your technical writing and communication skills. Reading list Module leaders Dr Nicolas Wu Dr Blay Whitby Dr Jackie Bell Mr Duncan White Dr Anthony Field Dr Robert Chatley Dr Thomas Lancaster Dr Maria Valera-Espina Dr Konstantinos Gkoutzis Professor Alastair Donaldson Professor William Knottenbelt Current students Undergraduate Computing: degree and course information Undergraduate degrees UG handbook Undergraduate JMC: degree and course information JMC undergraduate degrees UG handbook Postgraduate degrees and course information PG handbook PhD information PhD diary Facewall PhD 1st Year - Cohort 2020 / 2021 Undergraduate student welfare DoC student hub Scholarships and Bursaries @ICComputing Tweets by ICComputing Print Email Contact & Links Section Information Faculty of Engineering Department of Computing Imperial College London South Kensington Campus London SW7 2AZMap Get in touch Useful contacts UG admissions enquiries MSc admissions enquiries PhD admissions enquiries Quick links Job opportunities Recruit our students Outreach Computing Support Group (CSG) FollowTwitterLinked in Useful Links Information for Prospective students Alumni Jobs Partners and business Media Donors Parents Conference organisers Top links Visit Imperial Imperial and the EU Outlook 365 web access Contact the ICT Service Desk Library Blackboard Move Imperial Term dates Students Imperial students Imperial College Union Student Hub Careers Service Imperial Mobile Graduation Staff Staff main page ICIS HR Procedures Salaries Pension schemes Research support Information for new staff Imperial partners Imperial College Healthcare NHS Trust Imperial College Academic Health Science Centre Imperial College Health Partners Imperial Consultants A-Z Faculties, departments and institutes Research groups Administration and support services People finder College Information Imperial College London Address South Kensington Campus London SW7 2AZ, UK tel: +44 (0)20 7589 5111 Campuses & maps Follow Imperial Facebook Twitter You Tube Linked in Instagram Weibo Site Information Sitemap Accessibility Modern slavery statement Privacy notice Use of cookies Report incorrect content © 2022 Imperial College London Log in