Artwork: An introduction to programming primitives • Draw a picture [1 minute] – It can be concrete, abstract, whatever you want. – Don’t show it to anyone yet. You will show it later. • Find a partner far away from you & sit together [1 minute] • Each A and B (partners), do this: – A: Without showing B your picture, tell B how to replicate the picture exactly. – B: Following A’s instructions, draw the picture. • After 2 to 3 minutes, compare the original and the copy. • Repeat, with A and B reversed. Fundamentals of Software Development 1 Slide 1 Artwork – Observations • Class discussion: – What are your observations from this exercise? • Your observations may include: – Giving adequate instructions is hard! – Good instructions must be precise. – The instructions can be executed more than once. • The 2nd execution may yield the same picture as the 1st. • Or perhaps not, if the instructions interact with the environment: – perhaps you use a different pencil – perhaps you had too much coffee and your hand starts shaking. – These are all characteristics of computer programs, too! Fundamentals of Software Development 1 Slide 2 What is a Program? • A program is a set of instructions that a computer can follow, one by one. – If the computer knows how to do the instruction, the computer simply carries out the instruction. – If there is an instruction that the computer does not know how to do, the instruction needs to be rewritten in more detail. • These are called high-level instructions. • Exercise: What are some high-level instructions from the copy-my-picture exercise? – See the next slide for some answers. Fundamentals of Software Development 1 Slide 3 High-Level Instructions • Suppose the picture is a picture of a person. – Draw the face is a high-level instruction. How can it be rewritten? – Draw the face might become: • Draw the outline of the face. Draw two eyes. Draw eyebrows. Draw the nose. Draw the mouth. • These are high-level instructions too! How might draw two eyes be rewritten? – Draw two eyes might become: • Draw one eye near the top left of the outline. Draw the other eye near the top right of the outline. • How might draw one eye be rewritten? Fundamentals of Software Development 1 Slide 4 Designing a Program, Part 1 • These high-level instructions show that you can use top-down design to build programs like the copymy-picture program. • Step 1: – Ask yourself “What do I do next?” – until you have a sequence of instructions that accomplishes the desired result. • Step 2: – Ask yourself “How do I do each of these things?” – until each instruction is something the computer knows how to do. Fundamentals of Software Development 1 Slide 5 Programming Primitives • We call the things that the computer knows how to do programming primitives. • What general-purpose programming primitives did you use in the draw-my-face exercise? • Most computer languages provide: – Combining by sequencing: do this, then that, then ... – Combining by grouping and giving the group a name (high-level instructions). • This is called procedural abstraction (aka encapsulating in methods) – Loops • E.g. (for drawing a circle): Repeat 360 times: draw a short line and change direction by 1 degree. – Conditionals • E.g.: If you have finished the circle, stop; else ... Fundamentals of Software Development 1 Slide 6 Summary, so far • A programmer answers the questions: – What do I do next? – How do I do each of these things? • Programming primitives include: – Sequencing, procedural abstraction, conditionals, loops. • This is only one part of the programming problem. The second part is: Coordinating the activities of many interdependent participants in a computational community Fundamentals of Software Development 1 Slide 7
© Copyright 2026 Paperzz