{"kind":"Notebook","sha256":"66044e9c755a702f9b331d1c1493a25ce730727f4bd61543083d97521cfdd2ec","slug":"introduction-to-computer-programming","location":"/source/Lecture1/Introduction_to_Computer_Programming.ipynb","dependencies":[],"frontmatter":{"title":"Introduction to Computer Programming","kernelspec":{"name":"python3","display_name":"Python 3 (ipykernel)","language":"python"},"authors":[{"nameParsed":{"literal":"Chung Chan","given":"Chung","family":"Chan"},"name":"Chung Chan","affiliations":["City University of Hong Kong"],"id":"contributors-myst-generated-uid-0"}],"github":"https://github.com/dive4dec/cs1302_24a","keywords":[],"affiliations":[{"id":"City University of Hong Kong","name":"City University of Hong Kong"}],"thumbnail":"/~ccha23/cs1302_24a/build/28edcd39777ce3ed8e80e72ee67eab0c.png","exports":[{"format":"ipynb","filename":"Introduction_to_Computer_Programming.ipynb","url":"/~ccha23/cs1302_24a/build/Introduction_to_Comp-15316b4613df26833514535df53b1e54.ipynb"}]},"mdast":{"type":"root","children":[{"type":"block","data":{"part":"abstract"},"visibility":"remove","children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"By the end of this material, readers are expected to understand the relationship between computer and programming, and appreciate the evolutions of programming and their motivations.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"JWMlXLkCUi"}],"key":"XcrJCtmjb2"}],"key":"UDLja0qyti"},{"type":"block","kind":"notebook-code","data":{"editable":true,"slideshow":{"slide_type":""}},"children":[{"type":"code","lang":"python","executable":true,"value":"# Set LLM alias\n%load_ext jupyter_ai\n%ai update chatgpt dive:chat","key":"THPsIKP29B"},{"type":"output","id":"Trl598TBzRqXM5N2cw70B","data":[],"key":"ISif4i8e8W"}],"key":"I8Ouy6UZm8"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"slide"}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Computer","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"zvSJh1BaPd"}],"identifier":"computer","label":"Computer","html_id":"computer","implicit":true,"key":"o1U32BfGbq"}],"key":"B5r3Gpo2xC"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"heading","depth":3,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"What is a computer?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"LDiHIYO2Wc"}],"identifier":"what-is-a-computer","label":"What is a computer?","html_id":"what-is-a-computer","implicit":true,"key":"K3aZcoVFfr"}],"key":"FPpifpT9Zi"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"A calculator that is bigger and more advanced?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"f0U1heDooy"}],"key":"bq1K7upCLl"}],"key":"YU3asmZBOh"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"-"}},"children":[{"type":"container","kind":"figure","children":[{"type":"image","url":"/~ccha23/cs1302_24a/build/28edcd39777ce3ed8e80e72ee67eab0c.png","alt":"Calculator app","align":"left","key":"D0n4YExe0I","urlSource":"https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/Calculator_app.png/512px-Calculator_app.png"},{"type":"caption","children":[{"type":"paragraph","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"captionNumber","kind":"figure","label":"fig:calculator-app","identifier":"fig:calculator-app","html_id":"fig-calculator-app","enumerator":"1","children":[{"type":"text","value":"Figure ","key":"SCiOVKCmnt"},{"type":"text","value":"1","key":"AFUF8bR5ly"},{"type":"text","value":":","key":"hDbo9TQDzB"}],"template":"Figure %s:","key":"F3OAHVyu21"},{"type":"text","value":"A calculator on a computer.","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"KlfQ0tkKgV"}],"key":"IwN1kwDiJg"}],"key":"Du5rfLna3q"}],"label":"fig:calculator-app","identifier":"fig:calculator-app","enumerator":"1","html_id":"fig-calculator-app","key":"Rjt1m6jWoB"}],"key":"bkDcu2E4Gt"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"If so, is ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"Xc6S8Vwt8V"},{"type":"link","url":"https://en.wikipedia.org/wiki/Abacus","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"abacus","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"yB05ewxWVt"}],"urlSource":"https://en.wikipedia.org/wiki/Abacus","data":{"page":"Abacus","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"qowrqX2PxB"},{"type":"text","value":" the first computer invented?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"hVjTt8XGk5"}],"key":"forb8PbKgl"}],"key":"bWmUQmNZ0m"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"-"}},"children":[{"type":"container","kind":"figure","children":[{"type":"image","url":"/~ccha23/cs1302_24a/build/64ae11b7ef09489ee99cfa7749a3845c.png","alt":"Abacus","align":"left","key":"DmLcMmLXbI","urlSource":"https://upload.wikimedia.org/wikipedia/commons/a/af/Abacus_6.png"},{"type":"caption","children":[{"type":"paragraph","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"captionNumber","kind":"figure","label":"fig:abacus","identifier":"fig:abacus","html_id":"fig-abacus","enumerator":"2","children":[{"type":"text","value":"Figure ","key":"r7AeRSCs0O"},{"type":"text","value":"2","key":"WK9wgU8QlG"},{"type":"text","value":":","key":"lsel8MIoBW"}],"template":"Figure %s:","key":"nohZYAKR4L"},{"type":"text","value":"Abacus - an ancient mechanical computing device.","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"UDPa89WeXN"}],"key":"k0z9GX7fC1"}],"key":"hN7Seaavxg"}],"label":"fig:abacus","identifier":"fig:abacus","enumerator":"2","html_id":"fig-abacus","key":"zbYEJ1bQ4k"}],"key":"P0QAeuoG1l"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Is your ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"dhcyJ1nhSM"},{"type":"link","url":"https://en.wikipedia.org/wiki/Samsung_DeX","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"smartphone","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"FIJiX5Q6rZ"}],"urlSource":"https://en.wikipedia.org/wiki/Samsung_DeX","data":{"page":"Samsung_DeX","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"xhoVdhgV2a"},{"type":"text","value":" a computer?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"luqYXEttD8"}],"key":"ZqklGCHZkx"}],"key":"focDYYiD2G"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"admonition","kind":"important","class":"dropdown","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"What defines a computer?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"NB6EHM4HE0"},{"type":"footnoteReference","identifier":"click","label":"click","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"number":1,"enumerator":"1","key":"CYnAlXvyoC"}],"key":"xiasx8eOtS"},{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"In addition to performing arithmetic calculations,","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"eBZZB8R2wI"}],"key":"Oziga4w30u"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":5,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"a computer can be ","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"mLUiTEo5YD"},{"type":"emphasis","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"programmed","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"TLVnEUTXZR"}],"key":"Vw3fcE1uJa"}],"key":"oOJUnzdq0w"},{"type":"listItem","spread":true,"position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"text","value":"to perform different tasks.","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"jTlIT39ZGF"}],"key":"euKdjnUJSi"}],"key":"crv5UctqBm"}],"key":"l5KWVbm1JO"},{"type":"footnoteDefinition","identifier":"click","label":"click","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"children":[{"type":"text","value":"click me to see an answer.","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"key":"FU6v06ZNMU"}],"key":"xmczWett52"}],"number":1,"enumerator":"1","key":"qWFSCtyf07"}],"key":"pV3TSsLs41"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Run the following cell by clicking it and type ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"xWRORNxFXd"},{"type":"keyboard","children":[{"type":"text","value":"Shift + Enter","key":"Nm32b1rKzN"}],"key":"IVJWwfb8vx"},{"type":"text","value":".","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"zJmoTLDqF6"}],"key":"bCpdzzoTg3"}],"key":"mf2lHauVjf"},{"type":"block","kind":"notebook-code","data":{},"children":[{"type":"code","lang":"python","executable":true,"value":"%%ai chatgpt -f text\nWhat defines a computer? Explain in one line.","key":"UZSCn3vnio"},{"type":"output","id":"hWYPcZfC75gskn2cEGITw","data":[],"key":"HqFZTC4jDM"}],"key":"V7WrJOIP4K"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"slide"}},"children":[{"type":"heading","depth":3,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"What is the architecture of a computer?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"KBFD4rDiL6"}],"identifier":"what-is-the-architecture-of-a-computer","label":"What is the architecture of a computer?","html_id":"what-is-the-architecture-of-a-computer","implicit":true,"key":"ZmpeaqU4re"}],"key":"SaVjl0I5UV"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"A computer contains three main hardware components:","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"G6F9DIsCAP"}],"key":"cy4p5gCCXd"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":3,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"Input device","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"obuL17eAe8"}],"key":"Gdxqll8EBg"},{"type":"listItem","spread":true,"position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Processing unit","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"qOvubSxDFK"}],"key":"aZAXW91Qdg"},{"type":"listItem","spread":true,"position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"Output device","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"EG9gIMI5d1"}],"key":"deIFf71aIF"}],"key":"xpabzAX603"}],"key":"u7zW00neC2"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"heading","depth":4,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Peripherals","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"aA0KIJhaF3"}],"identifier":"peripherals","label":"Peripherals","html_id":"peripherals","implicit":true,"key":"VsBQzjSn8L"}],"key":"CMCRm0O0vd"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"-"}},"children":[{"type":"container","kind":"figure","children":[{"type":"image","url":"/~ccha23/cs1302_24a/build/58e5628d757d6c22e99b0dc350bfc3e9.jpeg","alt":"Peripherals","align":"left","key":"rFMpOtfjDL","urlSource":"https://images.unsplash.com/flagged/photo-1551954810-43cd6aef5b1f?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=3580&q=80"},{"type":"caption","children":[{"type":"paragraph","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"captionNumber","kind":"figure","label":"fig:peripherals","identifier":"fig:peripherals","html_id":"fig-peripherals","enumerator":"3","children":[{"type":"text","value":"Figure ","key":"ME4CMkdxNE"},{"type":"text","value":"3","key":"CSOyLjD9kw"},{"type":"text","value":":","key":"nuOgLVWiLn"}],"template":"Figure %s:","key":"GCX9Kg50fO"},{"type":"text","value":"Computer peripherals.","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"XnOApP14Kr"}],"key":"a1bFowCFnL"}],"key":"fUrFaBIdeH"}],"label":"fig:peripherals","identifier":"fig:peripherals","enumerator":"3","html_id":"fig-peripherals","key":"hSOjByhNh0"}],"key":"sB177vgzJR"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"Input and output devices connected to a computer are called ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"DefcEUfOeq"},{"type":"emphasis","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"peripherals","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"K90tP2Avhe"}],"key":"hH6L6kAsjb"},{"type":"text","value":".","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"WxihnytOGe"},{"type":"break","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"zTnmYsB3Hf"},{"type":"text","value":"They allow users to interact with the computer in different ways.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"LiCoJyzACb"}],"key":"x3Kd5yoRJX"}],"key":"nBgnq24hQV"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"exercise","label":"ex:output-device","identifier":"ex:output-device","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Some examples of output devices are:","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"v73hxcM4Ok"}],"key":"IGcl6VPKLH"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":5,"column":1},"end":{"line":7,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"Monitor","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"V4nmntxCGQ"}],"key":"ieSseI7flq"},{"type":"listItem","spread":true,"position":{"start":{"line":6,"column":1},"end":{"line":7,"column":1}},"children":[{"type":"text","value":"Speaker","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"gVuSlO9xn8"}],"key":"BSTJ9mbk4y"}],"key":"acfCXyJp6r"},{"type":"paragraph","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"children":[{"type":"text","value":"Can you give an awesome example in the following solution cell?","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"key":"q1kVma3t5S"},{"type":"footnoteReference","identifier":"edit","label":"edit","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"number":2,"enumerator":"2","key":"avWjkhCbQG"}],"key":"qbSANmZFEW"}],"enumerator":"1","html_id":"ex-output-device","key":"jr2dYlnWgw"},{"type":"footnoteDefinition","identifier":"edit","label":"edit","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"children":[{"type":"text","value":"To edit a cell, double click the cell until you see a cursor. Run the cell to confirm/render your changes.","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"key":"bky9OVyoZp"}],"key":"VzCzXzU9gX"}],"number":2,"enumerator":"2","key":"CIzBvNM9bT"}],"key":"QkaQSicQre"},{"type":"block","kind":"notebook-content","data":{"nbgrader":{"grade":true,"grade_id":"cell-3ea9d712eccdf31c","locked":false,"points":0,"schema_version":3,"solution":true,"task":false},"slideshow":{"slide_type":"-"}},"children":[{"type":"solution","label":"sol:output-device","identifier":"sol:output-device","class":"dropdown","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Solution to ","key":"KXlQtkZObl"},{"type":"crossReference","label":"ex:output-device","identifier":"ex:output-device","kind":"exercise","children":[{"type":"text","value":"Exercise ","key":"LoZjMGnnhr"},{"type":"text","value":"1","key":"mDEFhCZKLN"}],"template":"Exercise %s","enumerator":"1","resolved":true,"html_id":"ex-output-device","key":"aXWevGZjj2"}],"key":"NOPloKqTdu"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"3D printer available at ","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"jLxEXBMov5"},{"type":"link","url":"https://www.cityu.edu.hk/lib/create/3dprint.htm","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"CityU","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"t3BYroweFi"}],"urlSource":"https://www.cityu.edu.hk/lib/create/3dprint.htm","key":"pAR1qs4y2A"}],"key":"FXdtmsYbn1"}],"key":"BaLrTbIWly"}],"html_id":"sol-output-device","key":"SP9CReRwwD"}],"key":"Y3pikyvVny"},{"type":"block","kind":"notebook-code","data":{},"children":[{"type":"code","lang":"python","executable":true,"value":"%%ai chatgpt -f text\nSummarize what an output device of a computer is and explain briefly why a monitor and a speaker are examples?","key":"Z5Dm3g3CP3"},{"type":"output","id":"G-ebJripJm9jHcJQFjLq-","data":[],"key":"mZ3QqngmBt"}],"key":"q82TUGf1By"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"exercise","label":"ex:input-device","identifier":"ex:input-device","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Some examples of input devices are:","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"QmwJ30XK86"}],"key":"dPcvOHj83J"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":5,"column":1},"end":{"line":7,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"Keyboard","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"AV2IVUY1v3"}],"key":"AJRc96zxEC"},{"type":"listItem","spread":true,"position":{"start":{"line":6,"column":1},"end":{"line":7,"column":1}},"children":[{"type":"text","value":"Mouse","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"UEmEd3egNk"}],"key":"fddIQNl3q8"}],"key":"J3oTaOwyku"},{"type":"paragraph","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"children":[{"type":"text","value":"Can you give an awesome example?","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"key":"mqWWfEiqnI"}],"key":"mU9j2BhSV1"}],"enumerator":"2","html_id":"ex-input-device","key":"AeGCUg1qVs"}],"key":"SliK3D36en"},{"type":"block","kind":"notebook-content","data":{"nbgrader":{"grade":true,"grade_id":"cell-1c411172f0ed411b","locked":false,"points":0,"schema_version":3,"solution":true,"task":false},"slideshow":{"slide_type":"-"}},"children":[{"type":"solution","label":"sol:input-device","identifier":"sol:input-device","class":"dropdown","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Solution to ","key":"YJHVaEQaqd"},{"type":"crossReference","label":"ex:input-device","identifier":"ex:input-device","kind":"exercise","children":[{"type":"text","value":"Exercise ","key":"ppkZZ9cRqp"},{"type":"text","value":"2","key":"ZPxlR6i7Q4"}],"template":"Exercise %s","enumerator":"2","resolved":true,"html_id":"ex-input-device","key":"E8Qyd9HjZ4"}],"key":"ZWEwM2Gp9y"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"3D scanner available at ","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"q19hE0lozj"},{"type":"link","url":"https://www.cityu.edu.hk/lib/create/3dscan.htm","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"CityU","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"KMOQDri9Nm"}],"urlSource":"https://www.cityu.edu.hk/lib/create/3dscan.htm","key":"EiLK9Nbgt4"}],"key":"rVkklzX2N6"}],"key":"ucjfy1gRqb"}],"html_id":"sol-input-device","key":"i23G236ObY"}],"key":"hcJBuvka3P"},{"type":"block","kind":"notebook-code","data":{},"children":[{"type":"code","lang":"python","executable":true,"value":"%%ai chatgpt -f text\nSummarize what an input device of a computer is and explain briefly why a keyboard and a mouse are examples?","key":"ru7c1gN4aK"},{"type":"output","id":"I-AOIrAqasS74sUwoZtP9","data":[],"key":"ME8tLGXoxQ"}],"key":"Z9lYW6bwtU"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"exercise","label":"ex:input-output","identifier":"ex:input-output","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Many devices are both input and output device. Can you give at least 3 examples?","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"xm1fFtNsTy"}],"key":"ocbQYEejAC"}],"enumerator":"3","html_id":"ex-input-output","key":"zRgXtXzqjo"}],"key":"PKHXCxKIHz"},{"type":"block","kind":"notebook-content","data":{"nbgrader":{"grade":true,"grade_id":"cell-e1982fbce01506b3","locked":false,"points":0,"schema_version":3,"solution":true,"task":false},"slideshow":{"slide_type":"-"}},"children":[{"type":"solution","label":"sol:input-output","identifier":"sol:input-output","class":"dropdown","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Solution to ","key":"Y596KDLrP5"},{"type":"crossReference","label":"ex:input-output","identifier":"ex:input-output","kind":"exercise","children":[{"type":"text","value":"Exercise ","key":"siAke4rVRg"},{"type":"text","value":"3","key":"ErQPnKMI18"}],"template":"Exercise %s","enumerator":"3","resolved":true,"html_id":"ex-input-output","key":"qX6OdxlegO"}],"key":"qYpLMaafVF"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":5,"column":1},"end":{"line":7,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"Hard disk","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"RI39cxpj7p"}],"key":"BmSOI6Yevm"},{"type":"listItem","spread":true,"position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"text","value":"CD/DVD Rom (writable)","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"ZGH4gw0IvV"}],"key":"G649uFeMjm"},{"type":"listItem","spread":true,"position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"children":[{"type":"text","value":"Touch screen","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"hO5eB0i7vb"}],"key":"sPIDPjnnbE"}],"key":"XgjiGIyx75"}],"html_id":"sol-input-output","key":"DDdBSgPplp"}],"key":"XENEF8GzcL"},{"type":"block","kind":"notebook-code","data":{},"children":[{"type":"code","lang":"python","executable":true,"value":"%%ai chatgpt -f text\nExplain in one line why a headset is both an input device and an output device at the same time.","key":"VeCZDdgDyx"},{"type":"output","id":"QfB3RlF_geVho8QKLB54g","data":[],"key":"b0kWiZeGiU"}],"key":"Fbtv55ACK2"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"slide"}},"children":[{"type":"heading","depth":4,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Central Processing Unit","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"oKJwlV4fDZ"}],"identifier":"central-processing-unit","label":"Central Processing Unit","html_id":"central-processing-unit","implicit":true,"key":"NWd3y4gkoE"}],"key":"PllURpRtR4"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"-"}},"children":[{"type":"container","kind":"figure","children":[{"type":"image","url":"/~ccha23/cs1302_24a/build/9738967829ae1cd4a013fd0845d34747.jpeg","alt":"CPU","align":"left","key":"pjrdTE6sgV","urlSource":"https://images.unsplash.com/photo-1555617981-dac3880eac6e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1950&q=80"},{"type":"caption","children":[{"type":"paragraph","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"captionNumber","kind":"figure","label":"fig:cpu","identifier":"fig:cpu","html_id":"fig-cpu","enumerator":"4","children":[{"type":"text","value":"Figure ","key":"g0Y5LXCLxK"},{"type":"text","value":"4","key":"VvSYznX5Vc"},{"type":"text","value":":","key":"rQHOt7KTdo"}],"template":"Figure %s:","key":"bBomU3ooOq"},{"type":"text","value":"An Intel CPU","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"RCbULSgKc2"}],"key":"Oz5AXGVgFP"}],"key":"crgieY3oPo"}],"label":"fig:cpu","identifier":"fig:cpu","enumerator":"4","html_id":"fig-cpu","key":"CR1UlyFA0F"}],"key":"uoEmGGkcJd"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"The brain of a computer is its processor or the ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"pfHNBqP7zP"},{"type":"link","url":"https://en.wikipedia.org/wiki/Central_processing_unit","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"strong","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"C","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"BhHpZC6x2j"}],"key":"yz6nLIbkJI"},{"type":"text","value":"entral ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"NTjewaZy1L"},{"type":"strong","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"P","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"dUjQyUPHjq"}],"key":"GKry42mEGY"},{"type":"text","value":"rocesisng ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"rJLPH0qdwm"},{"type":"strong","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"U","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"zECs0Fi6Kx"}],"key":"FFO6kNJLdX"},{"type":"text","value":"nit (CPU)","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"Xrk3HxR3L0"}],"urlSource":"https://en.wikipedia.org/wiki/Central_processing_unit","data":{"page":"Central_processing_unit","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"Hlp2e4HwFt"},{"type":"text","value":".","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"ksZmL26WAS"},{"type":"break","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"bTqKtPmaqp"},{"type":"text","value":"It is located on the ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"aYhjMpMN84"},{"type":"link","url":"https://en.wikipedia.org/wiki/Motherboard","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"motherboard","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"LBn53dLCas"}],"key":"r8NbUE5tEu"}],"urlSource":"https://en.wikipedia.org/wiki/Motherboard","data":{"page":"Motherboard","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"mOPXivjbEE"},{"type":"text","value":" and connected to different peripherals using different ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"RZC2TwLatU"},{"type":"link","url":"https://en.wikipedia.org/wiki/Category:Computer_connectors","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"connectors","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"bfmKyYflfp"}],"key":"v7Yup2q8jJ"}],"urlSource":"https://en.wikipedia.org/wiki/Category:Computer_connectors","data":{"page":"Category:Computer_connectors","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"qQSyMtZpsw"},{"type":"text","value":".","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"XmeIEicBvP"}],"key":"mUemk53V0k"}],"key":"MkVANCjtzq"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Two important components in the CPU are:","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"c3GifO7nOo"}],"key":"DncKDK3nBS"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"strong","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"A","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"NMk1hOnvRS"}],"key":"wMuQi010YU"},{"type":"text","value":"rithmetic and ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"zfPYcnwJzA"},{"type":"strong","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"L","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"RUSpUb6Y0t"}],"key":"uKkjjRJLNe"},{"type":"text","value":"ogic ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"TAFI17qt82"},{"type":"strong","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"U","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"ZIomAOXhWl"}],"key":"OkqLLpTmIK"},{"type":"text","value":"nit (","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"IesKmT7ECG"},{"type":"strong","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"ALU","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"kS4mdxC4rs"}],"key":"hSECgGLuJm"},{"type":"text","value":"): Performs arithmetics like a calculator (but for binary numbers)","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"paMln0lz9k"}],"key":"CZLCLNGpq0"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"strong","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"C","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"MZKPEa1jNw"}],"key":"gErhVwIUWN"},{"type":"text","value":"ontrol ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"c7gCfyHsVI"},{"type":"strong","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"U","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"GPDxQDq6Vf"}],"key":"x0ZBH36Ewx"},{"type":"text","value":"nit (","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"Kzj4bc5VAa"},{"type":"strong","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"CU","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"RaHZgY8o5c"}],"key":"bzzCaBXpgI"},{"type":"text","value":"): Directs the operations of the processor in executing a program.","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"OT41IIwEzB"}],"key":"xmYYmlpIeJ"}],"key":"rtNXOsA31T"}],"key":"RAST6z1IDE"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"To visualize how CPU works, run the ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"LyCnVqwFvV"},{"type":"link","url":"https://github.com/pddring/cpu-simulator","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"CPU Simulator below","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"RS83qopo1N"}],"urlSource":"https://github.com/pddring/cpu-simulator","error":true,"key":"Z1frXNCWSa"},{"type":"text","value":".","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"hYjF7BlHZt"}],"key":"jhXhDZtmPc"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"Note that all values are zeros in the RAM (","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"w2JeQbSY4n"},{"type":"strong","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"R","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"DDCEPZFFh4"}],"key":"jQEHK0quBF"},{"type":"text","value":"andom ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"TzTzNXttt5"},{"type":"strong","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"A","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"Sh6CFBqyA5"}],"key":"w1PyH91wN1"},{"type":"text","value":"cess ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"zXNACReJk6"},{"type":"strong","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"M","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"mr2GWfxZQN"}],"key":"S4k2jopv8b"},{"type":"text","value":"emory) initially.","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"jgUXKPoTO6"}],"key":"kbRTV0AxRo"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"Under Settings, click ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"Nar06BwzCg"},{"type":"inlineCode","value":"Examples","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"aSwAqKiWOO"},{"type":"inlineMath","value":"\\to ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>→</mo></mrow><annotation encoding=\"application/x-tex\">\\to </annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.3669em;\"></span><span class=\"mrel\">→</span></span></span></span>","key":"GwBNj0oTBK"},{"type":"inlineCode","value":"Add two numbers","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"eJoZhNw5aN"},{"type":"text","value":". Observe that the values in the RAM have changed.","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"gGLoyxksmO"}],"key":"qIWolHAHRe"},{"type":"listItem","spread":true,"position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Click ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"TVfChyrqhB"},{"type":"inlineCode","value":"Run","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"alZXCazlSl"},{"type":"text","value":" at the bottom right-hand corner.","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"HiEmwRP45Q"}],"key":"ITVQvuLozS"}],"key":"OuyNgk2BLF"}],"key":"yVm708FFae"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"card","children":[{"type":"iframe","src":"https://tools.withcode.uk/cpu","width":"100%","key":"wpIppzpeM4"},{"type":"footer","children":[{"type":"paragraph","children":[{"type":"link","url":"https://tools.withcode.uk/cpu","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"Open in new tab","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"ByoR1w9tW3"}],"urlSource":"https://tools.withcode.uk/cpu","key":"TxbZCY650L"}],"key":"xqqTlqBK77"}],"key":"MMn12ypjk5"}],"key":"A6PAZEVHFb"}],"key":"hfKnTG0UzF"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"admonition","kind":"seealso","class":"dropdown","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Is there a rigorous definition of computer?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"F1ZvU6rUZI"}],"key":"UqmFTjmDHn"},{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Computer architecture may evolves over time, with new technologies and innovations emerging. However, modern computers follow the same mathematical principle of the ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"MPN2jtH8iI"},{"type":"cite","url":"https://doi.org/10.1112/plms/s2-42.1.230","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"universal machine","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"jJwuzTSP6x"}],"kind":"narrative","label":"Turing_1937","identifier":"https://doi.org/10.1112/plms/s2-42.1.230","enumerator":"1","key":"aK5nFeZv1N"},{"type":"text","value":" defined by ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"fQLVR4nttS"},{"type":"link","url":"https://en.wikipedia.org/wiki/Alan_Turing","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Alan Turing, Father of Modern Computer","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"NMdFW3IUIg"}],"urlSource":"https://en.wikipedia.org/wiki/Alan_Turing","data":{"page":"Alan_Turing","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"plYGyWiT3a"},{"type":"text","value":". The definition is made to address the problem of computing, i.e., what numbers are computable by programming a machine. Do you have a easy way to understand ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"Sq4IBUpHbO"},{"type":"link","url":"https://en.wikipedia.org/wiki/Turing%27s_proof","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Turing’s proof","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"lMbr5gIYz8"}],"urlSource":"https://en.wikipedia.org/wiki/Turing%27s_proof","data":{"page":"Turing%27s_proof","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"DK8SbkwVvS"},{"type":"text","value":"?","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"XUeqsvDNlV"}],"key":"ZkUpfV6DhD"}],"key":"oxqyiwDg4Y"}],"key":"wxSRlv0ZNT"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"slide"}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Programming","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"lCETn5BmLo"}],"identifier":"programming","label":"Programming","html_id":"programming","implicit":true,"key":"PWTRkq41rp"}],"key":"jV6d863LJt"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"heading","depth":3,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"What is programming?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"WWnevpK39Z"}],"identifier":"what-is-programming","label":"What is programming?","html_id":"what-is-programming","implicit":true,"key":"qtWJ6JmUYs"}],"key":"ODMaUpXQBE"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"admonition","kind":"important","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"What is programming?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"FIaB18wfZb"}],"key":"bX527CZnEP"},{"type":"paragraph","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"Programming","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"ol2CYAwEiu"}],"key":"VkDolBZkzN"},{"type":"text","value":", also called ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"XIp7MeUjcC"},{"type":"emphasis","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"software development","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"c8CxSIm5x9"}],"key":"JBvUDnydRG"},{"type":"text","value":", is the process of writing programs for the computer to execute different tasks.","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"uodNXnLk37"}],"key":"dMkCUTWsUB"}],"key":"FyIKIpRw2e"}],"key":"vu3B5EMewT"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"But what is a program?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"FkvrpThrIp"}],"key":"L13DHj2vxm"}],"key":"qV9qSMAa19"},{"type":"block","kind":"notebook-content","data":{"nbgrader":{"grade":false,"grade_id":"cell-7675978e85548d96","locked":true,"schema_version":3,"solution":false,"task":false},"slideshow":{"slide_type":"fragment"}},"children":[{"type":"exercise","label":"ex:machine-language","identifier":"ex:machine-language","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"You have just seen a program written in ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"UQ8f0PxoLU"},{"type":"link","url":"https://en.wikipedia.org/wiki/Machine_code","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"machine language","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"srnB16Rr8Q"}],"urlSource":"https://en.wikipedia.org/wiki/Machine_code","data":{"page":"Machine_code","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"DrLI6MJT6j"},{"type":"text","value":". Where?","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"SxFdMELeLT"}],"key":"iuguFQV3Aw"}],"enumerator":"4","html_id":"ex-machine-language","key":"YlUYXlWHK4"}],"key":"wE0kjJF5s1"},{"type":"block","kind":"notebook-content","data":{"nbgrader":{"grade":true,"grade_id":"cell-08298600f10cfc25","locked":false,"points":0,"schema_version":3,"solution":true,"task":false},"slideshow":{"slide_type":"-"}},"children":[{"type":"solution","label":"sol:machine-language","identifier":"sol:machine-language","class":"dropdown","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Solution to ","key":"pC6QtoWtt7"},{"type":"crossReference","label":"ex:machine-language","identifier":"ex:machine-language","kind":"exercise","children":[{"type":"text","value":"Exercise ","key":"iDuHNtV5x9"},{"type":"text","value":"4","key":"AjNH7wGNDH"}],"template":"Exercise %s","enumerator":"4","resolved":true,"html_id":"ex-machine-language","key":"rJ2XWda4SR"}],"key":"qZ6mi2TQRD"},{"type":"paragraph","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"The first six lines of binary sequences in the RAM. The last line ","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"m3vmxsFT8V"},{"type":"inlineCode","value":"End","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"TRN64l9bgp"},{"type":"text","value":"s the program.","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"GQsjlyq0nj"}],"key":"nI2hlqzZh6"}],"html_id":"sol-machine-language","key":"tYBuZUOLzK"}],"key":"WJBirHt22v"},{"type":"block","kind":"notebook-code","data":{},"children":[{"type":"code","lang":"python","executable":true,"value":"%%ai chatgpt\nSummarize what a machine language is and give an example of a program in machine language.","key":"oq1tyzMHWq"},{"type":"output","id":"IMugH79mtP2SzRyXPh1z2","data":[],"key":"oyvNEVTKtw"}],"key":"iyQbvTaaPQ"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"The CPU is capable of carrying out","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"lalkuMFufY"}],"key":"ZZTCvsdlig"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"a set of instructions such as ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"lQ6t3PeFpL"},{"type":"inlineCode","value":"Add","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"YqwhfMF9Rn"},{"type":"text","value":", ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"q8ckqUQWV6"},{"type":"inlineCode","value":"Subtract","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"wA4W9ptBmH"},{"type":"text","value":", ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"l9YSF6XV70"},{"type":"inlineCode","value":"Store","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"ME5VkoyIT9"},{"type":"text","value":", etc.,","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"l2vtd7kC3M"}],"key":"NQnLFpXtWf"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"for some numbers stored in the RAM.","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"vuBBXMHpG6"}],"key":"A1kpqQrKox"}],"key":"O0x9th51v5"}],"key":"pNFvMvigfG"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Both the instructions and the numbers are represented as binary sequences.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"eOwDUzRjzI"}],"key":"KZPsinTFjm"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"E.g., in Intel-based CPU, the command for addition is ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"LHMG0h2pv4"},{"type":"strong","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"00000011 00000100","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"g3cMS9arsY"}],"key":"pfFOjnSKHh"}],"key":"wuSNnDWl4F"}],"key":"LZ4JrZpXdO"}],"key":"PwxAZxW6fk"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"heading","depth":3,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Why computer uses binary representation?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"TAEtzoDxnd"}],"identifier":"why-computer-uses-binary-representation","label":"Why computer uses binary representation?","html_id":"why-computer-uses-binary-representation","implicit":true,"key":"f7nWJgv0Yk"}],"key":"C41uh4CrEe"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"card","children":[{"type":"header","children":[{"type":"paragraph","children":[{"type":"text","value":"Binary representation","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"CCTYYeAq1c"}],"key":"Gpv37ZoZuS"}],"key":"qx4ktkr6TE"},{"type":"iframe","src":"https://www.youtube.com/embed/Xpk67YzOn5w","width":"100%","key":"yxd1g6HEgc"},{"type":"footer","children":[{"type":"paragraph","children":[{"type":"link","url":"https://youtu.be/Xpk67YzOn5w","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"open in new tab","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"OZKddb67al"}],"urlSource":"https://youtu.be/Xpk67YzOn5w","key":"wTeKWvw3Yk"}],"key":"s23vzE4XjB"}],"key":"J7kQWIx3TY"}],"key":"pmEmaYPQqK"}],"key":"cvu2gkvL0J"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"exercise","label":"ex:ENIAC","identifier":"ex:eniac","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"The first electronic computer, called ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"KupBMMSpab"},{"type":"link","url":"https://en.wikipedia.org/wiki/ENIAC","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Electronic Numerical Integrator and Computer (ENIAC)","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"pPqpoGGAmW"}],"urlSource":"https://en.wikipedia.org/wiki/ENIAC","data":{"page":"ENIAC","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"DLHNGuYqe1"},{"type":"text","value":", was programmed using binary circuitries, namely ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"ruBjLghVRi"},{"type":"emphasis","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"switches","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"aDYQHOtZrA"}],"key":"NoNb99PMWu"},{"type":"text","value":" that can be either ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"SbYvnElHpD"},{"type":"inlineCode","value":"On","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"zRFabLzQyB"},{"type":"text","value":" or ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"iBEMKfRyD8"},{"type":"inlineCode","value":"Off","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"QgW7YhEfob"},{"type":"text","value":".","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"Afvu4EyR8J"}],"key":"i83uoTV1Qx"},{"type":"container","kind":"figure","children":[{"type":"image","url":"/~ccha23/cs1302_24a/build/2e449d24573de2b055e16feacce76d8e.jpeg","alt":"Two programmers operating ENIAC.","align":"left","key":"nslHBAZU7O","urlSource":"https://upload.wikimedia.org/wikipedia/commons/8/8c/Two_women_operating_ENIAC_%28full_resolution%29.jpg"},{"type":"caption","children":[{"type":"paragraph","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"children":[{"type":"captionNumber","kind":"figure","label":"fig:ENIAC","identifier":"fig:eniac","html_id":"fig-eniac","enumerator":"5","children":[{"type":"text","value":"Figure ","key":"aLRkX7zSUi"},{"type":"text","value":"5","key":"Jdl8ImMbh4"},{"type":"text","value":":","key":"psu4us24d4"}],"template":"Figure %s:","key":"vDIsiXIQm9"},{"type":"text","value":"Programmers controlling the switches of ENIAC.","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"key":"dZWxfoNZyY"}],"key":"GyZzfRpskS"}],"key":"Uro88LtHPE"}],"label":"fig:ENIAC","identifier":"fig:eniac","enumerator":"5","html_id":"fig-eniac","key":"eAuDJIY2QV"},{"type":"paragraph","position":{"start":{"line":14,"column":1},"end":{"line":15,"column":1}},"children":[{"type":"text","value":"However, it did not represent values efficiently in binary. 10 binary digits (bits) was used to represent a decimal number 0 to 9.","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"key":"MlxHIKTMR0"},{"type":"break","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"key":"V5VhyzVCrC"},{"type":"text","value":"Indeed, how many decimals can be represented by 10 bits?","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"key":"AdDj4EgRJS"}],"key":"dzDfrSTdiW"}],"enumerator":"5","html_id":"ex-eniac","key":"JlBwYBkEqQ"}],"key":"kC1xQUMxQN"},{"type":"block","kind":"notebook-code","data":{"nbgrader":{"grade":true,"grade_id":"cell-1023083cd0aca779","locked":false,"points":0,"schema_version":3,"solution":true,"task":false},"slideshow":{"slide_type":"-"},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"### BEGIN SOLUTION\n2 ** 10 # because there are that many binary sequences of length 10.\n### END SOLUTION","visibility":"show","key":"SSrlubQDNo"},{"type":"output","id":"bF17nOO75KSEe3Ei5HQ-K","data":[],"visibility":"show","key":"AHZOtH4999"}],"visibility":"hide","key":"XmnPjQRXNa"},{"type":"block","kind":"notebook-code","data":{},"children":[{"type":"code","lang":"python","executable":true,"value":"%%ai chatgpt\nExplain the multiplication rule in combinatorics.","key":"zmeey2bm9X"},{"type":"output","id":"FZEdl9c62pbRAhrKMqUsp","data":[],"key":"Wm6INrqH5d"}],"key":"ornmAK7Wzb"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"As mentioned in the video, there are ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"wLTM97bvXU"},{"type":"emphasis","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"International Standards","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"CBCI8CdYuk"}],"key":"lV9zGkH3hs"},{"type":"text","value":" for representing characters:","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"FXtG6cGRyF"}],"key":"BmdgH1FGmE"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"link","url":"https://en.wikipedia.org/wiki/ASCII","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"ASCII","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"MQHyzF0blv"}],"urlSource":"https://en.wikipedia.org/wiki/ASCII","data":{"page":"ASCII","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"eB5kwXtsb6"},{"type":"text","value":" (","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"NXlddpbqR5"},{"type":"strong","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"A","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"yxi4KXiY1t"}],"key":"L5U9kiOf3O"},{"type":"text","value":"merican ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"CQXWZxNxZo"},{"type":"strong","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"S","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"PqTRFlGaHV"}],"key":"hutxhF8C7c"},{"type":"text","value":"tandard ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"N77X1oeWeo"},{"type":"strong","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"C","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"a2pcYvMRcB"}],"key":"Y9pKDh4rI3"},{"type":"text","value":"ode for ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"qkRsSUnJav"},{"type":"strong","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"I","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"F8VRFHZB7J"}],"key":"ENK9cC4JgH"},{"type":"text","value":"nformation ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"doLhkrK2ZC"},{"type":"strong","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"I","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"GlyOxsPmIh"}],"key":"nBJqCl7hA0"},{"type":"text","value":"nterchange) maps English letters and some other symbols to 8-bits (8 binary digits, also called a byte). E.g., ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"gx0KB8Jw5K"},{"type":"inlineCode","value":"A","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"rkTceKsydv"},{"type":"text","value":" is ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"I3zhyCTLCv"},{"type":"inlineCode","value":"01000001","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"two4JCqwqt"},{"type":"text","value":".","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"XRxaSCsFyc"}],"key":"Z6TrLjGyEn"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"link","url":"https://en.wikipedia.org/wiki/Unicode","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"Unicode","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"lBJiKKMlIC"}],"urlSource":"https://en.wikipedia.org/wiki/Unicode","data":{"page":"Unicode","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"xclY1XUItb"},{"type":"text","value":" can also represent characters in different languages such as Chinese, Japanese...etc.","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"R1gcJXhiQ7"}],"key":"XbZtC9g3L5"}],"key":"mPPPkhMdee"}],"key":"q97rVKA3uz"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"There are additional standards to represent numbers other than non-negative integers:","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"hK6mFxFpN5"}],"key":"cw4DIUy6LP"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"link","url":"https://en.wikipedia.org/wiki/Two%27s_complement","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"2’s complement format","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"eZ71EjFzKX"}],"urlSource":"https://en.wikipedia.org/wiki/Two%27s_complement","data":{"page":"Two%27s_complement","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"Cs1ghy3Kfu"},{"type":"text","value":" for negative integers (e.g. -123)","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"wi3wHyrlTC"}],"key":"e6fI7ZjxOz"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"link","url":"https://en.wikipedia.org/wiki/IEEE_754","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"IEEE floating point format","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"K0xoOGWWDF"}],"urlSource":"https://en.wikipedia.org/wiki/IEEE_754","data":{"page":"IEEE_754","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"iXpjUDnvrF"},{"type":"text","value":" for floating point numbers such as ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"kTqTHsEOEx"},{"type":"inlineMath","value":"1.23 \\times 10^{-4}","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mn>1.23</mn><mo>×</mo><mn>1</mn><msup><mn>0</mn><mrow><mo>−</mo><mn>4</mn></mrow></msup></mrow><annotation encoding=\"application/x-tex\">1.23 \\times 10^{-4}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7278em;vertical-align:-0.0833em;\"></span><span class=\"mord\">1.23</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8141em;\"></span><span class=\"mord\">1</span><span class=\"mord\"><span class=\"mord\">0</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">−</span><span class=\"mord mtight\">4</span></span></span></span></span></span></span></span></span></span></span></span>","key":"b96NhOR5u4"},{"type":"text","value":".","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"CzwHpM0Mo0"}],"key":"QYUnNTluJo"}],"key":"oR7J88gAlH"}],"key":"XuGK935Htq"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"admonition","kind":"note","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Why define different standards?","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"VR1rHS5A7D"}],"key":"IOOmBAuqg0"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":4,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Different standards have different benefits. ASCII requires less storage for a character, but it represents less characters.","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"jGhwbUF7Iq"}],"key":"A4Nt3Po9v7"},{"type":"listItem","spread":true,"position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"Although digits are also represented in ASCII, the 2’s complement format is designed for more efficient arithmetic operations.","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"CRMjNKFSIh"}],"key":"efwaOMXfn6"}],"key":"PeDJ6mwAVs"}],"key":"y8ObZb73uO"}],"key":"X42rKLUw0K"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"slide"}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Different generations of programming languages","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"bjst0iSXar"}],"identifier":"different-generations-of-programming-languages","label":"Different generations of programming languages","html_id":"different-generations-of-programming-languages","implicit":true,"key":"LqFA2by9av"}],"key":"I90WouFq1V"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"admonition","kind":"important","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Important","key":"FViTbTaC4P"}],"key":"dCdXHvNc2P"},{"type":"paragraph","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"A ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"yOJl7kkGrN"},{"type":"emphasis","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"machine language","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"MP7Gxe1tTz"}],"key":"Gavvy7aZUg"},{"type":"text","value":" written in ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"t73hFk9VSU"},{"type":"emphasis","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"binary sequences","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"r1GA3aATex"}],"key":"CC2Vs9sS2T"},{"type":"text","value":" is known as a ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"cEFqDbGwHX"},{"type":"emphasis","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"1st Generation Programming Language","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"dCEn3jODyk"}],"key":"cDl2epx5b2"},{"type":"text","value":".","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"CMh4mFIQ2E"}],"key":"o95ISAnSNs"}],"key":"MjH90nGonN"}],"key":"AbbA9nNXBn"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"strong","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Are we going to start with machine language?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"DXWbwmk0yk"}],"key":"x4REZY6y4d"},{"type":"text","value":"\nStart with learning 2’s complement and the binary codes for different instructions?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"OV2d97Nrik"}],"key":"VlBAs1KgD7"}],"key":"MvuGRS5mKj"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"No. Programmers do not write machine codes directly because it is too hard to think in binary representations.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"UPquRlIyvD"}],"key":"jp4hxUq6LP"}],"key":"D4o6vad34r"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"Instead, programmers write human-readable ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"CZPvTNsGJP"},{"type":"strong","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"mnemonics","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"uv9Gxf1E1E"}],"key":"HsFHklENwf"},{"type":"text","value":" such as ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"koCPL0NoE4"},{"type":"inlineCode","value":"ADD","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"UcJIJG6Jb3"},{"type":"text","value":", ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"SMH85D86UN"},{"type":"inlineCode","value":"SUB","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"VkgsRohFqK"},{"type":"text","value":", ...","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"Z6xNd8FeXv"},{"type":"break","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"Rn5iS4iNw4"},{"type":"text","value":"This is called the ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"I8CBqJiAuW"},{"type":"emphasis","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"assembly language","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"M05SsaJA98"}],"key":"SXTq7TnmPQ"},{"type":"text","value":":","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"PcoM0zYr0g"}],"key":"Tmze2Laqqf"}],"key":"dCcUbhDjzv"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"container","kind":"figure","children":[{"type":"image","url":"/~ccha23/cs1302_24a/build/677a828442ed775f49b4ceb3241d4568.png","alt":"Assembly language","align":"left","key":"xQY6GpoLvI","urlSource":"https://upload.wikimedia.org/wikipedia/commons/f/f3/Motorola_6800_Assembly_Language.png"},{"type":"caption","children":[{"type":"paragraph","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"captionNumber","kind":"figure","label":"assembly-language","identifier":"assembly-language","html_id":"assembly-language","enumerator":"6","children":[{"type":"text","value":"Figure ","key":"SKGQnDjxNm"},{"type":"text","value":"6","key":"LqTPumhRgm"},{"type":"text","value":":","key":"Ko8y3Jrere"}],"template":"Figure %s:","key":"nnp5UqSw57"},{"type":"text","value":"A Code written in an assembly language.","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"dmsp13BQWj"}],"key":"vn0CclAXkz"}],"key":"pVWJiybomb"}],"label":"assembly-language","identifier":"assembly-language","enumerator":"6","html_id":"assembly-language","key":"lGmysKsoxb"}],"key":"M7C39i0H9Z"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"admonition","kind":"important","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Important","key":"q3LTkFBwJg"}],"key":"KrHsALTg6P"},{"type":"paragraph","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"An ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"Pk8Wxraefg"},{"type":"emphasis","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"assembly language","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"kca6gfx2u2"}],"key":"CAlNWdR00c"},{"type":"text","value":" written in ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"XsYM7T2Ue7"},{"type":"emphasis","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"mnemonics","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"MBrEkHq1gY"}],"key":"tqLIJwHyLL"},{"type":"text","value":" is the ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"Y8WXirYlPY"},{"type":"emphasis","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"2nd Generation Programming Language","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"q1vVBx3Pdl"}],"key":"JqTsfIvdAz"},{"type":"text","value":".","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"CiypX9Gavt"}],"key":"y4ZomS8wUK"}],"key":"tX6C3vfXtY"}],"key":"MHiYUJ4bbM"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"strong","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Are you going to learn an assembly language?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"mbUR88SfRT"}],"key":"wHX83aJrrM"}],"key":"JgsoCf7so1"}],"key":"EAnsMKpuaR"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Both machine language and assembly language are low-level languages which are","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"mNePMFcdZ2"}],"key":"xeBlpDvFx0"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"difficult to write for complicated tasks (requiring many lines of code), and","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"lQIC98vdCL"}],"key":"nfhWCbkctB"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"platform-specific:","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"THmUnd1SmO"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":4,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"the sets of instructions and their binary codes can be different for different ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"SjA3XzFxlr"},{"type":"link","url":"https://en.wikipedia.org/wiki/Comparison_of_CPU_microarchitectures","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"types of CPUs","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"GVlRtHT6Xh"}],"urlSource":"https://en.wikipedia.org/wiki/Comparison_of_CPU_microarchitectures","data":{"page":"Comparison_of_CPU_microarchitectures","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"aNxqYphJoU"},{"type":"text","value":", and","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"neNwUl3uVU"}],"key":"gteNIJgHHS"},{"type":"listItem","spread":true,"position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"different operating systems use ","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"eN2r5nLXI2"},{"type":"link","url":"https://en.wikipedia.org/wiki/X86_assembly_language","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"different assembly languages/styles","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"Lhe5xkXfNi"}],"urlSource":"https://en.wikipedia.org/wiki/X86_assembly_language","data":{"page":"X86_assembly_language","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"al5vI1j1Kd"},{"type":"text","value":".","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"rLxPGhBfNo"}],"key":"yafhoVxEdG"}],"key":"SobNLlIkUu"}],"key":"VJUcegzVXD"}],"key":"y5lToLAzTT"}],"key":"MNQCfyPZn0"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Anyone wants to learn assembly languages, and write a program in many versions to support different platforms?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"yKyx6N42DP"}],"key":"A70s38f2YW"}],"key":"MivFiigs7D"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Probably for programmers who need to write fast or energy-efficient code such as","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"um4zOxLq0r"}],"key":"lippz1YQPO"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"a driver that controls a 3D graphics card, and","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"FcIPa7kLzn"}],"key":"zwBBQVJggb"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"a program that control a microprocessor with limited power supply.","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"fZErwUwDvY"}],"key":"gJYiGKFH8w"}],"key":"MUFWsFiDsU"}],"key":"HujBnTaENc"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"But even in the above cases, there are often better alternatives. Play with the following microprocessor simulator:","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"C0mZaiF6Yg"}],"key":"ClYESeYlSG"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":3,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"Open ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"beTLzmtNqG"},{"type":"link","url":"https://micropython.org/unicorn/","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"https://​micropython​.org​/unicorn​/","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"Rk2AUlX2dV"}],"urlSource":"https://micropython.org/unicorn/","key":"jVPcBgQw2s"},{"type":"text","value":" in a browser.","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"Z81yR5uYML"}],"key":"QA18QQworo"},{"type":"listItem","spread":true,"position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Click ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"YdiMUWukpx"},{"type":"inlineCode","value":"CHOOSE A DEMO","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"Mb7E44wqQ1"},{"type":"inlineMath","value":"\\to ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>→</mo></mrow><annotation encoding=\"application/x-tex\">\\to </annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.3669em;\"></span><span class=\"mrel\">→</span></span></span></span>","key":"uRLsj9n91q"},{"type":"inlineCode","value":"LED","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"bCKhdkOAnK"},{"type":"text","value":".","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"xQCJqmtl0D"}],"key":"CAy0tpMEkL"},{"type":"listItem","spread":true,"position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"Click ","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"tbRMZvKCoX"},{"type":"inlineCode","value":"RUN SCRIPT","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"LP8mi2FFIg"},{"type":"text","value":" and observes the LED of the board.","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"WWgB7aIy56"}],"key":"HoFyWRsfGh"},{"type":"listItem","spread":true,"position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"text","value":"Run the demos ","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"P1mG0vTz2z"},{"type":"inlineCode","value":"ASSEMBLY","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"tPsbQ35hwb"},{"type":"text","value":" and ","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"OvvTZtVhc3"},{"type":"inlineCode","value":"MATH","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"PnPKJG2plJ"},{"type":"text","value":" respectively and compare their capabilities.","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"IjgvW5Ctad"}],"key":"a2bTI1JHls"}],"key":"b3Dsyk5KeE"}],"key":"ZyapqneyLf"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"slide"}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"High-level Language","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"Qsrj3Qimp3"}],"identifier":"high-level-language","label":"High-level Language","html_id":"high-level-language","implicit":true,"key":"WwvV9PzRQY"}],"key":"bVVPgWhFIr"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"card","children":[{"type":"header","children":[{"type":"paragraph","children":[{"type":"text","value":"Programming","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"pFXmgzcKgX"}],"key":"eBnNQ6eVUL"}],"key":"mcpkGyH5fi"},{"type":"iframe","src":"https://www.youtube.com/embed/QdVFvsCWXrA","width":"100%","key":"XD59nFQEO8"},{"type":"footer","children":[{"type":"paragraph","children":[{"type":"link","url":"https://youtu.be/QdVFvsCWXrA","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"open in new tab","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"tfLTMsY4rf"}],"urlSource":"https://youtu.be/QdVFvsCWXrA","key":"cTj9MLsKIj"}],"key":"Yxl415qs3J"}],"key":"okqfL9bS6n"}],"key":"ssiBEDX3KI"}],"key":"m1ZEaIheWX"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Programmer nowadays write in human-readable languages such as","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"srm9HHpEYd"}],"key":"qbcITzW4nG"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":3,"column":1},"end":{"line":12,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"C/C++","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"ZALaVYkeAh"}],"key":"ZZmEAttLf6"},{"type":"listItem","spread":true,"position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Java","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"SGqTHEVceg"}],"key":"o2s99rJx2Y"},{"type":"listItem","spread":true,"position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"JavaScript/Typescript","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"nqAVFtSAPq"}],"key":"pH2fJuIDX9"},{"type":"listItem","spread":true,"position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"text","value":"Pascal","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"ULkOkSCZQu"}],"key":"BVkxypb3Tp"},{"type":"listItem","spread":true,"position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"children":[{"type":"text","value":"Basic","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"dmztuCMI98"}],"key":"yWcwyh1Img"},{"type":"listItem","spread":true,"position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"children":[{"type":"text","value":"HTML","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"key":"uvK20ek2Tc"}],"key":"vwieUweXMJ"},{"type":"listItem","spread":true,"position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"children":[{"type":"text","value":"PHP","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"key":"hizs9ERbto"}],"key":"qHWAOzuxrw"},{"type":"listItem","spread":true,"position":{"start":{"line":10,"column":1},"end":{"line":10,"column":1}},"children":[{"type":"text","value":"Python","position":{"start":{"line":10,"column":1},"end":{"line":10,"column":1}},"key":"E2edJlhWai"}],"key":"lcKYWKBzOw"},{"type":"listItem","spread":true,"position":{"start":{"line":11,"column":1},"end":{"line":12,"column":1}},"children":[{"type":"text","value":"...","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"key":"UfucmRbXUk"}],"key":"oyItfpkpD3"}],"key":"yXj8znl1OI"},{"type":"paragraph","position":{"start":{"line":13,"column":1},"end":{"line":13,"column":1}},"children":[{"type":"text","value":"called ","position":{"start":{"line":13,"column":1},"end":{"line":13,"column":1}},"key":"XvX0Y2neMp"},{"type":"emphasis","position":{"start":{"line":13,"column":1},"end":{"line":13,"column":1}},"children":[{"type":"text","value":"high-level languages","position":{"start":{"line":13,"column":1},"end":{"line":13,"column":1}},"key":"DHqwQ9BD7D"}],"key":"WvJa05CZXE"},{"type":"text","value":".","position":{"start":{"line":13,"column":1},"end":{"line":13,"column":1}},"key":"ayWNmIQ5wg"}],"key":"RHR2olJrHu"}],"key":"Xz2pRoCCAq"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"admonition","kind":"important","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Important","key":"s8uizK4nii"}],"key":"B1CEX7Sm9N"},{"type":"paragraph","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"A ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"AJQPrqYTdI"},{"type":"emphasis","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"high-level language","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"vk5vo44pbx"}],"key":"ROrzVYfblu"},{"type":"text","value":" intended to be ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"OENGp7peDZ"},{"type":"emphasis","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"human understandable","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"pMtThstNy1"}],"key":"npG5q9vcgF"},{"type":"text","value":" is a ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"TVqFt8V2tD"},{"type":"emphasis","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"3rd Generation Programming Language","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"UGVMlsKAtC"}],"key":"xSX9WY8n86"},{"type":"text","value":".","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"HHTfzRsCAD"}],"key":"x1hEnEL0bP"}],"key":"QtrVEO5XBr"}],"key":"u4TZCZj4kh"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"slide"}},"children":[{"type":"heading","depth":3,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"What is a high-level language?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"qlD961Aaop"}],"identifier":"what-is-a-high-level-language","label":"What is a high-level language?","html_id":"what-is-a-high-level-language","implicit":true,"key":"cUKCmEghsv"}],"key":"EO2eSAaNrg"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":1,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"A program written in a high-level language gets converted automatically to a low-level machine code for the desired platform.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"dLnifOls2D"}],"key":"ekRqHK3JZ5"},{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"This ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"D8GeG6rq4d"},{"type":"emphasis","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"abstracts","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"GSrSQXqCoA"}],"key":"l9210ydfvf"},{"type":"text","value":" away low-level details that can be handled by the computer automatically.","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"B4lPxjzpv6"}],"key":"yjZ5M8pWCZ"}],"key":"iOmbaDqPSp"}],"key":"tlSeq6OVt2"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"For instance, a programmer needs not care about where a value should be physically stored if the computer can find a free location automatically to store the value.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"Bw1f075yyt"}],"key":"yuYpKwOrZ2"}],"key":"SDEOVE5NNm"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Different high-level languages can have different implementations of the conversion processes:","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"j2B0PGFG0M"}],"key":"XbaE1P34ZJ"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"strong","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"Compilation","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"bH3mBmfGgT"}],"key":"Qln79xYiOC"},{"type":"text","value":" means converting a program well before executing the program.","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"oJC8887bTR"},{"type":"break","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"xsrVZWpIOB"},{"type":"text","value":"E.g., C++ and Java programs are compiled.","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"z0T8zHttEt"}],"key":"qnLFYfSyAF"},{"type":"listItem","spread":true,"position":{"start":{"line":4,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"strong","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Interpretation","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"owoE4Ee7jw"}],"key":"uqaYTxrqNz"},{"type":"text","value":" means converting a program on-the-fly during the execution of a program.","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"w5deWWcCnu"},{"type":"break","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"wmtGOi2u4l"},{"type":"text","value":"E.g., JavaScript and Python programs are often interpreted.","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"iL5jmiZIij"}],"key":"Jtb3kLs06c"}],"key":"HmDAjZfND7"}],"key":"OlqVyv5qyz"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"admonition","kind":"seealso","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"See Also","key":"Xx42FmqvBF"}],"key":"jUAiTxIRB9"},{"type":"paragraph","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"Roughly speaking, compiled programs run faster but interpreted programs are more flexible and can be modified at run time. The ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"eJZWUeDobi"},{"type":"link","url":"https://finematics.com/compiled-vs-interpreted-programming-languages/","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"truth","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"DYcXkdtu0G"}],"urlSource":"https://finematics.com/compiled-vs-interpreted-programming-languages/","key":"rEMC1QAuta"},{"type":"text","value":" is indeed more complicated. Python also has a compiler, and recently, a ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"Tax1cU4jG2"},{"type":"link","url":"https://github.com/python/cpython/pull/113465","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"JIT compiler","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"AmMblMIgB3"}],"urlSource":"https://github.com/python/cpython/pull/113465","data":{"kind":"issue","org":"python","repo":"cpython","issue_number":"113465"},"internal":false,"protocol":"github","key":"tel7rIjF8m"},{"type":"text","value":". Is Python really an interpreted language?","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"ALx0dFGANp"}],"key":"FBUqznIPvM"}],"key":"avKj9wDsBx"}],"key":"ijoRvtZdiR"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"slide"}},"children":[{"type":"heading","depth":3,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"What programming language will you learn?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"U6ViPPY3U1"}],"identifier":"what-programming-language-will-you-learn","label":"What programming language will you learn?","html_id":"what-programming-language-will-you-learn","implicit":true,"key":"cD6PTRXwtc"}],"key":"r0BR7A7jWk"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"You will learn to program in ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"cpnO5SCAU3"},{"type":"emphasis","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"python","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"VfLJNynqYI"}],"key":"Dgfwg1hPYu"},{"type":"text","value":", covering","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"QqlLvcIjBv"}],"key":"n1tIrWrCeb"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"basic topics including ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"PRPMiua7tS"},{"type":"emphasis","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"values","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"qUY5yRl5Na"}],"key":"ZNX3OcslwK"},{"type":"text","value":", ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"lSPDjzwhLQ"},{"type":"emphasis","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"variables","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"ZafyPwUV17"}],"key":"Yd5EInlxHB"},{"type":"text","value":", ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"pS8LTaTlwi"},{"type":"emphasis","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"conditional","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"wSEgKEC0WR"}],"key":"JKIRSb9Dme"},{"type":"text","value":", ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"FgMv3dEIYV"},{"type":"emphasis","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"iterations","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"zS4wx2DJqv"}],"key":"j4D3cRKxdH"},{"type":"text","value":", ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"nTA5ZyQkyE"},{"type":"emphasis","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"functions","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"hTnuIlV6RU"}],"key":"cXFFE9cMUw"},{"type":"text","value":", ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"m3gK7HFpRA"},{"type":"emphasis","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"composite data types","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"Dy8FdmZegc"}],"key":"mjkemAD9Ul"},{"type":"text","value":",","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"MYjGVYqiFf"}],"key":"DCp0ujzfcR"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"advanced topics that touch on functional and object-oriented programming, and","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"R6hTrROSaC"}],"key":"Yiu7EXsNKS"},{"type":"listItem","spread":true,"position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"engineering topics such as ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"FokNhkd4YR"},{"type":"emphasis","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"numerical methods","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"qO7pUK9t6H"}],"key":"AOnflRFjTv"},{"type":"text","value":", ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"nV2FpGVMYo"},{"type":"emphasis","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"optimizations","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"DkMmcslVXR"}],"key":"G6J9bB43Pz"},{"type":"text","value":", and ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"zpcZRipsmv"},{"type":"emphasis","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"machine learning","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"g1k0S94YLK"}],"key":"ll9LnVOeyS"},{"type":"text","value":".","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"pxGy5TVT1E"}],"key":"kwdk5bk24i"}],"key":"clIM04HAnu"}],"key":"HhdpRhfSSY"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"strong","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Why Python?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"VypoNVPbUh"}],"key":"OklhBv2Q7j"}],"key":"dOeLA6CSZv"}],"key":"emi12x1wx0"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"card","children":[{"type":"header","children":[{"type":"paragraph","children":[{"type":"text","value":"Why python?","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"zgaGwJShe9"}],"key":"u9LbrFojDF"}],"key":"kUZgwNLmBl"},{"type":"iframe","src":"https://www.youtube.com/embed/Y8Tko2YC5hA?end=200","width":"100%","key":"ouweg1qrLj"},{"type":"footer","children":[{"type":"paragraph","children":[{"type":"link","url":"https://youtu.be/Y8Tko2YC5hA","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"open in new tab","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"sd8J3vA9sZ"}],"urlSource":"https://youtu.be/Y8Tko2YC5hA","key":"pPtAOSmBpo"}],"key":"Pzu7yW1Cad"}],"key":"ajF3OQ2Pv0"}],"key":"RejCoQe10j"}],"key":"exnxxLisnM"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"admonition","kind":"note","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Note","key":"emhVdRBNdV"}],"key":"oNyEdTZ0m1"},{"type":"paragraph","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"Python is:","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"tsdxtRox2w"}],"key":"feIwlHN5QK"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":4,"column":1},"end":{"line":7,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"expressive","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"SgCoyocKiu"}],"key":"cPeV9O0jsj"},{"type":"text","value":" and can get things done with fewer lines of code as compared to other languages.","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"H1so0S5hfN"}],"key":"HiZhnO7WCZ"},{"type":"listItem","spread":true,"position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"popular","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"kxPBPnFuTO"}],"key":"gMIDIaFhJM"},{"type":"text","value":". It has an extensive set of libraries for Mathematics, graphics, AI, Machine Learning, etc.","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"Z1rIknjqAo"}],"key":"r4jNRgcGOO"},{"type":"listItem","spread":true,"position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"text","value":"free and open-source","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"sffl8hUf6I"}],"key":"fnsD2wJ0tr"},{"type":"text","value":", so you get to see everything and use it without restrictions.","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"UZwspaCFfK"}],"key":"kKNz1jT18c"},{"type":"listItem","spread":true,"position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"children":[{"type":"text","value":"portable","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"hQPNUOqKbB"}],"key":"KOEHkzLMVA"},{"type":"text","value":", i.e., the same code runs in different platforms without modifications.","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"BmNTdsXk24"}],"key":"kiLiAbGMru"}],"key":"y8kw9y5h6c"}],"key":"QLk110C4Qs"}],"key":"ws5Zz8v3bT"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"strong","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"How does a Python program look like?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"mIcd7ZKodo"}],"key":"K95tDOUpHl"}],"key":"hvwQ2xLcYM"}],"key":"dMKOCm41Lr"},{"type":"block","kind":"notebook-code","data":{"slideshow":{"slide_type":"-"}},"children":[{"type":"code","lang":"python","executable":true,"value":"import datetime  # library to obtain current year\n\ncohort = input(\"In which year did you join CityU? [e.g., 2020]\")\nyear = datetime.datetime.now().year - int(cohort) + 1\nprint(\"So you are a year\", year, \"student.\")","key":"MWR2vsqOOR"},{"type":"output","id":"vhs9VMNdsbRASvt2ViJJB","data":[],"key":"eV9UPoqRdn"}],"key":"gWiwKF9imN"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"A Python program contains ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"ASWsQD4O4o"},{"type":"emphasis","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"statements","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"VTumRjWWVJ"}],"key":"RXTHYg2Pwx"},{"type":"text","value":" just like sentences in natural languages. E.g.,","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"ChdkYv23ng"}],"key":"PrcltkaMD5"},{"type":"code","lang":"python","value":"cohort = input(\"In which year did you join CityU? \")","position":{"start":{"line":2,"column":1},"end":{"line":4,"column":1}},"key":"TBYuu0B7IQ"},{"type":"paragraph","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"which obtains some information from user input.","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"BFfqZzzadP"}],"key":"aTxJnqM0J8"}],"key":"OXfYotpJsN"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"For the purpose of computations, a statement often contains ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"BKamsIQmza"},{"type":"emphasis","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"expressions","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"YpeCRruaaT"}],"key":"iSghMboMxo"},{"type":"text","value":" that evaluate to certain values.  E.g.,","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"kIbZiyMBOp"}],"key":"onlERlvjWP"},{"type":"code","lang":"python","value":"input(\"In which year did you join CityU? \")","position":{"start":{"line":2,"column":1},"end":{"line":4,"column":1}},"key":"VS9wNqRAUk"},{"type":"paragraph","position":{"start":{"line":5,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"text","value":"is an expression with the value equal to what you input to the prompt.","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"SjKOZ2IgpW"},{"type":"break","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"yq8EyNZOqF"},{"type":"text","value":"That value is then given the name ","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"oOWVwIvoq7"},{"type":"inlineCode","value":"cohort","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"iXv77RPQgP"},{"type":"text","value":".","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"bCqZFklCfI"}],"key":"rENungMbBS"}],"key":"gEi3LcxKZm"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Expressions can be composed of the following objects:","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"rtXxV47Un3"}],"key":"GoC1LCmfkL"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"Functions","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"mCnGONc5ET"}],"key":"vPXjT24h1l"},{"type":"text","value":" such as ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"kIsYWr4WPQ"},{"type":"inlineCode","value":"input","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"YYT5FYOUCn"},{"type":"text","value":", ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"b8XlsBkEk6"},{"type":"inlineCode","value":"now","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"o4d3lXWMlA"},{"type":"text","value":", and ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"dNMCfFkX8j"},{"type":"inlineCode","value":"int","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"YWPX6TDVJj"},{"type":"text","value":", etc., which are like math functions the return some values based on its arguments, if any.","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"RBFRecuqEN"}],"key":"cNnsygXIit"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"Literals","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"TSxV9lpmhg"}],"key":"BEJfuYFYjh"},{"type":"text","value":" such as the string ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"AKSDAsxOGY"},{"type":"inlineCode","value":"\"In which year did you join CityU? \"","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"dX8kLyMc5d"},{"type":"text","value":" and the integer ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"gCiUFLKEMO"},{"type":"inlineCode","value":"1","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"Cbo05a5Hen"},{"type":"text","value":". They are values you type out literally.","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"pfBFF5SjgE"}],"key":"UDK5pUHSaZ"},{"type":"listItem","spread":true,"position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Variables","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"f1qXSWOcvq"}],"key":"PIFIx2yefM"},{"type":"text","value":" such as ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"XENbsJkoya"},{"type":"inlineCode","value":"cohort","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"fgdoBgOkIi"},{"type":"text","value":" and ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"F0lf3mLWeG"},{"type":"inlineCode","value":"year","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"GWyD2J8ttw"},{"type":"text","value":", which are meaningful names to values.","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"Ry6eox1aOF"}],"key":"WNRjJ7dDDS"}],"key":"HVXlKybLFa"}],"key":"ASsPoXeft2"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"To help others understand the code, there are also ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"cL41Uu5SWL"},{"type":"emphasis","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"comments","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"SfsJaFWPjT"}],"key":"gBZArbLXEU"},{"type":"text","value":" that start with ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"b5WxBAxWmp"},{"type":"inlineCode","value":"#","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"R7djyEXVAJ"},{"type":"text","value":".","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"rYKBz6MX2l"},{"type":"break","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"BjiMp44l0Y"},{"type":"text","value":"These are meant to explain the code to human but not to be executed by the computer.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"YYm4lrbe00"}],"key":"ZkXhxDFpIE"}],"key":"YAWubgGlqR"},{"type":"block","kind":"notebook-content","data":{"nbgrader":{"grade":false,"grade_id":"cell-6c906df220a97280","locked":true,"schema_version":3,"solution":false,"task":false},"slideshow":{"slide_type":"subslide"}},"children":[{"type":"exercise","label":"ex:future-programming","identifier":"ex:future-programming","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"What do you think the next generation programming should be?","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"QbMpw6JDh4"}],"key":"UpK21rBqzC"}],"enumerator":"6","html_id":"ex-future-programming","key":"igxVnqR1Ox"}],"key":"HVDUd1NkOr"},{"type":"block","kind":"notebook-content","data":{"nbgrader":{"grade":true,"grade_id":"cell-205d445ede20461d","locked":false,"points":0,"schema_version":3,"solution":true,"task":false},"slideshow":{"slide_type":"fragment"}},"children":[{"type":"solution","class":"dropdown","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Solution to ","key":"BjQvUFjNPV"},{"type":"crossReference","label":"ex:future-programming","identifier":"ex:future-programming","kind":"exercise","children":[{"type":"text","value":"Exercise ","key":"UhLfhPN5G8"},{"type":"text","value":"6","key":"NAytwxC1lR"}],"template":"Exercise %s","enumerator":"6","resolved":true,"html_id":"ex-future-programming","key":"RjBFssuHux"}],"key":"cnu77YGLfl"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":4,"column":1},"end":{"line":14,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":4,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Programming using natural languages. A step towards this direction: ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"zCRuJ6NI5I"},{"type":"link","url":"https://www.wikihow.com/Get-Chatgpt-to-Write-Code","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"ChatGPT for coding","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"V7sjkXNudL"}],"urlSource":"https://www.wikihow.com/Get-Chatgpt-to-Write-Code","key":"Fgws4n4vzk"}],"key":"H3w86qzczY"}],"key":"Gp7XPqXg1C"},{"type":"listItem","spread":true,"position":{"start":{"line":6,"column":1},"end":{"line":14,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"text","value":"Write programs that people enjoy reading, like ","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"BvCXoAAvCk"},{"type":"link","url":"https://www.youtube.com/watch?v=bTkXg2LZIMQ","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"text","value":"literate programming","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"qRsCTkMW85"}],"urlSource":"https://www.youtube.com/watch?v=bTkXg2LZIMQ","key":"n9GQLqS00G"},{"type":"text","value":". A step towards this direction: ","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"wsyjONV5tg"},{"type":"link","url":"https://github.com/fastai/nbdev","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"text","value":"nbdev","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"QMU0asP8o0"}],"urlSource":"https://github.com/fastai/nbdev","error":true,"key":"RdHAobR2da"},{"type":"text","value":".","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"TrvZIwOoEN"}],"key":"Yn5gSk2C83"},{"type":"card","children":[{"type":"header","children":[{"type":"paragraph","children":[{"type":"text","value":"Literate programming","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"key":"kvAZzozeG9"}],"key":"rzGwLH18zZ"}],"key":"oUMcWl6gRF"},{"type":"iframe","src":"https://www.youtube.com/embed/bTkXg2LZIMQ","width":"100%","key":"Ns7snG6xxn"}],"key":"YeAACdVLhi"}],"key":"W0wR0Z6CbP"}],"key":"LmOtrGOrZv"}],"key":"a5h1V4HPGm"}],"key":"cIFjVl6Hi8"},{"type":"block","kind":"notebook-code","data":{},"children":[{"type":"code","lang":"python","executable":true,"value":"%%ai chatgpt\nWhat do you think the next generation programming should be?","key":"mhV03MoMjU"},{"type":"output","id":"Ws4I-GIo4zz9333NpE7aA","data":[],"key":"YMu1n26RK4"}],"key":"u5bM5cIfct"}],"key":"qeYk70iiRV"},"references":{"cite":{"order":["Turing_1937"],"data":{"Turing_1937":{"label":"Turing_1937","enumerator":"1","doi":"10.1112/plms/s2-42.1.230","html":"Turing, A. M. (1937). On Computable Numbers, with an Application to the Entscheidungsproblem. <i>Proceedings of the London Mathematical Society</i>, <i>s2-42</i>(1), 230–265. <a target=\"_blank\" rel=\"noreferrer\" href=\"https://doi.org/10.1112/plms/s2-42.1.230\">10.1112/plms/s2-42.1.230</a>","url":"https://doi.org/10.1112/plms/s2-42.1.230"}}}},"footer":{"navigation":{"prev":{"title":"LLM","url":"/llm","group":"Lab 0"},"next":{"title":"Binary Code","url":"/binary-code","group":"Lab 1"}}},"domain":"http://localhost:3000"}