CONCEPT OF PROGRAMMING SAYAN UNANKARD …• Computer ม ความเก ยวข องก...

Preview:

Citation preview

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

CONCEPT OF PROGRAMMING SAYAN UNANKARD1/2562

1

OBJECTIVES

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

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

2

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

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

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

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

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

3

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

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

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

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

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

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

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

4

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

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

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

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

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

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

5

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

โปรแกรมคอมพวเตอรจะตองเปน 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

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

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

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

7

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

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

Internal storage:

• Main memory, random access memory (RAM)

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

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

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

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

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

8

WHY LEARN PROGRAMMING?

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

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

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

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

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

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

ANALOGY: LEARNING TO RIDE BICYCLE

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

Difficulties for experienced folks:• ไมม

SOLUTION FOR BEGINNERS

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

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

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

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

LEARNING TO PROGRAM: DIFFICULTIES FOR BEGINNERS

• Syntax errors

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

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

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

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

• Logic errors

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

DIFFICULTIES FOR EXPERIENCED PROGRAMMERS

• Logic errors

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

SOLUTION

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

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

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…

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…

A FEW EXAMPLES

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

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

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

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

Sequence

PROGRAMMING CONCEPTS: SEQUENCE STRUCTURE

instruction 1;

instruction 2;

instruction 3;

A FEW MORE EXAMPLES

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

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

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

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

Selection or IF statement

SELECTION STRUCTURE

IF condition is true THEN

do this;

ELSE

do that;

ENDIF

A FEW MORE EXAMPLES

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

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

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

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

Repetition / Loops

REPETITION STRUCTURE

WHILE (more items to process)

process the next item;

ENDWHILE

FOR month = 1 to 12

do monthly processing

ENDFOR

PROGRAMMING CONCEPTS

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

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

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

UNDERSTANDING THE PROGRAMMING PROCESS (CONTINUED)

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

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

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

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

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

25 25

UNDERSTANDING THE PROGRAMMING PROCESS (CONTINUED)

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

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

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

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

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

26 26

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

UNDERSTANDING THE PROGRAMMING PROCESS (CONTINUED)

28

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

Compileโปรแกรม

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

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

รายการของ syntax errors

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

ไมม syntax errors

ถาม syntax errors

28

UNDERSTANDING THE PROGRAMMING PROCESS (CONTINUED)

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

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

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

Putting the program into production

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

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

29

นยามอลกอรธม

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

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

3030

ตวอยาง

การตมไขไก

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

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

• ใสไข

• รอ 5 นาท

• ดบไฟ / ปดเตา

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

• ใสไข

• รอ 10 นาท

• ดบไฟ / ปดเตา

• ปอกไข

31

ALGORITHM 1 VS ALGORITHM 2

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

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

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

32

ALGORITHM 3

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

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

Algorithm 3

• ตมน าใหเดอด

• รอ 10 นาท

• ดบไฟ / ปดเตา

• ปอกไข

33

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

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

34

Input Process Output

การพจารณา

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

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

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

EXAMPLE

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

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

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

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

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

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

35

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

36

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

วเคราะห Input

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

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

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

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

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

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

37

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

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

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

38

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

5

39

5

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

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

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

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

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

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

40

EXERCISE

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

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

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

41

Recommended