The ¡Case ¡for ¡Computer ¡Science ¡ CS ¡1110/1111 ¡– ¡Introduc9on ¡to ¡Programming ¡ ¡ CS ¡1110/1111 ¡
The ¡Course ¡Goals ¡ • To ¡teach ¡ the ¡skill ¡of ¡programming ¡ • To ¡teach ¡ the ¡art ¡of ¡computer ¡science ¡ CS ¡1110/1111 ¡ 2
Look ¡around… ¡ • Where ¡do ¡you ¡see ¡compu=ng ¡at ¡work ¡in ¡the ¡ world? ¡ CS ¡1110/1111 ¡ 3
A ¡ques=on ¡ • First, ¡what ¡is ¡an ¡opera=ng ¡system? ¡ • Second, ¡how ¡many ¡opera=ng ¡systems ¡have ¡you ¡ used? ¡ CS ¡1110/1111 ¡ 4
Really? ¡ ¡How ¡many? ¡ • Think ¡of ¡all ¡the ¡devices ¡that ¡contain ¡opera=ng ¡ systems ¡of ¡some ¡kind… ¡ CS ¡1110/1111 ¡ 5
So ¡I ¡ask ¡again… ¡ • Where ¡do ¡you ¡see ¡compu=ng ¡at ¡work ¡in ¡the ¡ world? ¡ • Heck, ¡look ¡just ¡in ¡this ¡room! ¡ ¡In ¡your ¡dorm ¡ room ¡/ ¡apartment! ¡ CS ¡1110/1111 ¡ 6
A ¡system ¡of ¡interest ¡ • SIS ¡ • What's ¡wrong ¡with ¡SIS? ¡ ¡ ¡ – (remember ¡– ¡we ¡only ¡have ¡so ¡much ¡=me ¡in ¡this ¡ class ¡today…) ¡ CS ¡1110/1111 ¡ 7
Cri-‑SIS ¡ • Thoughts? ¡ CS ¡1110/1111 ¡ 8
Okay, ¡that ¡was ¡cathar=c ¡ • Now ¡let's ¡back ¡up ¡for ¡a ¡minute ¡ • Why ¡do ¡we ¡have ¡SIS? ¡ – What's ¡the ¡underlying ¡“problem” ¡it's ¡trying ¡to ¡ solve? ¡ – Is ¡this ¡fundamentally ¡a ¡“computer ¡science” ¡ problem? ¡ ¡If ¡so, ¡what's ¡the ¡problem? ¡ ¡If ¡not, ¡what ¡ discipline ¡does ¡it ¡come ¡from? ¡ • Ac=vity: ¡A ¡Cri-‑SIS ¡ – Groups ¡of ¡3 ¡or ¡4; ¡Answers ¡these ¡ques=ons ¡ CS ¡1110/1111 ¡ 9
A ¡Big, ¡Scary ¡Computer ¡Science ¡Word ¡ • “Algorithm” ¡ • Defini=on? ¡ CS ¡1110/1111 ¡ 10
Algorithms ¡– ¡What ¡do ¡they ¡mean? ¡ • A ¡step-‑by-‑step ¡process ¡for ¡solving ¡a ¡problem ¡ • A ¡recipe! ¡ CS ¡1110/1111 ¡ 11
Well… ¡what's ¡a ¡program? ¡ • A ¡program ¡is ¡an ¡implementa=on ¡of ¡an ¡ algorithm ¡that ¡a ¡computer ¡can ¡understand ¡ CS ¡1110/1111 ¡ 12
The ¡Challenge ¡ Electricity Functionality CS ¡1110/1111 ¡ 13
Abstrac=on ¡ • Split ¡up ¡the ¡problem ¡into ¡ Provide the required functionality to the user several ¡layers ¡ • Each ¡intermediate ¡layer ¡will: ¡ – Use ¡what ¡its ¡lower ¡layer ¡ provides ¡to ¡do ¡something ¡ ¡ – Hide ¡the ¡characteris=cs ¡of ¡the ¡ layers ¡below ¡it ¡to ¡the ¡layer ¡ above ¡ • The ¡lower ¡layers ¡are ¡in ¡ hardware ¡and ¡the ¡higher ¡ Get electricity into the layers ¡in ¡ so>ware ¡ computer CS ¡1110/1111 ¡ 14
Let's ¡Pause ¡for ¡a ¡Moment ¡ • What ¡is ¡a ¡programming ¡language? ¡ – A ¡language ¡that ¡allows ¡you ¡to ¡express ¡computa=ons ¡ performed ¡by ¡a ¡“machine”. ¡ – But, ¡a ¡machine ¡has ¡several ¡layers. ¡ • Each ¡layer ¡has ¡its ¡own ¡programming ¡language! ¡ – The ¡language ¡allows ¡the ¡func=onality ¡provided ¡by ¡a ¡ layer ¡to ¡be ¡used ¡without ¡knowing ¡how ¡it ¡is ¡ implemented ¡( Abstrac9on ) ¡ • What ¡does ¡a ¡language ¡do? ¡ – Provide ¡ representa9ons ¡for ¡data ¡ – Define ¡ opera9ons ¡on ¡the ¡data ¡ CS ¡1110/1111 ¡ ¡ 15
Assembly ¡Language ¡ ¡ (we're ¡now ¡in ¡sodware ¡land) • Data: ¡A ¡collec=on ¡of ¡ .data ¡ logical ¡bits ¡ hellostring: ¡.ascii ¡"Hello ¡“ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡.asciiz ¡"World!\n" ¡ ¡ • Opera9ons: ¡ ADD, SUB, ¡ MULTIPLY,… .text ¡ ( instruc9ons ) main: ¡la ¡$a0, ¡hellostring ¡ • A ¡sequence ¡of ¡instruc=ons ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡li ¡$v0, ¡4 ¡ that ¡perform ¡a ¡ computa=on ¡form ¡a ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡syscall ¡ program . ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡li ¡$v0, ¡10 ¡ • A ¡program ¡uses ¡data ¡that ¡ is ¡stored ¡in ¡ memory. ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡syscall ¡ ¡ CS ¡1110/1111 ¡ 16 ¡
High-‑Level ¡Language ¡(HLL) ¡ • Uses ¡data ¡ representa=ons ¡and ¡ constructs ¡that ¡are ¡ much ¡easier ¡to ¡use ¡to ¡ convert ¡the ¡high-‑level ¡ computa=on ¡steps ¡ ( algorithm ) ¡to ¡a ¡ computer ¡program ¡to ¡ achieve ¡the ¡desired ¡ func=onality. ¡ ¡ CS ¡1110/1111 ¡ 17
Recommend
More recommend