View
1
Download
0
Category
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