41
www.itsci.mju.ac.th/sayan CONCEPT OF PROGRAMMING SAYAN UNANKARD 1/2562 1

CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

www . i t s c i .m ju . ac . t h / sayan

CONCEPT OF PROGRAMMING SAYAN UNANKARD1/2562

1

Page 2: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

OBJECTIVES

• ใหเขาใจสวนประกอบ และการท างานของคอมพวเตอร

• อธบายขนตอนทเกยวของกบกระบวนการพฒนาโปรแกรม

2

Page 3: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

สวนประกอบ และการท างานของคอมพวเตอร

Hardware and software: the two major components of any computer system

Hardware: อปกรณ และ ชนสวนตาง ๆ

Software: โปรแกรมคอมพวเตอร

Four major operations in a computer:• Input• Processing• Output• Storage

3

Page 4: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

สวนประกอบ และการท างานของคอมพวเตอร

Input devices: สวนทน าเขาขอมลไปในคอมพวเตอร• Mouse, keyboard, scanner

Processing: สวนของการประมวลผลขอมล เชน

• จดการและเรยงล าดบขอมล

• ตรวจสอบความถกตองของขอมล

• การค านวณทางคณตศาสตร หรอ การบนทกและแกไขขอมล

Central Processing Unit (CPU): hardware that performs the tasks

4

Page 5: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

สวนประกอบ และการท างานของคอมพวเตอร

Output devices: สวนของการแสดงผลขอมลไปยงผใช• Printer, monitor, speakers

Programming language: ภาษาในการเขยนโปรแกรมคอมพวเตอร• Visual Basic, Java, C#, C++, COBOL

Syntax: กฎเกณฑในการเขยนค าสงโปรแกรมคอมพวเตอร เชน การใชค า การเชอมตอ ตาง ๆ

Machine language: ภาษาทใชควบคมเครองคอมพวเตอรในการเปด/ปด วงจรคอมพวเตอร

Compiler or interpreter: software ทใชในการแปลงภาษาในการเขยนโปรแกรม ใหเปน machine language

5

Page 6: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

สวนประกอบ และการท างานของคอมพวเตอร

โปรแกรมคอมพวเตอรจะตองเปน free of syntax errors จงจะสามารถ run หรอ executed บนเครองคอมพวเตอรได

To function properly, the logic must be correct

What’s wrong with this logic for making a cake?

6

Page 7: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

สวนประกอบ และการท างานของคอมพวเตอร

Logic errors, or semantic errors, เปนสวนทยากในการตรวจสอบมากกวา syntax errors

Logic for multiplying a number by 2 (includes input, processing and output statements)

7

Page 8: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

สวนประกอบ และการท างานของคอมพวเตอร

2 แหลงบนทกขอมล ไดแก internal และ external

Internal storage:

• Main memory, random access memory (RAM)

• อยภายในระบบคอมพวเตอร

• Volatile: ขอมลจะสญหายหากเกดไฟฟาดบ

External storage:• Persistent: ขอมลเกบแบบถาวร

• Floppy drive, hard drive, flash media, magnetic tape

• อยภายนอกระบบคอมพวเตอร

8

Page 9: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

WHY LEARN PROGRAMMING?

• เปนต าแหนงงานทมความตองการของโลก

• Software Engineers มคาตอบแทนทสง

• ความกดดนนอยกวาอาชพอนๆ ในฐานเงนเดอนทเทากน – เขยนโปรแกรมผดพลาด และสามารถเรยนรจากความผดพลาดได

• Computer มความเกยวของกบชวตประจ าวนเรามากขน – เปนเรองดทจะมความรดานการเขยนโปรแกรม ถงแมวาไมไดอยในสายอาชพนกตาม

• มลกษณะเปน component based programming – การท างานเปนสวนๆ สามารถน าโปรแกรมเดมกลบมาใชงานใหมใน โปรเจคใหมได

• ไมจ าเปนตองเรมเขยนทกอยางเองทงหมด บางงานมโปรแกรมอยแลวสามารถเรยกใชงานไดทนท

Page 10: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

ANALOGY: LEARNING TO RIDE BICYCLE

Difficulties for beginners:• เรยนรการทรงตว และ การเคลอนทไปขางหนาพรอม ๆ กน

Difficulties for experienced folks:• ไมม

Page 11: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

SOLUTION FOR BEGINNERS

• เขาเรยนการปนและการทรงตว

• สวมหมวกนรภย

• ท าใหการเรยนรเปนไปดวยความสนก และ ปลอดภย

• คลายกบความยากในการเรยนเขยนโปรแกรมคอมพวเตอร

Page 12: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

LEARNING TO PROGRAM: DIFFICULTIES FOR BEGINNERS

• Syntax errors

• หาทางแกไขปญหาเปนชวโมงในการแกไข syntax errors

• สญเสยความมนใจ

• เปนประสบการณทไมด

• ลมเลก และจะไมเขยนโปรแกรมตอไป

• Logic errors

• ไมไดเปนปญหารายแรง

Page 13: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

DIFFICULTIES FOR EXPERIENCED PROGRAMMERS

• Logic errors

• เรยนรตอไป อยาทอ

Page 14: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

SOLUTION

• ใช Visual Programming Tools ในการสอนแนวคดการเขยนโปรแกรมโดยตดปญหา syntax errors ออกไป

• ใหความส าคญกบการคดตรรกะ หรอวธคดกอน เพอสรางความมนใจในการเขยนโปรแกรม

Page 15: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

FREE VISUAL PROGRAMMING TOOLS

Tool Provider Web-site

Alice 2.3 Carnegie Mellon

University

www.alice.org

Scratch MIT scratch.mit.edu

Snap! UCBerkeley byob.berkeley.edu

Lego MindStorm Lego mindstorms.lego.com

Several more…

Page 16: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

A FEW BIT ADVANCED TOOLS

Tool Provider Web-site

Alice 3.1 Carnegie Mellon

University

www.alice.org

JavaScript Khan Academy www.khanacademy.org/cs

Racket UCBerkeley wescheme.org

Greenfoot Ukent www.greenfoot.org

Several

more…

Page 17: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

A FEW EXAMPLES

• สวนผสม และขนตอนการท างานอาหาร

• ค าแนะน าในการประกอบของเลนหรอเฟอรนเจอร

• เตรยมพรอมในตอนเชากอนไปโรงเรยน

เกยวกบกจกรรมเหลานมอะไรทเหมอนกน ?

Sequence

Page 18: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

PROGRAMMING CONCEPTS: SEQUENCE STRUCTURE

instruction 1;

instruction 2;

instruction 3;

Page 19: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

A FEW MORE EXAMPLES

• เลอกวาจะไปดหนง หรอ วาเรยนหนงสอ ?

• เลอกวาจะทานสลด หรอวา พชชา ?

• เลอกวาจะไปสมครงาน หรอวา เรยนตอปรญญาโท ?

สงทเหมอนกนคอ ?

Selection or IF statement

Page 20: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

SELECTION STRUCTURE

IF condition is true THEN

do this;

ELSE

do that;

ENDIF

Page 21: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

A FEW MORE EXAMPLES

• กนขนมจากกลอง

• ไปซอของในหางสรรพสนคาดวยเงนจ านวนมาก

• การท าขอสอบในการท าใบขบข

มอะไรทเหมอนกนบาง ?

Repetition / Loops

Page 22: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

REPETITION STRUCTURE

WHILE (more items to process)

process the next item;

ENDWHILE

FOR month = 1 to 12

do monthly processing

ENDFOR

Page 23: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

PROGRAMMING CONCEPTS

• Structures: โครงสรางม 3 ประเภท คอ Sequence, Selection และ Repetition เปนพนฐานการเขยนโปรแกรม

• โปรแกรมขนาดใหญ และ มความซบซอน เกดจากการผสมผสานการเขยนโปรแกรม 3 โครงสรางนเทานน

Page 24: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

UNDERSTANDING THE PROGRAMMING PROCESS

6 programming phases:• เขาใจปญหา (Understand the problem)

• วางแผนขนตอน (Plan the logic)

• ลงมอพฒนาโปรแกรม (Code the program)

• แปลงโปรแกรมใหเปนภาษาเครอง (Use software to translate the program to machine language)

• ทดสอบโปรแกรม (Test the program)

• น าโปรแกรมไปใชงาน (Deploy the program into production)

24 24

Page 25: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

UNDERSTANDING THE PROGRAMMING PROCESS (CONTINUED)

Understanding the problem: • เปนขนตอนทมความยากทสด

• ผใชอาจจะไมสามารถอธบายโปรแกรมทอยากได ใหแกทมพฒนาโปรแกรมโดยสมบรณ

• ความตองการของผใชอาจจะมการเปลยนแปลงบอยครง

• นกพฒนาโปรแกรมจ าเปนตองเรยนรขนตอนการท างานของผใชเพอใหโปรแกรมสมบรณทสด

• ความผดพลาดในการเขาใจปญหา สงผลใหโปรแกรมทไดมความผดพลาดสง

25 25

Page 26: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

UNDERSTANDING THE PROGRAMMING PROCESS (CONTINUED)

Planning the logic:• วางแผนขนตอนการท างานของโปรแกรม

• ใชเครองมอ (tools) ไดแก flowcharts และ pseudocode

• Flowchart คอ แผนผงรปภาพใชในการน าเสนอ logic steps

• Pseudocode คอ การบรรยายขนตอนของ logic

• ตรวจสอบ logic ทก ๆ ครงกอนการเขยนโปรแกรม

26 26

Page 27: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

UNDERSTANDING THE PROGRAMMING PROCESS (CONTINUED)

Coding the program:• เลอก programming language

• เขยนชดค าสงของโปรแกรม

Using software to translate the program into machine language:

• Programmers ใชภาษาทเลอกในการเขยนโปรแกรม (English-like high-level languages)

• Compilers หรอ interpreters ท าหนาทในการแปลงภาษานน ๆ ใหเปนภาษาเครอง (low-level machine language)

• Syntax errors จะถกตรวจสอบโดย compiler หรอ interpreter

27 27

Page 28: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

UNDERSTANDING THE PROGRAMMING PROCESS (CONTINUED)

28

เขยนและตรวจสอบค าสงโปรแกรม

Compileโปรแกรม

ขอมลน าเขาทดสอบโปรแกรม

ประมวลผลโปรแกรม

รายการของ syntax errors

ผลลพธของโปรแกรม

ไมม syntax errors

ถาม syntax errors

28

Page 29: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

UNDERSTANDING THE PROGRAMMING PROCESS (CONTINUED)

Testing the program:• ประมวลผลโปรแกรมดวยขอมลตวอยางและตรวจสอบผลลพธ

• ตรวจสอบ logic errors และ แกไขใหถกตอง

• เลอกขอมลในการทดสอบใหครบถวนทกกรณในการตรวจสอบ logic

Putting the program into production

• หลงจากททดสอบโปรแกรมสมบรณแลว และแกไขขอผดพลาดแลว

• ตดตงโปรแกรมเพอใชงานจรง

29

Page 30: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

นยามอลกอรธม

อลกอรธม (Algorithm) หมายถง ล าดบขนตอนวธในการท างานของโปรแกรมเพอแกปญหาใด ปญหาหนง ซงถาปฏบตตามขนตอนอยางถกตองแลว จะตองสามารถชวยแกปญหาหรอประมวลผลตามความตองการไดส าเรจ

ในการเขยนอธบายอลกอรธมนน เราสามารถคดอลกอรธมเพอมาแกปญหาไดหลายแบบ

3030

Page 31: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

ตวอยาง

การตมไขไก

วตถดบ : ไขไก ผลลพธ : ไขตมสก

Algorithm 2• ตมน าใหเดอด

• ใสไข

• รอ 5 นาท

• ดบไฟ / ปดเตา

Algorithm 1• ตมน าใหเดอด

• ใสไข

• รอ 10 นาท

• ดบไฟ / ปดเตา

• ปอกไข

31

Page 32: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

ALGORITHM 1 VS ALGORITHM 2

ผลทไดเหมอนกนคอ ไขตม• ผลลพธอลกอรธม 1 สามารถทานไดเลย

• สวนอลกอรธม 2 ตองปอกกอนทาน

สรปคอ เราไดผลลพธตามทโจทยตองการคอ ไขตม

32

Page 33: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

ALGORITHM 3

การตมไขไกทาน

วตถดบ : ไขไก ผลลพธ : ไขตมสก

Algorithm 3

• ตมน าใหเดอด

• รอ 10 นาท

• ดบไฟ / ปดเตา

• ปอกไข

33

Page 34: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

การวเคราะหปญหา

กระบวนการท างานของคอมพวเตอร

34

Input Process Output

การพจารณา

• ขนตอนการท างานเปนการน าเขา ปอนเขาระบบ ถอเปน Input

• ขนตอนเกยวกบการกระท า(กรยา) ถอเปน Process

• ขนตอนการน าขอมลออกจากระบบ แสดงผล ถอเปน Output

Page 35: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

EXAMPLE

เราลองน าขนตอนการตมไขมาวเคราะห• ตมน าใหเดอด => การกระท า (Process)

• ใสไข => การปอนขอมล (Input)

• รอ 10 นาท => การกระท า (Process)

• ดบไฟ => การกระท า (Process)

• ปอกไข => การกระท า (Process)

• ผลลพธ => ไขตมสก (Output)

35

Page 36: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

การวเคราะหปญหา

36

วเคราะหผลลพธ(Output)

วเคราะห Input

Process เขยนขนตอนการแกปญหา

ขอมลทน าเขาสระบบคอมพวเตอรประกอบดวยอะไรบาง

Page 37: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

การออกแบบอลกอรธม

• ในการเขยนอธบายอลกอรธมนน เราสามารถคดอลกอรธมเพอมาแกปญหาไดหลายแบบ ซงในแตละแบบเครองคอมพวเตอรกจะใชในหนวยความจ า และเวลาในการประมวลผลไมเทากน

• ดงนน การจะเปรยบเทยบวาโปรแกรมคอมพวเตอรใครดกวากนนนจงใชการเปรยบเทยบและประสทธภาพของอลกอรธมนนเอง

• อลกอรธมของใครใชเวลาในการประมวลผลและหนวยความจ านอยกวา ถอวาอลกอรธมนนดกวา

37

Page 38: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

ประสทธภาพของอลกอรธม

จะพจารณาอย 2 สวนหลกๆ ดงน• หนวยความจ า (memory) ทจะตองใชในการประมวลผล

• เวลา (time) ทใชในการประมวลผล

38

Page 39: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

อลกอรธมตมมามา

5

39

5

Page 40: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

อลกอรธมทดจะประกอบดวยคณสมบตตางๆดงน

• อลกอรธมทดตองมความถกตอง (correctness)

• อลกอรธมทดตองงายตอการอาน (readability)

• อลกอรธมทดตองสามารถปรบปรงไดงายตออนาคต (ease of modification)

• อลกอรธมทดสามารถน ากลบมาใชใหมได (Reusability)

• อลกอรธมทดตองมประสทธภาพ (efficiency)

40

Page 41: CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก บช ว ตประจ าว นเรามากข น – เป นเร

EXERCISE

จงวางแผนขนตอน (Plan the logic)

• การซอเครองดมจากตอตโนมต

• หาคนทมเงนในกระเปาเยอะทสดในกลมเพอนทงหมด 10 คน

41