{"id":1677,"date":"2021-02-21T12:56:38","date_gmt":"2021-02-21T12:56:38","guid":{"rendered":"http:\/\/learnlearn.uk\/alevelcs\/?page_id=1677"},"modified":"2021-04-01T03:21:14","modified_gmt":"2021-04-01T03:21:14","slug":"abstraction-pattern-recognition-decomposition","status":"publish","type":"page","link":"https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/","title":{"rendered":"Decomposition, Pattern Recognition &#038; Abstraction"},"content":{"rendered":"<div class=\"responsive-tabs\">\n<h2 class=\"tabtitle\">Decomposition<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Decomposition<\/h3>\n<p>Decomposition is the process of breaking a problem down into its component parts.<\/p>\n<p>For instance if you are designing a hangman style game then your program might be broken down into:<\/p>\n<ul>\n<li>Displaying the start menu<\/li>\n<li>Asking for a letter to be entered<\/li>\n<li>Displaying the gallows<\/li>\n<li>Displaying a game over screen.<\/li>\n<\/ul>\n<p>Each of these components can be broken down further into sub components,<\/p>\n<ul>\n<li>Displaying the start menu:<\/li>\n<li>Print out all the menu options<\/li>\n<li>Ask the user for an input<\/li>\n<li>Redirect the user to the correct screen depending on their choice.<\/li>\n<\/ul>\n<p>In programming we often use functions, procedures and modules to decompose the problem down into separate sub problems. We can take a structured approach to decomposition, for instance by using <a href=\"https:\/\/learnlearn.uk\/alevelcs\/stepwise-refinement\/\">stepwise refinement.<\/a><\/p>\n<div id=\"attachment_1890\" style=\"width: 310px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-1890\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-1890 size-medium\" src=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2021\/02\/decomposition-300x225.jpg?_t=1617175663\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2021\/02\/decomposition-300x225.jpg 300w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2021\/02\/decomposition-768x576.jpg 768w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2021\/02\/decomposition-1024x768.jpg 1024w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2021\/02\/decomposition.jpg 1200w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><p id=\"caption-attachment-1890\" class=\"wp-caption-text\">When animal decomposes, its body breaks down into separate component parts. Source: <a href=\"https:\/\/commons.wikimedia.org\/wiki\/File:Example_of_a_pig_carcass_in_the_dry_decay_stage_of_decomposition.jpg\">HBreton19<\/a><\/p><\/div>\n\n<\/div><h2 class=\"tabtitle\">Pattern Recognition<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Pattern Recognition<\/h3>\n<p>A key skill in becoming a programmer is being able to pick out the patterns present in both problems to be solved and the data the problems work on. Recognition of patterns allows algorithms to be adapted so that multiple problems can be solved more efficiently.<\/p>\n<div class=\"arconix-accordions arconix-accordions-vertical arconix-accordions-1\"><div class=\"arconix-accordion-title accordion-Example1\"><i class=\"fa\"><\/i><p>Example 1<\/p><\/div><div class=\"arconix-accordion-content\">\n<p><strong>Example 1<\/strong><\/p>\n<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;\">\n<pre style=\"margin: 0; line-height: 125%;\">player1name <span style=\"color: #333333;\">=<\/span> <span style=\"color: #007020;\">input<\/span>(<span style=\"background-color: #fff0f0;\">\"What is player 1's name?\"<\/span>)\r\nplayer2name <span style=\"color: #333333;\">=<\/span> <span style=\"color: #007020;\">input<\/span>(<span style=\"background-color: #fff0f0;\">\"What is player 2's name?\"<\/span>)\r\nplayer3name <span style=\"color: #333333;\">=<\/span> <span style=\"color: #007020;\">input<\/span>(<span style=\"background-color: #fff0f0;\">\"What is player 3's name?\"<\/span>)\r\nplayer4name <span style=\"color: #333333;\">=<\/span> <span style=\"color: #007020;\">input<\/span>(<span style=\"background-color: #fff0f0;\">\"What is player 4's name?\"<\/span>)\r\nplayer5name <span style=\"color: #333333;\">=<\/span> <span style=\"color: #007020;\">input<\/span>(<span style=\"background-color: #fff0f0;\">\"What is player 5's name?\"<\/span>)\r\n<\/pre>\n<\/div>\n<p>In the example above there is a clear pattern and a solution can easily be programmed:<\/p>\n<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;\">\n<pre style=\"margin: 0; line-height: 125%;\">names <span style=\"color: #333333;\">=<\/span> []\r\n<span style=\"color: #008800; font-weight: bold;\">for<\/span> n <span style=\"color: #000000; font-weight: bold;\">in<\/span> <span style=\"color: #007020;\">range<\/span>(<span style=\"color: #0000dd; font-weight: bold;\">5<\/span>):\r\n    names<span style=\"color: #333333;\">.<\/span>append(<span style=\"color: #007020;\">input<\/span>(<span style=\"background-color: #fff0f0;\">\"What is player\"<\/span>,n<span style=\"color: #333333;\">+<\/span><span style=\"color: #0000dd; font-weight: bold;\">1<\/span>,<span style=\"background-color: #fff0f0;\">\"'s name?\"<\/span>))\r\n<\/pre>\n<\/div>\n<p>While the above example only saves a couple of lines of code, if the number of players is increased you need only change the number 5.<\/p>\n<\/div><div class=\"arconix-accordion-title accordion-Example2\"><i class=\"fa\"><\/i><p>Example 2<\/p><\/div><div class=\"arconix-accordion-content\">\n<p><strong>Example 2<\/strong><\/p>\n<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;\">\n<pre style=\"margin: 0; line-height: 125%;\"><span style=\"color: #008800; font-weight: bold;\">while<\/span> <span style=\"color: #007020;\">True<\/span>:\r\n\theight <span style=\"color: #333333;\">=<\/span> <span style=\"color: #007020;\">input<\/span>(<span style=\"background-color: #fff0f0;\">\"How tall are you in cm?\"<\/span>)\r\n\t<span style=\"color: #008800; font-weight: bold;\">if<\/span> ans<span style=\"color: #333333;\">.<\/span>isdigit():\r\n\t\t<span style=\"color: #008800; font-weight: bold;\">if<\/span> <span style=\"color: #0000dd; font-weight: bold;\">50<\/span> <span style=\"color: #333333;\">&lt;=<\/span> <span style=\"color: #007020;\">int<\/span>(height) <span style=\"color: #333333;\">&lt;=<\/span> <span style=\"color: #0000dd; font-weight: bold;\">300<\/span>:\r\n\t\t\t<span style=\"color: #008800; font-weight: bold;\">print<\/span>(<span style=\"background-color: #fff0f0;\">\"please input a valid number between 50 and 300\"<\/span>)\r\n\t\t\t<span style=\"color: #008800; font-weight: bold;\">continue<\/span>\r\n\t\t<span style=\"color: #008800; font-weight: bold;\">break<\/span>\r\n\t<span style=\"color: #008800; font-weight: bold;\">else<\/span>:\r\n\t\t<span style=\"color: #008800; font-weight: bold;\">print<\/span>(<span style=\"background-color: #fff0f0;\">\"please input a valid number between 50 and 300\"<\/span>)\r\n\r\n<span style=\"color: #008800; font-weight: bold;\">while<\/span> <span style=\"color: #007020;\">True<\/span>:\r\n\tage <span style=\"color: #333333;\">=<\/span> <span style=\"color: #007020;\">input<\/span>(<span style=\"background-color: #fff0f0;\">\"How oldare you in years?\"<\/span>)\r\n\t<span style=\"color: #008800; font-weight: bold;\">if<\/span> ans<span style=\"color: #333333;\">.<\/span>isdigit():\r\n\t\t<span style=\"color: #008800; font-weight: bold;\">if<\/span> <span style=\"color: #000000; font-weight: bold;\">not<\/span> (<span style=\"color: #0000dd; font-weight: bold;\">0<\/span> <span style=\"color: #333333;\">&lt;=<\/span> <span style=\"color: #007020;\">int<\/span>(height) <span style=\"color: #333333;\">&lt;=<\/span> <span style=\"color: #0000dd; font-weight: bold;\">110<\/span>):\r\n\t\t\t<span style=\"color: #008800; font-weight: bold;\">print<\/span>(<span style=\"background-color: #fff0f0;\">\"please input a valid number between 0 and 110\"<\/span>)\r\n\t\t\t<span style=\"color: #008800; font-weight: bold;\">continue<\/span>\r\n\t\t<span style=\"color: #008800; font-weight: bold;\">break<\/span>\r\n\t<span style=\"color: #008800; font-weight: bold;\">else<\/span>:\r\n\t\t<span style=\"color: #008800; font-weight: bold;\">print<\/span>(<span style=\"background-color: #fff0f0;\">\"please input a valid number between 50 and 300\"<\/span>)\r\n<\/pre>\n<\/div>\n<p>This example is a little more complex and here functions can be useful in dealing with patterns.<\/p>\n<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;\">\n<pre style=\"margin: 0; line-height: 125%;\"><span style=\"color: #008800; font-weight: bold;\">def<\/span> <span style=\"color: #0066bb; font-weight: bold;\">get_integer<\/span>(minval,maxval,question):\r\n\t<span style=\"color: #008800; font-weight: bold;\">while<\/span> <span style=\"color: #007020;\">True<\/span>:\r\n\t\tans <span style=\"color: #333333;\">=<\/span> <span style=\"color: #007020;\">input<\/span>(question)\r\n\t\t<span style=\"color: #008800; font-weight: bold;\">if<\/span> ans<span style=\"color: #333333;\">.<\/span>isdigit():\r\n\t\t\t<span style=\"color: #008800; font-weight: bold;\">if<\/span> minval <span style=\"color: #333333;\">&lt;=<\/span> <span style=\"color: #007020;\">int<\/span>(ans) <span style=\"color: #333333;\">&lt;=<\/span> maxval:\r\n\t\t\t\t<span style=\"color: #008800; font-weight: bold;\">break<\/span>\r\n\t\t<span style=\"color: #008800; font-weight: bold;\">print<\/span>(<span style=\"background-color: #fff0f0;\">\"please input a number between\"<\/span> , minval , <span style=\"background-color: #fff0f0;\">\"and\"<\/span> , maxval)\r\n\t\t\r\nage <span style=\"color: #333333;\">=<\/span> get_integer(<span style=\"color: #0000dd; font-weight: bold;\">0<\/span>,<span style=\"color: #0000dd; font-weight: bold;\">110<\/span>,<span style=\"background-color: #fff0f0;\">\"How old are you?\"<\/span>)\r\nheight <span style=\"color: #333333;\">=<\/span> get_integer(<span style=\"color: #0000dd; font-weight: bold;\">50<\/span>,<span style=\"color: #0000dd; font-weight: bold;\">300<\/span>,<span style=\"background-color: #fff0f0;\">\"How tall are you?\"<\/span>)\r\n<\/pre>\n<\/div>\n<p>This improved version has a number of benefits:<\/p>\n<ul>\n<li>The less code is required to solve the problem<\/li>\n<li>The code of more readable because the code has been split into functions.<\/li>\n<li>The code is more reusable because it has been generalized to solve a number of similar problems.<\/li>\n<\/ul>\n<\/div><\/div>\n\n<\/div><h2 class=\"tabtitle\">Abstraction<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Abstraction<\/h3>\n<p>Abstraction is the process of simplifying a problem and throwing unnecessary detail until we are left with only the information that we need to solve a problem.<\/p>\n<p>What information is deemed necessary or otherwise depends wholly at the problem at hand. For example if we are storing data about pupils in a school database then we might need to store their education history, whereas in a database for a hospital this data would not be needed.<\/p>\n<p>The abstraction of problems involves making choices such as what data type to use (e.g. integer versus real) or whether to store data in an array or a dictionary.<\/p>\n<div id=\"attachment_1889\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2021\/02\/abstract-art.jpg\"><img aria-describedby=\"caption-attachment-1889\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-1889 size-medium\" src=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2021\/02\/abstract-art-300x252.jpg?_t=1617175510\" alt=\"\" width=\"300\" height=\"252\" srcset=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2021\/02\/abstract-art-300x252.jpg 300w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2021\/02\/abstract-art-768x645.jpg 768w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2021\/02\/abstract-art-1024x861.jpg 1024w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2021\/02\/abstract-art.jpg 1071w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1889\" class=\"wp-caption-text\">In abstract art the artist only seeks to record the details that are important to them, discarding unnecessary detail. Source: <a href=\"https:\/\/commons.wikimedia.org\/wiki\/File:Sacklarian_Bright_Abstract_Painting.jpg\">20thCenturyArtEnthusiast<\/a><\/p><\/div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Decomposition Decomposition is the process of breaking a problem down into its component parts. For instance if you are designing a hangman style game then your program might be broken down into: Displaying the start menu Asking for a letter to be entered Displaying the gallows Displaying a game over screen. Each of these components&hellip;&nbsp;<a href=\"https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/\" class=\"\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">Decomposition, Pattern Recognition &#038; Abstraction<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":70,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Decomposition, Pattern Recognition &amp; Abstraction - A Level Computer Science<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Decomposition, Pattern Recognition &amp; Abstraction - A Level Computer Science\" \/>\n<meta property=\"og:description\" content=\"Decomposition Decomposition is the process of breaking a problem down into its component parts. For instance if you are designing a hangman style game then your program might be broken down into: Displaying the start menu Asking for a letter to be entered Displaying the gallows Displaying a game over screen. Each of these components&hellip;&nbsp;Read More &raquo;Decomposition, Pattern Recognition &#038; Abstraction\" \/>\n<meta property=\"og:url\" content=\"https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/\" \/>\n<meta property=\"og:site_name\" content=\"A Level Computer Science\" \/>\n<meta property=\"article:modified_time\" content=\"2021-04-01T03:21:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2021\/02\/decomposition-300x225.jpg?_t=1617175663\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/\",\"name\":\"Decomposition, Pattern Recognition & Abstraction - A Level Computer Science\",\"isPartOf\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#website\"},\"datePublished\":\"2021-02-21T12:56:38+00:00\",\"dateModified\":\"2021-04-01T03:21:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"A Level Computer Science Home\",\"item\":\"https:\/\/learnlearn.uk\/alevelcs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Decomposition, Pattern Recognition &#038; Abstraction\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#website\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/\",\"name\":\"A Level Computer Science\",\"description\":\"CIE Specification\",\"publisher\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/learnlearn.uk\/alevelcs\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#organization\",\"name\":\"A Level Computer Science\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png\",\"contentUrl\":\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png\",\"width\":710,\"height\":98,\"caption\":\"A Level Computer Science\"},\"image\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Decomposition, Pattern Recognition & Abstraction - A Level Computer Science","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/","og_locale":"en_GB","og_type":"article","og_title":"Decomposition, Pattern Recognition & Abstraction - A Level Computer Science","og_description":"Decomposition Decomposition is the process of breaking a problem down into its component parts. For instance if you are designing a hangman style game then your program might be broken down into: Displaying the start menu Asking for a letter to be entered Displaying the gallows Displaying a game over screen. Each of these components&hellip;&nbsp;Read More &raquo;Decomposition, Pattern Recognition &#038; Abstraction","og_url":"https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/","og_site_name":"A Level Computer Science","article_modified_time":"2021-04-01T03:21:14+00:00","og_image":[{"url":"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2021\/02\/decomposition-300x225.jpg?_t=1617175663"}],"twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/","url":"https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/","name":"Decomposition, Pattern Recognition & Abstraction - A Level Computer Science","isPartOf":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/#website"},"datePublished":"2021-02-21T12:56:38+00:00","dateModified":"2021-04-01T03:21:14+00:00","breadcrumb":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/learnlearn.uk\/alevelcs\/abstraction-pattern-recognition-decomposition\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"A Level Computer Science Home","item":"https:\/\/learnlearn.uk\/alevelcs\/"},{"@type":"ListItem","position":2,"name":"Decomposition, Pattern Recognition &#038; Abstraction"}]},{"@type":"WebSite","@id":"https:\/\/learnlearn.uk\/alevelcs\/#website","url":"https:\/\/learnlearn.uk\/alevelcs\/","name":"A Level Computer Science","description":"CIE Specification","publisher":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/learnlearn.uk\/alevelcs\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/learnlearn.uk\/alevelcs\/#organization","name":"A Level Computer Science","url":"https:\/\/learnlearn.uk\/alevelcs\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/","url":"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png","contentUrl":"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png","width":710,"height":98,"caption":"A Level Computer Science"},"image":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/"}}]}},"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"learnlearnadmin","author_link":"https:\/\/learnlearn.uk\/alevelcs\/author\/learnlearnadmin\/"},"rttpg_comment":0,"rttpg_category":null,"rttpg_excerpt":"Decomposition Decomposition is the process of breaking a problem down into its component parts. For instance if you are designing a hangman style game then your program might be broken down into: Displaying the start menu Asking for a letter to be entered Displaying the gallows Displaying a game over screen. Each of these components&hellip;&nbsp;Read&hellip;","_links":{"self":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages\/1677"}],"collection":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/comments?post=1677"}],"version-history":[{"count":7,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages\/1677\/revisions"}],"predecessor-version":[{"id":1902,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages\/1677\/revisions\/1902"}],"wp:attachment":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/media?parent=1677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}