ข้ามไปยังเนื้อหา
รายวิชา

GAC คอมพิวเตอร์

เคล็ดลับ

GAC Computing เป็นบันไดสามขั้น GAC005 เกี่ยวกับการใช้คอมพิวเตอร์สำหรับงานวิชาการ ซึ่งหมายถึงการรู้เท่าทันการค้นหา การเขียนร่วมกัน การจัดการโปรเจกต์ การนำเสนอ และวิดีโอ GAC011 สร้างและเผยแพร่เว็บไซต์จริงด้วย HTML, CSS และ JavaScript GAC017 เข้าไปเบื้องหลัง Into back-end programming, databases, SQL and a first look at data science.

ไม่มีสิ่งใดถูกตอบบนกระดาษ ทุกโมดูลประเมินจากผลงานที่คุณผลิต เช่น ชุดสไลด์ เว็บไซต์ ฐานข้อมูลที่มีหลายตาราง และการวิเคราะห์ชุดข้อมูลจริง ดังนั้นงานทั้งหมดจึงทำที่คอมพิวเตอร์และส่งเป็นไฟล์

โมดูลทั้งสามเป็นแบบสะสมอย่างแท้จริง เว็บไซต์ที่คุณออกแบบใน GAC011 คือสิ่งที่ GAC017 ให้ Back-end และฐานข้อมูล ดังนั้น Storyboard ที่อ่อนแอตั้งแต่ต้นจะเสียเวลาอย่างมากในภายหลัง

การนำเสนอสำคัญเท่ากับโค้ด ทั้งผลลัพธ์ด้านการออกแบบและการสื่อสาร都被列为模块中的目标,如果页面可以运行但无人能导航,则会扣分。

คุณสามารถรันแบบฝึกหัด HTML, CSS, JavaScript และ SQL โดยตรงใน Playground ของเว็บไซด์นี้ แล้วนำเทคนิคเดียวกันไปใช้ในโปรเจกต์ประเมินผลของคุณเอง

  • 1

    GAC005 คอมพิวเตอร์ I: แนะนำการศึกษาด้านคอมพิวเตอร์เพื่อการศึกษาในมหาวิทยาลัย

    ดูบทเรียน
    1.1

    What this module is, and how it is marked

    GAC005 is not a programming course. It is about using a computer to do academic work well: finding sources you can trust, writing with other people, running a small project, and presenting the result.

    Everything is assessed on what you produce. A typical set is a search and writing task, a group project 小组项目 with a presentation, a video 视频, and ongoing coursework 平时作业. There is no written examination, so the files you submit are the whole mark.

    • Work is judged on the artefact and on the process. Keep drafts and notes; a group project is marked partly on your contribution to it.
    • ⚠ Academic integrity 学术诚信 applies to media as much as to text. An image, a chart or a clip taken from the web needs a source, and a licence that allows the use.
    คำศัพท์ ฝึกฝน
    English ไทย
    group project/ɡruːp ˈprɒdʒekt/ โปรเจกต์กลุ่ม
    video/ˈvɪdɪəʊ/ วิดีโอ
    coursework/ˈkɔːsjuːɜːk/ งานภาคเรียน
    Academic integrity/ˌækəˈdemɪk ɪnˈteɡrɪti/ ความซื่อสัตย์ทางวิชาการ
    1.1

    Search literacy

    หลักสูตร

    หน่วยที่ 1 จากทั้งหมด 6 หน่วยใน GAC005 คอมพิวเตอร์ I: ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์สำหรับการเรียนทางวิชาการ (ระดับ I) บทเรียนนี้สอนเป็นเวลาประมาณ 40 ชั่วโมงในชั้นเรียน加上 20 ชั่วโมงการศึกษารวมตนเอง และประเมินผลที่ศูนย์การสอนโดย ACT — ไม่มีข้อสอบภายนอก

    วัตถุประสงค์บทเรียน: เมื่อสำเร็จบทเรียนนี้ นักเรียนควรจะสามารถใช้เทคโนโลยีสารสนเทศได้อย่างมั่นใจและมีจริยธรรมสำหรับการเขียนแบบเป็นทางการทั้งรายบุคคลและกลุ่ม; และใช้อินเทอร์เน็ตอย่างมีประสิทธิภาพสำหรับการเรียนทางวิชาการ โดยเฉพาะอย่างยิ่ง นักเรียนจะสามารถเข้าถึง นำทาง และดาวน์โหลดข้อมูลจากอินเทอร์เน็ตเพื่อเสริมสร้างทักษะการวิจัย การเขียน และการนำเสนอทางวิชาการ

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC005.1: เข้าใจ ประเมิน และแยกแยะเทคโนโลยีที่มีอยู่และกำลังเกิดขึ้นใหม่เพื่อใช้ เก็บรักษา และปกป้องข้อมูล

    วัตถุประสงค์การเรียนรู้ GAC005.2: ใช้อินเทอร์เน็ตเพื่อค้นหาข้อมูล ตีความ และจัดการโครงการทางวิชาการอย่างมีปฏิสัมพันธ์และมีจริยธรรม

    แหล่งที่มา: หลักสูตร Cambridge International

    Anyone can find a page. The skill being assessed is finding a source you can defend.

    • Search with keywords 关键词, not sentences. Pick the nouns that must appear in a good answer and drop everything else.
    • Operators 运算符 narrow a search: quotation marks force an exact phrase, a minus sign excludes a word, and site: restricts results to one domain.
    • Judge a source before you use it. Authority 权威性 asks who wrote it and what they know; currency 时效性 asks how old it is; bias 偏见 asks what the author wants you to think.
    • A primary source 一手资料 is original material, such as the report of an experiment. A secondary source 二手资料 describes or interprets it, such as a news article about that report.
    • Search results are ranked, not verified — position on the page says nothing about accuracy.

    Worked example. The question is whether electric cars produce less carbon dioxide overall than petrol cars. A search for the sentence returns opinion pages. A search for the keywords lifecycle emissions electric vehicle comparison returns studies, and adding site:gov narrows it to government reports whose authors and methods are stated. The second search is not cleverer, it is more specific about what a usable answer looks like.

    คำศัพท์ ฝึกฝน
    English ไทย
    keywords/ˈkiːwɜːdz/ คำค้นหา
    Operators/ˈɒpəreɪtəz/ ตัวดำเนินการ
    Authority/əˈθɒrɪti/ อำนาจ
    currency/ˈkʌrənsi/ สกุลเงิน
    bias/ˈbaɪəs/ อคติ
    primary source/ˈpraɪməri sɔːs/ แหล่งข้อมูลหลัก
    secondary source/ˈsekəndəri sɔːs/ แหล่งข้อมูลรอง
    1.2

    Collaborative writing

    หลักสูตร

    หน่วยที่ 2 จากทั้งหมด 6 หน่วยใน GAC005 คอมพิวเตอร์ I: ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์สำหรับการเรียนทางวิชาการ (ระดับ I) บทเรียนนี้สอนเป็นเวลาประมาณ 40 ชั่วโมงในชั้นเรียน加上 20 ชั่วโมงการศึกษารวมตนเอง และประเมินผลที่ศูนย์การสอนโดย ACT — ไม่มีข้อสอบภายนอก

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC005.3: สร้าง แก้ไข และเผยแพร่เอกสารทางวิชาการโดยใช้โปรแกรมประมวลคำ

    วัตถุประสงค์การเรียนรู้ GAC005.5: ใช้แพลตฟอร์ม open source ในการสร้างและแชร์เอกสารทางวิชาการร่วมกัน

    แหล่งที่มา: หลักสูตร Cambridge International

    Writing together is a normal way to work, and the module assesses how you do it.

    • A cloud document 云端文档 holds one live copy that everyone edits, which removes the "final_v3_really_final" problem entirely.
    • Version history 版本历史 records who changed what and when. It protects you: your contribution is visible even when a file looks like one voice.
    • Comments 批注 propose a change without making it; suggestions 建议模式 make a change the owner can accept or reject. Use them instead of overwriting someone's paragraph.
    • Agree the structure 结构 before anyone writes. Splitting a document by section works; splitting it by sentence does not.
    • Keep one style 文体: decide on person, tense and spelling at the start, and give one person the final read.
    คำศัพท์ ฝึกฝน
    English ไทย
    cloud document/klaʊd ˈdɒkjuːmənt/ เอกสารบนคลาวด์
    Version history/ˈvɜːʃn ˈhɪstəri/ ประวัติเวอร์ชัน
    Comments/ˈkɒments/ ความคิดเห็น (Comments)
    suggestions/səˈdʒestʃnz/ ข้อเสนอแนะ
    structure/ˈstrʌktʃə/ โครงสร้าง
    style/staɪl/ style
    1.3

    Project management

    หลักสูตร

    หน่วยที่ 3 จากทั้งหมด 6 หน่วยใน GAC005 คอมพิวเตอร์ I: ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์สำหรับการเรียนทางวิชาการ (ระดับ I) บทเรียนนี้สอนเป็นเวลาประมาณ 40 ชั่วโมงในชั้นเรียน加上 20 ชั่วโมงการศึกษารวมตนเอง และประเมินผลที่ศูนย์การสอนโดย ACT — ไม่มีข้อสอบภายนอก

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC005.2: ใช้อินเทอร์เน็ตเพื่อค้นหาข้อมูล ตีความ และจัดการโครงการทางวิชาการอย่างมีปฏิสัมพันธ์และมีจริยธรรม

    วัตถุประสงค์การเรียนรู้ GAC005.5: ใช้แพลตฟอร์ม open source ในการสร้างและแชร์เอกสารทางวิชาการร่วมกัน

    แหล่งที่มา: หลักสูตร Cambridge International

    A group project fails on organisation far more often than on ability.

    • A scope 范围 statement says what the project will and will not do. Most overrun starts as an unwritten extra.
    • Milestones 里程碑 are checkpoints with dates. They convert "we have three weeks" into something you can be behind on early enough to fix.
    • Assign roles 分工 to people, not tasks to the group. A task owned by everyone is owned by nobody.
    • A team contract 团队协议 records how the group will meet, decide, and handle a member who does not deliver. Writing it while everyone is friendly is the point.
    • Track dependencies 依赖关系: the slide deck cannot be finished before the data is collected, so the data has the earlier deadline.

    Worked example. A four-person project to survey and present student transport habits, due in week 6. Working backwards: rehearse in week 6, build slides in week 5, analyse in week 4, collect responses in weeks 2 to 3, write the questions in week 1. The questions are the riskiest item because everything downstream depends on them, so they get reviewed by the whole group and nothing else in week 1 does.

    คำศัพท์ ฝึกฝน
    English ไทย
    scope/skəʊp/ ขอบเขต
    Milestones/ˈmaɪlstəʊnz/ จุดสำคัญ
    roles/rəʊlz/ บทบาท
    team contract/tiːm ˈkɒntrækt/ สัญญาทีม
    dependencies/dɪˈpendənsiz/ การพึ่งพา
    1.4

    Creating effective presentations

    หลักสูตร

    หน่วยที่ 4 จากทั้งหมด 6 หน่วยใน GAC005 คอมพิวเตอร์ I: ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์สำหรับการเรียนทางวิชาการ (ระดับ I) บทเรียนนี้สอนเป็นเวลาประมาณ 40 ชั่วโมงในชั้นเรียน加上 20 ชั่วโมงการศึกษารวมตนเอง และประเมินผลที่ศูนย์การสอนโดย ACT — ไม่มีข้อสอบภายนอก

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC005.4: สร้างการนำเสนอด้วยวาจาเชิงวิชาการโดยใช้ซอฟต์แวร์สำหรับทำสไลด์

    แหล่งที่มา: หลักสูตร Cambridge International

    A presentation is judged on whether the audience understands, not on how much is on screen.

    • One message 信息 per slide. If a slide needs two sentences to summarise, it is two slides.
    • Slides support the speaker. Bullet points 要点 are prompts, not a script, and reading them aloud is the most common way to lose marks.
    • Contrast 对比度 and size decide whether the back row can read it: dark text on light, at least 24 point, and a sans-serif 无衬线 typeface.
    • Use a chart 图表 when the shape of the data is the point, and a table 表格 when exact values are. A chart needs axis labels and units, always.
    • Cite sources on the slide where the material appears, and keep a full reference list 参考文献列表 at the end.
    คำศัพท์ ฝึกฝน
    English ไทย
    message/ˈmesɪdʒ/ ข้อความ
    Bullet points/ˈbʊlɪt pɔɪnts/ รายการbullet points
    Contrast/ˈkɒntræst/ ความขัดแย้ง
    sans-serif/sænz ˈserɪf/ ฟอนต์ไร้หัว
    chart/tʃɑːt/ โครงสร้าง
    table/ˈteɪbl/ ตาราง
    reference list/ˈrefrəns lɪst/ รายการอ้างอิง
    1.5

    Enhancing your presentation

    หลักสูตร

    หน่วยที่ 5 จากทั้งหมด 6 หน่วย ใน GAC005 Computing I: Introduction to Computing for Academic Study (ระดับ I). หลักสูตรนี้เรียนเป็นเวลาประมาณ 40 ชั่วโมงต่อสัปดาห์ บวกกับ 20 ชั่วโมงศึกษาด้วยตนเอง และประเมินผลที่ศูนย์สอนโดย ACT — ไม่มีข้อสอบภายนอก

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC005.4: สร้างการนำเสนอด้วยวาจาเชิงวิชาการโดยใช้ซอฟต์แวร์สำหรับทำสไลด์

    แหล่งที่มา: หลักสูตร Cambridge International

    Once the content is right, delivery is what remains.

    • Rehearse aloud 出声, standing, with a timer. Reading silently hides every sentence you cannot actually say.
    • Signposting 提示语 tells the audience where they are: "first", "the reason for this", "to sum up". In a second language it does more work than any slide animation.
    • Eye contact 眼神交流 and pace matter more than vocabulary. Slower is almost always better.
    • Prepare for questions 提问 by listing the three you would least like to be asked, and answering them.
    • Animation 动画 has one legitimate use: revealing a complex diagram one part at a time. Everything else distracts.
    คำศัพท์ ฝึกฝน
    English ไทย
    aloud/əˈlaʊd/ อ่านออกเสียง
    Signposting/ˈsaɪnpəʊstɪŋ/ การชี้บอก
    Eye contact/aɪ ˈkɒntækt/ การสบตา
    questions/ˈkwestʃnz/ คำถาม
    Animation/ˌænɪˈmeɪʃn/ ภาพเคลื่อนไหว
    1.6

    The making of a video

    หลักสูตร

    หน่วยที่ 6 จากทั้งหมด 6 หน่วย ใน GAC005 Computing I: Introduction to Computing for Academic Study (ระดับ I). หลักสูตรนี้เรียนเป็นเวลาประมาณ 40 ชั่วโมงต่อสัปดาห์ บวกกับ 20 ชั่วโมงศึกษาด้วยตนเอง และประเมินผลที่ศูนย์สอนโดย ACT — ไม่มีข้อสอบภายนอก

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC005.1: เข้าใจ ประเมิน และแยกแยะเทคโนโลยีที่มีอยู่และกำลังเกิดขึ้นใหม่เพื่อใช้ เก็บรักษา และปกป้องข้อมูล

    วัตถุประสงค์การเรียนรู้ GAC005.4: สร้างการนำเสนอด้วยวาจาเชิงวิชาการโดยใช้ซอฟต์แวร์สำหรับทำสไลด์

    แหล่งที่มา: หลักสูตร Cambridge International

    A short video is assessed like any other academic product: planned, sourced and edited.

    • A storyboard 分镜脚本 plans each shot before recording: what is on screen, what is said, how long it lasts. It is the difference between an hour of editing and five.
    • A script 脚本 keeps a two-minute video to two minutes. Speaking unscripted takes three times as long and says less.
    • Audio quality 音质 matters more than picture quality. A quiet room beats an expensive camera, every time.
    • Use licensed 授权 material only: images and music released under a licence that permits reuse, credited on screen or in the description.
    • Export 导出 to a common format at a sensible size, and check that it plays on a machine that is not yours before you submit it.

    Worked example. A two-minute explainer on plastic recycling. The storyboard has eight shots of about fifteen seconds. Shot 3 is a chart of what a city actually recycles, on screen for twelve seconds with one spoken sentence, credited to the source in the corner. Because the storyboard fixed the length first, the script was written to fit the time, rather than the video being cut to fit a script that was already too long.

    คำศัพท์ ฝึกฝน
    English ไทย
    storyboard/ˈstɔːribɔːd/ สตอรี่บอร์ด
    script/skrɪpt/ บทพูด/บท kịch
    Audio quality/ˈɔːdɪəʊ ˈkwɒlɪti/ คุณภาพเสียง
    licensed/ˈlaɪsənst/ มีใบอนุญาต
    Export/ˈekspɔːt/ การส่งออก
    Additional notes PDF

    เลือกเครื่องมือสำหรับงานวิชาการจริง

    กลุ่มของคุณทำวิจัยเกี่ยวกับการขนส่งนักเรียน สมาชิกคนหนึ่งใช้โทรศัพท์ อีกคนทำงานแบบออฟไลน์ คนที่สามต้องการตัวหนังสือขนาดใหญ่ แอปพลิเคชันใหม่ที่สุดอาจไม่เหมาะสำหรับพวกเขา

    หมายเหตุเพิ่มเติมเหล่านี้สอนทักษะปฏิบัติ GAC005 ให้รักษาเอกสารต้นฉบับไว้ข้างเคียง ตามภารกิจปัจจุบัน ซอฟต์แวร์ที่ต้องการ และกฎเกณฑ์การจัดส่งของศูนย์คุณ

    โปรแกรมสร้างเอกสาร ช่วยให้คุณสร้างและแก้ไขเอกสารที่มีรูปแบบแล้ว โปรแกรมแก้ไขเอกสารร่วมกันสามารถช่วยในการเขียนร่วมกัน ซอฟต์แวร์นำเสนอช่วยจัดระเบียบสื่อประกอบการพูด ซอฟต์แวร์วิดีโอรวมเสียงบันทึกและภาพเข้าด้วยกัน เลือกใช้เครื่องมือตามงานที่ทำ แทนที่จะใช้เครื่องมือเดียวสำหรับทุกสิ่ง

    เปรียบเทียบการเข้าถึง รูปแบบ ราคา ความความเป็นส่วนตัว การใช้แบบออฟไลน์ และฟีเจอร์การอ่านที่เป็นประโยชน์ ทดสอบหัวข้อ ตาราง และความคิดเห็นบนอุปกรณ์จริง รวมถึงหลังการแปลงไฟล์

    สำหรับเทคโนโลยีใหม่หรือ เทคโนโลยีที่กำลังเติบโต ให้ทดสอบกับงานขนาดเล็กที่ไม่ละเอียดอ่อนก่อน ตรวจสอบผู้ดูแลระบบ ข้อมูลที่จัดเก็บ และสิ่งที่คุณสามารถส่งออกได้ เก็บสำเนาที่ใช้งานได้ไว้นอกเครื่องมือ คำตอบอัตโนมัติที่ดูเป็นมืออาชีพก็仍需ตรวจสอบแหล่งที่มา Follow ศูนย์ของคุณเกี่ยวกับความช่วยเหลือที่ได้รับอนุญาตและการให้เครดิต

    จัดเก็บ ปกป้อง และกู้คืนข้อมูลของคุณ

    จัดไฟล์ที่เกี่ยวข้องไว้ในโฟลเดอร์โปรเจกต์ที่มีชื่อชัดเจน แยกแหล่งที่มา draft งาน และสำเนาส่งมอบ ชื่อเช่น transport_report_2026-10-02.odt ชัดเจนกว่า new_final_final.doc ใช้ระบบการตั้งชื่อเดียวกันทั้งกลุ่ม

    สิทธิ์เข้าถึง ควบคุมว่าใครสามารถอ่านหรือแก้ไขข้อมูลได้ ให้สิทธิ์แก้ไขเฉพาะผู้ที่จำเป็นเท่านั้น ลิงก์สาธารณะอาจเข้าถึงบุคคลภายนอกกลุ่ม ตรวจสอบรายการแชร์ก่อนส่งไฟล์ เก็บรายละเอียดผู้เข้าร่วมแยกจากรายงาน ตามกฎของศูนย์ อย่าเก็บข้อมูลระบุตัวตนเพียงเพราะแบบฟอร์มอนุญาตให้ทำ

    ใช้รหัสผ่านที่แข็งแรงและไม่ซ้ำกับอื่น พร้อม การยืนยันตัวตนหลายปัจจัย หากมีบริการนี้ ใช้หลักฐานมากกว่าหนึ่งประเภทเพื่อยืนยันตัวตน เช่น รหัสผ่านและโค้ดจากอุปกรณ์อื่น อย่าแชร์ข้อมูลเข้าสู่ระบบเพื่อแชร์เอกสาร ตรวจสอบข้อความที่ไม่คาดคิดก่อนเปิดลิงก์เข้าสู่ระบบ อัปเดตซอฟต์แวร์ที่รองรับและล็อกอุปกรณ์เมื่อออกจากเครื่อง

    ซิงโครไนเซชัน ทำให้สำเนาคู่ขนานกัน สำรองข้อมูล ให้สำเนาสำหรับกู้คืนที่แยกต่างหาก ทั้งสองอย่างต่างกัน: ซิงโครไนเซชันอาจคัดลอกการลบโดยไม่ได้ตั้งใจด้วย รักษาส่งสำรองข้อมูลที่เป็นอิสระและได้รับอนุญาตไว้และทดสอบการกู้คืนไฟล์ตัวอย่างที่ไม่เป็นอันตราย ประวัติเวอร์ชันอาจช่วยกู้การเปลี่ยนแปลงได้ แต่ระยะเวลาเก็บรักษาและรายละเอียดขึ้นอยู่กับบริการ

    กรณีศึกษา Mei ลบย่อหน้าหนึ่ง และการเปลี่ยนแปลงนั้นไปถึงทุกอุปกรณ์ กลุ่มตรวจสอบประวัติเวอร์ชัน restore ย่อหน้าที่ถูกต้อง และตรวจสอบผลลัพธ์ หากประวัติไม่พร้อม มีสำรองข้อมูลเก่าที่แยกต่างหากอาจช่วยได้ วิธีใดวิธีหนึ่งก็ไม่ใช่เหตุผลที่จะละเลยการตรวจสอบไฟล์สุดท้าย

    สร้างและทบทวนเอกสารวิชาการ

    เริ่มต้นด้วยโครงสร้างรายงานของศูนย์ สำหรับงานฝึกหัดนี้ ใช้หัวข้อคำถามวิจัย วิธีการ ผลลัพธ์ การอภิปราย และอ้างอิง สร้างโครงร่างสั้นก่อนเพิ่มย่อหน้า เก็บบันทึกแหล่งข้อมูลขณะค้นคว้า: ผู้แต่ง, ชื่อเรื่อง, วันที่, สถานที่ และข้ออ้างที่สนับสนุน

    รูปแบบย่อหน้า ใช้ชุดตัวเลือกการจัดรูปแบบที่มีชื่อ ใช้ Heading 1 สำหรับส่วนหลักและ Heading 2 สำหรับย่อย ใช้รูปแบบข้อความปกติสำหรับย่อหน้า ข้อความตัวหนาใหญ่เพียงอย่างเดียวอาจดูเหมือนหัวข้อโดยไม่ถูกจดจำว่าเป็นหนึ่ง อย่าข้ามระดับหัวข้อเพื่อให้ฟอนต์เล็กลง

    ตัวอย่างเช่น LibreOffice Writer มีรูปแบบย่อหน้า วางเคอร์เซอร์ในย่อหน้าหัวข้อและใช้รูปแบบหัวข้อนั้น เปลี่ยนรูปแบบเมื่อต้องการให้ทุกหัวข้อในระดับนั้นเปลี่ยนไป รูปแบบหน้าควบคุมการจัดวางหน้า รวมถึงขอบ margins หัวข้อและท้ายหน้า ชื่อเมนูอาจแตกต่างกันตามเวอร์ชันหรือภาษา ใช้ Help ของโปรแกรมที่ติดตั้ง

    เพิ่มตารางเล็ก ๆ ผ่านเครื่องมือตาราง ให้แต่ละคอลัมน์มีหัวข้อชัดเจนและรวมหน่วยเมื่อจำเป็นกรอกข้อมูลลงในเซลล์ แทนที่จะจัดเรียงด้วยช่องว่างซ้ำ ๆ วางภาพใกล้กับคำอธิบาย เพิ่มคำบรรยายที่มีความหมายและแหล่งที่มาเมื่อจำเป็น ตารางไม่จำเป็นต้องมีกราฟเว้นแต่กราฟจะช่วยอธิบายข้อมูล

    ใช้การแบ่งหน้าเมื่อส่วนใหม่ต้องเริ่มบนหน้าใหม่ อย่ากด Enter ซ้ำๆ เพื่อดันข้อความลงเพิ่มเลขหน้าโดยใช้ฟิลด์เลขหน้าของโปรแกรม หากโจทย์ต้องการสารบัญ ให้สร้างจากรูปแบบหัวข้อและอัปเดตหลังจากแก้ไข

    ทบทวนความหมายก่อนรูปลักษณ์ ตรวจสอบว่าแต่ละข้ออ้างมีหลักฐานหรือไม่ วิธีการตอบคำถามหรือไม่ และขอบเขตชัดเจนหรือไม่ จากนั้นตรวจสอบสะกด ชื่อ หน่วยและอ้างอิง คำแนะนำการสะกดอัตโนมัติอาจเปลี่ยนพจน์เทคนิคผิดพลาด อ่านประโยคที่แก้ไขแล้วด้วยตัวเอง

    ร่วมมือบนแพลตฟอร์ม open-source

    Open source หมายความว่าซอร์สโค้ดของซอฟต์แวร์มีอยู่ภายใต้ใบอนุญาตที่กำหนดการใช้งาน การศึกษา และการแก้ไข ไม่หมายความว่าทุกบริการโฮสต์ฟรี-private หรือเปิดให้ทุกคนเครื่องมือออนไลน์ไม่ใช่ open-source โดยอัตโนมัติ

    LibreOffice Writer เป็น word processor แบบ desktop open-source มีประโยชน์สำหรับงานเอกสารรายบุคคล สำหรับการแก้ไขร่วมกันบนเบราว์เซอร์ ศูนย์สามารถให้บริการ Nextcloud ที่ตั้งค่าอย่างเหมาะสมพร้อม editor Office เอกสาร Nextcloud อธิบายการแก้ไขเอกสารร่วมกันและการบูรณาการ document-server ที่จำเป็น ใช้ editor ที่ศูนย์เปิดใช้งานจริง อย่าสันนิษฐานว่าทุกการติดตั้ง Nextcloud มีมัน

    ฝึกฝนกับตัวอย่างข้อความที่ไม่มีความเสี่ยง สมาชิกแต่ละคนเข้าสู่ระบบด้วยบัญชีของตนเอง เจ้าของสร้างเอกสารทำงานร่วมหนึ่งฉบับและมอบสิทธิ์ที่เหมาะสมให้กลุ่มตกลงโครงร่าง บทบาท และกำหนดเวลา เพิ่มคอมเมนต์อธิบายการเปลี่ยนแปลงที่เสนอ สมาชิกอีกคนตอบกลับ ใช้ฟีเจอร์reviewหรือsuggestion ถ้า editor ที่ติดตั้งรองรับ; มิฉะนั้นบันทึกข้อเสนอในคอมเมนต์

    ทบทวนเนื้อหาด้วยกันก่อนยอมรับการเปลี่ยนแปลง ตรวจสอบเอกสารปัจจุบัน คอมเมนต์และประวัติที่มีอยู่ เก็บบันทึกการตัดสินใจสั้น: เปลี่ยนอะไรทำไมใครตรวจสอบ了什么还剩什么History helps show activity, but the group must still explain each member's actual work.

    หากการแก้ไขแบบออฟไลน์สร้างสองสำเนา อย่าเลือกไฟล์ล่าสุดอย่างเงียบๆ เปรียบเทียบส่วนที่เปลี่ยนแปลงและรวมงานที่ต้องการ ยืนยันว่าไม่มีย่อหน้าหรือบันทึกแหล่งข้อมูลของสมาชิกคนไหนหายไป จากนั้นตกลงว่าสำเนาที่แชร์ใดเป็นปัจจุบัน

    ส่งออก ตรวจสอบและแชร์สำเนาส่งมอบ

    รักษารหัสไฟล์ที่แก้ไขได้สำหรับการแก้ไขในอนาคต PDF มัก有用สำหรับการแชร์การจัดวางหน้าคงที่ การส่งออก PDF ไม่ได้แทนที่ซอร์สที่แก้ไขได้ ใช้รูปแบบที่ศูนย์กำหนด

    ตรวจสอบหัวข้อ, ขนาดตัวอักษร, ความ tươngต่าง, หัวข้อตาราง และคำอธิบายภาพที่มีประโยชน์ ทำการตรวจสอบความเข้าถึงได้หากมีอยู่ จากนั้นอ่านเอกสารด้วยตนเอง

    ส่งออกตัวอย่าง PDF แล้วเปิดไฟล์ที่ส่งออกลนั้น ตรวจสอบทุกหน้า: ข้อความที่หายไป, ตัวอักษรที่ผิดเพี้ยน, หน้าว่าง, ตารางที่ตัดทอน และหมายเลขหน้าที่ถูกต้อง ค้นหาประโยคที่คาดหวังเพื่อทดสอบว่าข้อความมีอยู่จริง ขอให้สมาชิกกลุ่มเปิดสำเนาส่งมอบบนอุปกรณ์ของพวกเขา ไฟล์ที่ใช้งานได้เฉพาะบนคอมพิวเตอร์ของคุณเท่านั้นไม่ถือว่าพร้อม

    แชร์สำเนาส่งมอบที่ถูกต้องกับกลุ่มเป้าหมาย ตรวจสอบการเข้าถึงโดยใช้บัญชีที่ได้รับอนุญาตของผู้รับจริงหรือขั้นตอนที่ได้รับการอนุมัติของศูนย์ เก็บร่างส่วนตัวไว้แยกต่างหาก บันทึกชื่อไฟล์ที่ส่งมอบและวันที่ การแก้ไขต้นฉบับในภายหลังจะไม่เปลี่ยนแปลง PDF ที่ส่งไปแล้ว

    ฝึกฝนกระบวนการทำงานทางวิชาการแบบครบวงจร

    โจทย์ฝึกปฏิบัติ. เตรียมรายงานกลุ่มสั้นๆ และการพูดสามนาทีเกี่ยวกับการขนส่งในโรงเรียน ใช้ข้อมูลที่มีอยู่แล้วที่ได้รับการอนุมัติ หรือเก็บรวบรวมคำตอบใหม่ก็ต่อเมื่อได้รับอนุญาตตามจำเป็น โจทย์ฝึกปฏิบัตินี้ไม่ใช่การประเมินอย่างเป็นทางการ

    1. กำหนดคำถามและกลุ่มที่คุณสามารถศึกษา บันทึกแหล่งที่มาและข้อจำกัดของแหล่งเหล่านั้น
    2. ทดสอบเครื่องมือ หัวข้อ ตาราง และคอมเมนต์ที่ร่วมกันใช้ ตั้งค่าสิทธิ์การใช้งานที่เหมาะสม
    3. ตกลงบทบาทและกำหนดวัน เสนอร่างรายงานด้วยหัวข้อ หลักฐาน และอ้างอิง
    4. แก้ไขร่วมกันและบันทึกการตัดสินใจ เก็บไฟล์ที่แก้ไขได้และทดสอบการกู้คืน
    5. สร้างสไลด์ที่มีข้อความชัดเจน อธิบายหลักฐานและข้อจำกัดเป็นเสียง
    6. ฝึกซ้อมพร้อมจับเวลา หากต้องการวิดีโอ ให้ตรวจสอบมุมกล้อง เสียง และสิทธิ์การใช้สื่อ
    7. ตรวจสอบไฟล์ส่งออกบนอุปกรณ์อื่น ส่งมอบไฟล์ที่ต้องการและรักษาบันทึกของกลุ่ม

    การเขียนสรุปให้เสร็จสิ้นคือการเตรียมความพร้อม ไม่ใช่หลักฐานว่าคุณได้ดำเนินการปฏิบัติงานเหล่านี้แล้ว เก็บไฟล์จริงและหลักฐานการทบทวนที่ศูนย์ของคุณกำหนดไว้

    แบบฝึกหัดและคำตอบที่อธิบายแล้ว

    คำถาม. 1. สมาชิกที่ใช้โทรศัพท์เท่านั้นไม่สามารถแก้ไขรูปแบบได้ คุณควรทดสอบอะไร? 2. ทำไมการซิงโครไนซ์จึงเป็นการป้องกันกู้คืนที่ไม่เพียงพอ? 3. ทำไมต้องใช้สไตล์หัวข้อ? 4. การแก้ไขออนไลน์พิสูจน์ว่าซอฟต์แวร์เป็นโอเพ่นซอร์สหรือไม่? 5. ร่างออฟไลน์สองฉบับมีย่อหน้าใหม่ต่างกัน ควรเกิดอะไรขึ้น? 6. การแก้ไขต้นฉบับจะเปลี่ยน PDF ที่ส่งไปแล้วหรือไม่? 7. หลักะ什麼แสดงถึงกระบวนการทำงานที่สมบูรณ์?

    คำตอบที่อธิบายแล้ว. 1. ทดสอบการแก้ไข การแปลง และการแชร์บนอุปกรณ์จริง 2. การลบอาจแพร่กระจาย; ใช้สำรองที่ยอมรับได้แยกต่างหากและทดสอบการกู้คืน 3. สไตล์ที่มีชื่อให้โครงสร้างที่เป็นที่ยอมรับและการทบทวนที่สม่ำเสมอ สามารถช่วยในการนำทางและรายการเนื้อหา 4. ไม่; ตรวจสอบใบอนุญาตและความเป็นไปได้ในการเข้าถึงแหล่งที่มา 5. เปรียบเทียบและรวมการเปลี่ยนแปลงที่ตั้งใจไว้ จากนั้นตกลงสำเนาปัจจุบัน เวลาสุดท้ายเพียงอย่างเดียวไม่เพียงพอ 6. ไม่; ส่งออกและตรวจสอบ PDF ที่แก้ไขแล้ว จากนั้นปฏิบัติตามขั้นตอนการแก้ไข 7. แสดงบันทึกต้นฉบับ รายงานที่แก้ไขได้ การแก้ไข การตรวจสอบการเข้าถึง สำเนาทดสอบการกู้คืน ไฟล์ส่งออกสุดท้าย และการนำเสนอที่ฝึกซ้อมแล้ว

  • 2

    GAC011 คอมพิวเตอร์ II: การพัฒนาเว็บ

    ดูบทเรียน
    2.1

    บทนี้คืออะไร และมีวิธีการให้คะแนนอย่างไร

    GAC011 คือรายวิชาที่คุณสร้างและเผยแพร่เว็บไซต์จริง. หกหน่วยเรียนนำคุณจากการออกแบบบนกระดาษ ผ่าน HTML, CSS และ JavaScript ไปจนถึงการเปิดใช้งานเว็บไซต์และแผนการตลาด.

    ทุกอย่างถูกประเมินตาม สิ่งที่คุณผลิต: Storyboards และการออกแบบ, เว็บไซต์ เอง, และ กลยุทธ์โซเชียลมีเดีย plus coursework. ไม่มีข้อสอบเขียน.

    • การออกแบบสำคัญเท่ากับโค้ด. ผลลัพธ์ของโมดูลนี้ระบุถึงความสวยงาม, การจัดวาง, การนำทาง และความง่ายในการใช้งาน alongside การเขียนสคริปต์.
    • ⚠ เว็บไซต์ที่คุณออกแบบที่นี่คือสิ่งที่จะ GAC017 เพิ่ม back end และฐานข้อมูล. แผนที่อ่อนแอ ในตอนนี้จะเสียเวลาในโมดูลถัดไป.

    คุณสามารถรันทุกตัวอย่างในโมดูลนี้ได้ใน code playground ของเว็บไซต์เอง, และอ้างอิง HTML, CSS และ JavaScript ที่นั่นลึกซึ้งกว่าโน้ตเหล่านี้.

    คำศัพท์ ฝึกฝน
    English ไทย
    storyboard/ˈstɔːribɔːd/ สตอรี่บอร์ด
    social media strategy/ˈsəʊʃl ˈmiːdiːə ˈstrætədʒi/ กลยุทธ์โซเชียลมีเดีย
    HTML/ˌeɪtʃ tiː em ˈel/ HTML
    CSS/ˌsiː es ˈes/ CSS
    2.1

    การออกแบบเว็บไซต์

    หลักสูตร

    หน่วยที่ 1 จากทั้งหมด 6 หน่วย ใน GAC011 Computing II: Web Development (ระดับ II). หลักสูตรนี้เรียนเป็นเวลาประมาณ 40 ชั่วโมงต่อสัปดาห์ บวกกับ 20 ชั่วโมงศึกษาด้วยตนเอง และประเมินผลที่ศูนย์สอนโดย ACT — ไม่มีข้อสอบภายนอก

    วัตถุประสงค์ของโมดูล: เมื่อสำเร็จหลักสูตรนี้ ผู้เรียนจะสามารถออกแบบและสร้างเว็บไซต์พื้นฐานด้วยการประยุกต์ใช้ความรู้ด้านภาษาการพัฒนาเว็บไซต์他们还จะเริ่มต้นเขียนโค้ดเพื่อสร้างเนื้อหาแบบไดนามิกเบื้องต้นในเว็บไซต์ นอกจากนี้ พวกเขาจะสร้างกลยุทธ์ในการโปรโมทเว็บไซต์ของตนผ่านโซเชียลมีเดีย

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC011.1: ออกแบบเว็บไซต์ที่มีประสิทธิภาพโดยใช้หลักการทางสุนทรียศาสตร์และแนวคิดการจัดวางรูปแบบอย่างเป็นทางการ เพื่อสื่อสารได้อย่างมีประสิทธิภาพโดยใช้องค์ประกอบทางภาพ

    วัตถุประสงค์การเรียนรู้ GAC011.3: นำแนวทางปฏิบัติที่ดีที่สุดด้านการนำทาง ความใช้งานง่าย และเนื้อหาข้อความมาประยุกต์ใช้ในการออกแบบเว็บไซต์ที่ช่วยให้ผู้เข้าถึงข้อมูลได้ง่ายขึ้น

    แหล่งที่มา: หลักสูตร Cambridge International

    • เริ่มบนกระดาษ. Wireframe แสดงโครงสร้างโดยไม่ใช้สี, ซึ่งเป็นวิธีเดียวที่จะ ถกเถียงเกี่ยวกับโครงสร้าง.
    • Information architecture คือสิ่งที่จะวางที่ไหน: หน้าต่างเว็บ, และเส้นทางที่ผู้เยี่ยมชม เลือกเดินระหว่างหน้าต่างๆ.
    • Visual hierarchy บอกสายตาว่าสิ่งใดสำคัญ — ผ่านขนาด, น้ำหนัก, ระยะห่างและ ความขัดแย้ง, ไม่ใช่ผ่านการตกแต่ง.
    • ออกแบบสำหรับ กลุ่มเป้าหมาย, และบอกใคร他们是 before คุณเลือกอะไรเลย.
    คำศัพท์ ฝึกฝน
    English ไทย
    wireframe/ˈwaɪəfreɪm/ Wireframe
    Information architecture/ˌɪnfəˈmeɪʃn ˈɑːkɪtektʃə/ สถาปัตยกรรมข้อมูล
    Visual hierarchy/ˈvɪʒuːəl ˈhaɪərɑːki/ ลำดับชั้นทางสายตา
    2.2

    การสร้างเว็บไซต์ด้วย HTML

    หลักสูตร

    หน่วยที่ 2 จากทั้งหมด 6 หน่วย ใน GAC011 Computing II: Web Development (ระดับ II). หลักสูตรนี้เรียนเป็นเวลาประมาณ 40 ชั่วโมงต่อสัปดาห์ บวกกับ 20 ชั่วโมงศึกษาด้วยตนเอง และประเมินผลที่ศูนย์สอนโดย ACT — ไม่มีข้อสอบภายนอก

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC011.2: สร้างและเผยแพร่เว็บไซต์โดยใช้ภาษาสคริปต์เพื่อเพิ่มองค์ประกอบแบบโต้ตอบ

    แหล่งที่มา: หลักสูตร Cambridge International

    • HTML กำหนดความหมาย, ไม่ใช่ลักษณะภายนอก. หัวข้อเป็น <h1> เพราะมัน เป็น หัวข้อจริงๆ. หัวเรื่อง
    • องค์ประกอบ (element) มีแท็กเปิด เนื้อหา และแท็กปิด; คุณสมบัติ (attribute) จะอยู่ภายในแท็กเปิด แท็กเปิด
    • องค์ประกอบเชิงประจักษ์ (semantic elements) — <header>, <nav>, <main>, <article>, <footer> — บอก เบราว์เซอร์ เภสัชกรค้นหา และเครื่องอ่านหน้าจอว่าพื้นที่หนึ่งมีลักษณะอย่างไร
    • ทุกภาพต้องมี ข้อความทางเลือก (alt text) ซึ่งเป็นสิ่งที่ผู้ใช้งานที่ตาบอดได้ยินและสิ่งที่ เภสัชกรอ่านได้
    คำศัพท์ ฝึกฝน
    English ไทย
    element/ˈelɪmənt/ ธาตุ
    attribute/ˈætrɪbjuːt/ แอททริบิวต์
    Semantic elements/səˈmæntɪk ˈelɪmənts/ องค์ประกอบทางภาษา
    alt text/ɒlt tekst/ alt text
    2.3

    การใช้ CSS เพื่อปรับปรุงเว็บไซต์ของคุณ

    หลักสูตร

    หน่วยที่ 3 จากทั้งหมด 6 หน่วย ใน GAC011 Computing II: Web Development (ระดับ II). หลักสูตรนี้เรียนเป็นเวลาประมาณ 40 ชั่วโมงต่อสัปดาห์ บวกกับ 20 ชั่วโมงศึกษาด้วยตนเอง และประเมินผลที่ศูนย์สอนโดย ACT — ไม่มีข้อสอบภายนอก

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC011.1: ออกแบบเว็บไซต์ที่มีประสิทธิภาพโดยใช้หลักการทางสุนทรียศาสตร์และแนวคิดการจัดวางรูปแบบอย่างเป็นทางการ เพื่อสื่อสารได้อย่างมีประสิทธิภาพโดยใช้องค์ประกอบทางภาพ

    วัตถุประสงค์การเรียนรู้ GAC011.2: สร้างและเผยแพร่เว็บไซต์โดยใช้ภาษาสคริปต์เพื่อเพิ่มองค์ประกอบแบบโต้ตอบ

    แหล่งที่มา: หลักสูตร Cambridge International

    • Selector เลือก elements; Declaration ตั้งค่า property เป็นค่า. การแยกส่วน
    • Responsive design ทำให้หน้าเว็บเดียวทำงานได้ทั้งบนโทรศัพท์และแล็ปท็อป, โดยปกติใช้
    • โมเดลกล่อง (box model) อธิบายการจัดวาง: เนื้อหา ตามด้วย padding, border, และ margin
    • การออกแบบแบบตอบสนอง (responsive design) ทำให้หน้าเดียวทำงานได้ทั้งบนโทรศัพท์และแล็ปท็อป โดยมักใช้ ความกว้างที่ยืดหยุ่นและ media query

    มันหดตัวต่ำกว่านั้น, และเพิ่ม media query เฉพาะสำหรับการเปลี่ยนแปลงที่หน้าจอเล็กจำเป็นต้อง

    ทางแก้ไม่ใช่การกำหนดความกว้างเป็นพิกเซลตายตัว ให้ตั้งค่า max-width เพื่อให้การ์ดไม่ขยายเกินหน้าจอ ปล่อยให้มัน การออกแบบกรณีที่ยืดหยุ่นก่อน, และการจัดการ media query sebagai pengec‌ข้อยกเว้น, คือสิ่งที่ "responsive" หมายความว่า.

    ออกแบบกรอบที่ยืดหยุ่นก่อน แล้วจึงพิจารณา media query เป็นกรณีพิเศษ นั่นคือสิ่งที่ "responsive" หมายถึง

    คำศัพท์ ฝึกฝน
    English ไทย
    selector/sɪˈlektə/ selector
    declaration/ˌdekləˈreɪʃn/ การประกาศตัวแปร (declaration)
    box model/bɒks ˈmɒdl/ box model
    Responsive design/rɪˈspɒnsɪv dɪˈzaɪn/ Responsive design
    media query/ˈmiːdiːə ˈkwɪərɪ/ media query
    DOM/dɒm/ DOM
    2.4

    เพิ่มปฏิสัมพันธ์ด้วย JavaScript

    หลักสูตร

    หน่วยที่ 4 จากทั้งหมด 6 หน่วย ใน GAC011 Computing II: Web Development (ระดับ II). หลักสูตรนี้เรียนเป็นเวลาประมาณ 40 ชั่วโมงต่อสัปดาห์ บวกกับ 20 ชั่วโมงศึกษาด้วยตนเอง และประเมินผลที่ศูนย์สอนโดย ACT — ไม่มีข้อสอบภายนอก

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC011.2: สร้างและเผยแพร่เว็บไซต์โดยใช้ภาษาสคริปต์เพื่อเพิ่มองค์ประกอบแบบโต้ตอบ

    แหล่งที่มา: หลักสูตร Cambridge International

    • Event — การคลิก, การส่งฟอร์ม, การกดปุ่ม — กระตุ้น function ที่คุณเขียน.
    • เก็บให้เล็กในระดับนี้: ตรวจสอบฟอร์ม, สลับเมนู, กรองรายการ. เว็บไซต์ที่ล้มเหลวเมื่อ
    • เหตุการณ์ (event) — การคลิก การส่งข้อมูล การกดปุ่ม — จะกระตุ้น ฟังก์ชัน (function) ที่คุณเขียนไว้
    • รักษาให้เล็กในระดับนี้: ตรวจสอบฟอร์ม เปิด-ปิดเมนู กรองรายการ เว็บไซต์ที่ล้มเหลวเมื่อ JavaScript ล้มเหลวคือการ ออกแบบที่ผิดพลาด ไม่ใช่ข้อผิดพลาดในการเขียนโค้ด
    คำศัพท์ ฝึกฝน
    English ไทย
    event/ɪˈvent/ เหตุการณ์
    function/ˈfʌŋkʃn/ function
    Hosting/ˈhəʊstɪŋ/ การโฮสต์
    domain name/dəˈmeɪn neɪm/ ชื่อโดเมน
    2.5

    เปิดตัวเว็บไซต์ของคุณ

    หลักสูตร

    หน่วยที่ 5 จากทั้งหมด 6 หน่วย ใน GAC011 Computing II: Web Development (ระดับ II). หลักสูตรนี้เรียนเป็นเวลาประมาณ 40 ชั่วโมงต่อสัปดาห์ บวกกับ 20 ชั่วโมงศึกษาด้วยตนเอง และประเมินผลที่ศูนย์สอนโดย ACT — ไม่มีข้อสอบภายนอก

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC011.3: นำแนวทางปฏิบัติที่ดีที่สุดด้านการนำทาง ความใช้งานง่าย และเนื้อหาข้อความมาประยุกต์ใช้ในการออกแบบเว็บไซต์ที่ช่วยให้ผู้เข้าถึงข้อมูลได้ง่ายขึ้น

    วัตถุประสงค์การเรียนรู้ GAC011.4: ใช้เว็บไซต์เพื่อเสริมงานวิชาการที่ทำในรูปแบบอื่น

    แหล่งที่มา: หลักสูตร Cambridge International

    • Accessibility ไม่ใช่ทางเลือก — ความขัดแย้ง, alt text, การนำทางด้วยคีย์บอร์ด, และข้อความ
    • ⚠ ตรวจสอบสิ่งที่คุณมีสิทธิ์เผยแพร่. รูปภาพหรือฟอนต์ในเว็บของคุณต้องมีใบอนุญาตที่
    • ⚠ ตรวจสอบว่าคุณสามารถเผยแพร่อะไรได้. Image หรือ font บนเว็บไซต์ของคุณต้องการใบอนุญาตที่ อนุญาตให้ใช้, เหมือนกับการอ้างอิงในบทความ.
    • ⚠ ตรวจสอบสิ่งที่คุณสามารถเผยแพร่ได้ รูปภาพหรือฟอนต์ในเว็บไซด์ของคุณต้องการใบอนุญาตที่ อนุญาตให้ทำอย่างนั้น พอดีกับการอ้างอิงในบทความ
    คำศัพท์ ฝึกฝน
    English ไทย
    Accessibility/ækˌsesəˈbɪlɪti/ การเข้าถึงได้
    content plan/ˈkɒntent plæn/ แผนเนื้อหา
    2.6

    การตลาดโซเชียลมีเดีย

    หลักสูตร

    หน่วยที่ 6 จากทั้งหมด 6 หน่วย ใน GAC011 Computing II: Web Development (ระดับ II). หลักสูตรนี้เรียนเป็นเวลาประมาณ 40 ชั่วโมงต่อสัปดาห์ บวกกับ 20 ชั่วโมงศึกษาด้วยตนเอง และประเมินผลที่ศูนย์สอนโดย ACT — ไม่มีข้อสอบภายนอก

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC011.5: ใช้โซเชียลมีเดียเพื่อโปรโมทหรือค้นหาเว็บไซต์

    แหล่งที่มา: หลักสูตร Cambridge International

    • Metrics ต้องเชื่อมโยงกับวัตถุประสงค์: Reach, Engagement, และ click-through ไปยัง เว็บไซต์ของคุณเป็นเรื่องต่างกัน, และมีเพียงอย่างเดียวเท่านั้นที่เรียกว่า traffic.
    • แผนเนื้อหาระบุว่าคุณจะโพสต์อะไร โพสต์บ่อยแค่ไหน และใครเป็นผู้เขียน
    • วัดผล, แล้วเปลี่ยนทีละอย่าง. เปลี่ยนทุกอย่างพร้อมกันไม่สอนให้คุณรู้ว่าอย่างไหน ได้ผล.
    • วัดผล แล้วเปลี่ยนทีละอย่าง การเปลี่ยนทุกอย่างพร้อมกันทำให้คุณไม่รู้เรื่องอะไรว่าสิ่งใด JavaScript, ฐานข้อมูล, SQL, การเชื่อมต่อทั้งสอง, และการดู data science ครั้งแรก.
    คำศัพท์ ฝึกฝน
    English ไทย
    Metrics/ˈmetrɪks/ ตัวชี้วัด
    Additional notes PDF

    A website should help its intended reader

    A school-transport report may contain detailed methods and tables. Its website can give classmates a short overview. The page should help them find the main result, inspect the method and reach the approved full report.

    These separate notes add practical GAC011 work. Preserve the original handout beside them. Follow your current centre brief for required tools, depth and submission evidence.

    Original practice brief. Build one readable page for classmates using invented transport counts. Add navigation, a table and a category filter. Plan how the page supports a report and a short talk. No real responses are collected. Local preview is practice; it is not public publication.

    Draw a wireframe with a title, introduction, section links, findings, method and footer. Give each area a clear purpose. Visitors should not have to guess whether a button changes the page or opens another document. Use meaningful text such as “Method and limits”, rather than “Click here”.

    Build a complete HTML page

    Character encoding 字符编码 tells the browser how to read the file's text. UTF-8 supports many writing systems. The viewport setting helps mobile browsers use the device width. A descriptive title helps people identify the page in a tab.

    Save the following complete example as transport.html. Open that file in a browser. It works without a library, account or network request. The built-in style block keeps this first exercise in one file. A later project can move those styles into a separate CSS file and link it from the head.

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>School transport: practice report</title>
    <style>
    :root { --page: #ffffff; --text: #172033; --line: #637083; --link: #164db2; }
    body.dark { --page: #080d17; --text: #e9eef7; --line: #8392a8; --link: #a8d2ff; }
    * { box-sizing: border-box; }
    body { margin: 0; background: var(--page); color: var(--text); font: 1.1rem/1.6 sans-serif; }
    header, main, footer { max-width: 48rem; margin: auto; padding: 1rem; }
    a { color: var(--link); }
    nav { display: flex; flex-wrap: wrap; gap: 1rem; }
    section { margin-block: 2rem; padding-block: 1rem; border-top: 1px solid var(--line); }
    button, select { font: inherit; padding: .4rem; background: var(--page); color: var(--text); border: 1px solid var(--line); }
    :focus-visible { outline: 3px solid var(--link); outline-offset: 3px; }
    table { width: 100%; border-collapse: collapse; }
    caption { text-align: left; margin-block: .5rem; }
    th, td { text-align: left; padding: .5rem; border-bottom: 1px solid var(--line); }
    [hidden] { display: none !important; }
    </style>
    </head>
    <body>
    <header>
    <h1>School transport</h1>
    <p>An original practice example. All counts are invented.</p>
    <nav aria-label="Report sections">
    <a href="#findings">Findings</a>
    <a href="#method">Method and limits</a>
    </nav>
    <div id="controls" hidden>
    <button id="theme" type="button">Use dark theme</button>
    <label for="mode">Show transport category</label>
    <select id="mode">
    <option value="all">All categories</option>
    <option value="walk">Walking</option>
    <option value="bus">Bus</option>
    <option value="cycle">Cycling</option>
    </select>
    </div>
    </header>
    <main>
    <section id="findings" aria-labelledby="findings-title">
    <h2 id="findings-title">Findings</h2>
    <p>In this invented group of 36 responses, bus travel has the largest count.</p>
    <table>
    <caption>Practice counts, not research findings</caption>
    <thead><tr><th scope="col">Main mode</th><th scope="col">Responses</th></tr></thead>
    <tbody>
    <tr data-mode="walk"><th scope="row">Walking</th><td>12</td></tr>
    <tr data-mode="bus"><th scope="row">Bus</th><td>18</td></tr>
    <tr data-mode="cycle"><th scope="row">Cycling</th><td>6</td></tr>
    </tbody>
    </table>
    <p id="status" role="status">3 transport categories shown.</p>
    </section>
    <section id="method" aria-labelledby="method-title">
    <h2 id="method-title">Method and limits</h2>
    <p>Each invented response has one main mode. The counts sum to 36.</p>
    <p>The table does not explain choices, travel distance or the whole school's habits.</p>
    <p>This page is a short companion to a report and oral presentation. An actual project should link its approved report and sources here.</p>
    </section>
    </main>
    <footer><p>GAC011 practice: no responses are collected or sent.</p></footer>
    <script>
    const controls = document.querySelector("#controls");
    const mode = document.querySelector("#mode");
    const rows = [...document.querySelectorAll("tbody tr")];
    const status = document.querySelector("#status");
    const theme = document.querySelector("#theme");
    mode.addEventListener("change", () => {
      let shown = 0;
      rows.forEach(row => {
        row.hidden = mode.value !== "all" && row.dataset.mode !== mode.value;
        if (!row.hidden) shown += 1;
      });
      status.textContent = `${shown} transport ${shown === 1 ? "category" : "categories"} shown.`;
    });
    theme.addEventListener("click", () => {
      const dark = document.body.classList.toggle("dark");
      theme.textContent = dark ? "Use light theme" : "Use dark theme";
    });
    controls.hidden = false;
    </script>
    </body>
    </html>
    

    The HTML provides readable content before JavaScript runs. The href="#method" link points to the element with id="method". IDs must be unique on the page. A wrong ID breaks that link even if the label looks correct.

    The table's caption states what its numbers mean. Column and row headings describe the cells. The invented values are 12, 18 and 6, giving 36 responses. Bus has the largest count. Those counts do not tell us why people choose a mode.

    Explain and adapt the CSS

    A CSS custom property 自定义属性 stores a reusable value, such as a colour. The example uses shared page, text, border and link colours. The dark class changes those values together. Text areas and controls use the same page colour in dark mode. Borders and space separate sections.

    The universal box-sizing rule makes specified sizes include padding and borders. The reading area grows with the window but stops at 48rem. The navigation can wrap when space is limited. A flexible width often solves the first layout problem without a media query.

    The :focus-visible outline helps keyboard users find the current control. Do not remove it just because it is visible. Links retain underlines. Table headings and sufficient contrast help readers understand the data. An actual image needs text suited to its purpose: meaningful information needs a useful description; a purely decorative image can use empty alt text.

    Adaptation. Change the page title and introduction for another approved academic topic. Keep a clear heading order. Try a narrow window and enlarged text. If you later add two columns, decide where they should stack and test a suitable media query. Do not add a fixed width that makes the phone scroll sideways.

    Trace the JavaScript interaction

    An event listener 事件监听器 runs code when its event occurs. The example listens for a changed selection. mode.value gives the selected value. Each row's data-mode attribute becomes row.dataset.mode in JavaScript.

    A row is hidden when a specific category is selected and the row does not match. Selecting all makes every row visible. The counter starts at zero for each change. It increases once for each visible category, not once per response. Therefore selecting Bus shows one category, not eighteen categories.

    Trace. Select Bus. Walking and Cycling become hidden. Bus remains visible and the status says “1 transport category shown.” Select All categories. The hidden condition is false for every row, so the status returns to three categories.

    The theme button adds or removes the dark class. Its label describes the next action. Updating textContent changes text; it does not treat that text as HTML. The status region can announce the changed count to assistive software. Check actual behaviour with the tools available at your centre.

    Progressive enhancement 渐进增强 means that useful basic content works before extra features are added. The example keeps interactive controls hidden until their listeners are attached. Without JavaScript, the full table, methods and section links still work. A filter changes the view, not the underlying counts or study limits.

    Check, publish and maintain the site

    Before any authorised launch, record results of practical checks. Open every link, use the keyboard, enlarge text and try phone-sized layouts. Check both themes and a second browser or device. Verify the complete content still works if the optional script is unavailable. Read errors rather than hiding them.

    Relative path 相对路径 means a file location described from another location. For an approved report saved beside your page as report.pdf, an HTML link can use href="report.pdf". Use a meaningful label and identify the PDF. Add the actual report only when you have it; do not leave a broken sample link. Check filenames and upper/lower case on the host.

    A static site 静态网站 can serve stored HTML, CSS, scripts and images. The browser can still run interactive JavaScript. A domain name 域名 is an address people use; hosting provides the service that delivers files. A domain alone does not upload your site.

    Use your centre's approved publishing process. Check media permission and remove private drafts or participant information. Upload the required files together. Open the actual public URL and verify paths, display and controls there. A successful local preview is not proof of a successful launch.

    Keep editable source files and a known working copy. When you revise, check the change and its affected links. Record the version and date. Correcting your local file does not update a hosted copy until the approved publishing process delivers it.

    Connect the website to academic work and promotion

    The website should complement your report and talk. Its overview gives a clear question, one useful result and the study's limits. The full report carries detailed evidence and references. A slide in the talk can show the page address or an approved QR code. Check that the link reaches the intended version. Do not claim that the practice counts are real findings.

    For promotion, define an audience and objective first. For example: help classmates find the approved report during project week. Plan a permitted post with a short accurate description, meaningful link text and a named owner. Follow centre rules and platform requirements. Planning a post does not show that promotion actually happened.

    Impressions 展示次数 count displays under the platform's definition. Reach usually refers to distinct accounts under its definition. Neither is automatically the number of people who read the report. Click-through rate 点击率 needs a stated numerator and denominator.

    Invented example. Post A receives 400 impressions and 20 link clicks. Post B receives 250 impressions and 25 link clicks. Using link clicks divided by impressions, A has $20/400=5\%$ and B has $25/250=10\%$. B has more link clicks despite fewer impressions.

    These numbers do not prove B's wording caused the difference. Timing, audience and repeated clicks may differ. Link clicks also do not prove the report loaded or was read. Choose a change, record its context and compare a measure that matches the objective. Keep unnecessary personal tracking out of the task.

    Practice and explained answers

    Questions. 1. Which element does the Method link reach? 2. What should the filter display for Cycling? 3. Does filtering change the original total of 36? 4. What remains usable without JavaScript? 5. Why is a domain purchase insufficient for launch? 6. Post C has 600 impressions and 24 link clicks. Find its rate. 7. Does B's higher rate prove its wording is better? 8. Name evidence of a completed website task.

    Explained answers. 1. The element whose ID is method; the fragment and ID must match. 2. Only Cycling's row, with six responses and one category shown. 3. No; it changes visible rows, not the original dataset. 4. The text, full table, method and section links; optional controls remain hidden. 5. Files still need approved hosting and delivery, then checks at the actual URL. 6. $24/600=4\%$. 7. No; other differences and measurement limits remain. 8. Show your plan, sources, working page, checks and required publishing, academic and promotion evidence.

  • 3

    GAC017 คอมพิวเตอร์ III: วิทยาศาสตร์ข้อมูลและแอปพลิเคชันบนเว็บ

    ดูบทเรียน
    3.1

    บทนี้คืออะไร และมีวิธีการให้คะแนนอย่างไร

    GAC017 เป็นโมดูลคอมพิวเตอร์ระดับ III: สิ่งที่อยู่เบื้องหลังเว็บไซต์ หกหน่วยครอบคลุม back-end ที่สื่อสารกับมัน, Project วิเคราะห์ข้อมูล, และ coursework — โดยปกติ

    ที่สื่อสารกับมัน, โครงการวิเคราะห์ข้อมูล, และการทำโครงงาน — โดยทั่วไป คีย์หลักของตาราง, และตัวชี้นั้นคือความสัมพันธ์. กระจายอยู่ตลอดเทอมส่วนใหญ่ แทนที่จะรวมตัวกันไว้ที่ช่วงท้าย

    • การประเมินงานจะพิจารณาว่าโค้ด ทำงานได้และตอบคำถาม หรือไม่ ไม่ใช่พิจารณาจากปริมาณโค้ดที่มี
    • ⚠ ออกแบบฐานข้อมูลก่อนเขียนคำสั่ง SQL ทุกปัญหาที่ตามมาในภายหลังมักเป็นปัญหาของตาราง สวมชุดคำสั่ง SQL เข้าไป

    ตัวอย่าง SQL ทั้งหมดในที่นี้สามารถรันได้ใน Playground ของเว็บไซต์ และคู่มืออ้างอิง SQL ที่นั่นคือ เวอร์ชันที่สมบูรณ์กว่าของหมายเหตุเหล่านี้

    คำศัพท์ ฝึกฝน
    English ไทย
    back end/bæk end/ ส่วนหลัง
    server/ˈsɜːvə/ เซิร์ฟเวอร์
    SQL/ˌes kjuː ˈel/ SQL
    3.1

    JavaScript สำหรับ Back-end ของแอปพลิเคชันเว็บ

    หลักสูตร

    หน่วยที่ 1 จากทั้งหมด 6 หน่วย ใน GAC017 Computing III: Data Science and Web Apps (ระดับ III). หลักสูตรนี้เรียนเป็นเวลาประมาณ 40 ชั่วโมงต่อสัปดาห์ บวกกับ 20 ชั่วโมงศึกษาด้วยตนเอง และประเมินผลที่ศูนย์สอนโดย ACT — ไม่มีข้อสอบภายนอก

    วัตถุประสงค์ของโมดูล: เมื่อสำเร็จหลักสูตรนี้ ผู้เรียนจะสามารถสร้างแอปพลิเคชันเว็บได้ ผู้เรียนจะได้เรียนรู้เกี่ยวกับการเขียนโปรแกรม Back-end以及如何创建动态网站。他们能够使用 SQL 从多个表中分析数据,从而做出明智的决策。

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC017.1: เข้าใจองค์ประกอบพื้นฐานของแอปพลิเคชันเว็บ

    แหล่งที่มา: หลักสูตร Cambridge International

    • Front-end ทำงานบนเบราว์เซอร์ ส่วน Back-end ทำงานบนเซิร์ฟเวอร์และจัดเก็บ ข้อมูลที่เบราว์เซอร์ต้องไม่เข้าถึง
    • เซิร์ฟเวอร์ รับ คำขอ (Request) และส่ง คำตอบ (Response) กลับมา วงจรนี้คือ โครงสร้างทั้งหมด
    • API คือรูปแบบ agreed shape ของคำขอและคำตอบเหล่านั้น
    • ⚠ ข้อมูลลับทุกอย่าง เช่น รหัสผ่าน หรือคีย์ ต้องอยู่ใน Back-end เท่านั้น โค้ดบนเบราว์เซอร์เป็น สิ่งที่ทุกคนที่เข้าเยี่ยมชมสามารถอ่านได้
    คำศัพท์ ฝึกฝน
    English ไทย
    database/ˈdeɪtəbeɪs/ ฐานข้อมูล
    web app/web æp/ แอปพลิเคชันเว็บ
    data analysis project/ˈdeɪtə əˈnæləsɪs ˈprɒdʒekt/ โครงการวิเคราะห์ข้อมูล
    front end/frʌnt end/ ส่วนหน้า
    request/rɪˈkwest/ ขอ
    response/rɪˈspɒns/ การตอบสนอง
    API/ˌeɪ piː ˈaɪ/ API
    3.2

    การเขียนโปรแกรม Back-end

    หลักสูตร

    หน่วยที่ 2 จากทั้งหมด 6 หน่วย ใน GAC017 Computing III: Data Science and Web Apps (ระดับ III). หลักสูตรนี้เรียนเป็นเวลาประมาณ 40 ชั่วโมงต่อสัปดาห์ บวกกับ 20 ชั่วโมงศึกษาด้วยตนเอง และประเมินผลที่ศูนย์สอนโดย ACT — ไม่มีข้อสอบภายนอก

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC017.2: ปรับใช้แอปพลิเคชัน Back-end โดยใช้ภาษาสคริปต์เพื่อเชื่อมต่อกับฐานข้อมูล

    แหล่งที่มา: หลักสูตร Cambridge International

    • Route เชื่อมต่อ URL กับโค้ดที่จะทำงานเมื่อมีการเรียกใช้ URL นั้น
    • ตรวจสอบความถูกต้องของอินพุต บนเซิร์ฟเวอร์ การตรวจสอบบนเบราว์เซอร์เป็นเพียงความสะดวกสำหรับผู้ใช้ที่ซื่อสัตย์ ไม่ใช่การป้องกัน
    • ห้ามสร้างคำสั่ง SQL โดยการต่อสตริง กับอินพุตของผู้ใช้ นั่นคือวิธีเกิด SQL injection ซึ่งเป็นการละเมิดความปลอดภัยที่หน่วยเรียนนี้มีขึ้นเพื่อป้องกัน
    • ส่งกลับ สถานะ (Status) ที่ตรงไปตรงมา: 200 สำหรับความสำเร็จ, 400 สำหรับคำขอที่ผิด, 404 สำหรับสิ่งที่ไม่มีอยู่ โมดูล, และนั่นคือจุดที่การออกแบบครั้งแรกส่วนใหญ่ล้มเหลว.
    คำศัพท์ ฝึกฝน
    English ไทย
    route/ruːt/ เส้นทาง
    Validate input/ˈvælɪdeɪt ˈɪnpʊt/ ตรวจสอบอินพุต
    SQL injection/ˌes kjuː ˈel ɪnˈdʒekʃn/ SQL injection
    relational database/rɪˈleɪʃənl ˈdeɪtəbeɪs/ ฐานข้อมูลเชิงสัมพันธ์
    tables/ˈteɪblz/ ตาราง
    3.3

    บทนำสู่ฐานข้อมูล

    หลักสูตร

    หน่วยที่ 3 จากทั้งหมด 6 หน่วย ใน GAC017 Computing III: Data Science and Web Apps (ระดับ III). หลักสูตรนี้เรียนเป็นเวลาประมาณ 40 ชั่วโมงต่อสัปดาห์ บวกกับ 20 ชั่วโมงศึกษาด้วยตนเอง และประเมินผลที่ศูนย์สอนโดย ACT — ไม่มีข้อสอบภายนอก

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC017.3: สร้างฐานข้อมูลที่มีหลายตาราง

    แหล่งที่มา: หลักสูตร Cambridge International

    • ฐานข้อมูลเชิงสัมพันธ์ เก็บข้อมูลไว้ใน ตาราง ที่มีแถวและคอลัมน์
    • Primary key ใช้ระบุแถวได้อย่างชัดเจน Foreign key ชี้ไปยัง primary key ของตารางอื่น และการชี้นี้คือความสัมพันธ์ ตัดออก.
    • Normalisation กำจัดข้อมูลที่ซ้ำซ้อนเพื่อให้ข้อเท็จจริงหนึ่ง resides ในที่เดียว
    • ออกแบบโดยการถามว่า ** entities** คืออะไร จากนั้นสิ่งที่เชื่อมต่อกันคืออะไร

    ตัวอย่างฝึกปฏิบัติ. โรงเรียนต้องการจัดเก็บข้อมูลนักเรียน หลักสูตร และใครเรียนอะไร

    สองตารางทำไม่ได้: นักเรียนเรียนหลายหลักสูตร และหลักสูตรมีนักเรียนหลายคน ความสัมพันธ์ many-to-many จำเป็นต้องมีตารางที่สาม — การลงทะเบียน (Enrolments) — ที่มีแถวเป็นคู่ (นักเรียน, หลักสูตร)

    การตระหนักว่าจำเป็นต้องใช้ตารางที่สามนี้คือแนวคิดฐานข้อมูลที่有用ที่สุดในโมดูลนี้ และเป็นจุดที่การออกแบบครั้งแรกmost มักพลาด A spoken text type 口语语篇类型 คือรูปแบบของการพูด เช่น การประกาศ, การสนทนา, การสัมภาษณ์ หรือการบรรยาย. วัตถุประสงค์ 目的 ของมันคือสิ่งที่มันพยายามจะบรรลุถึง. ผู้ฟัง 听众 คือคนที่มันสื่อสารด้วย. ระดับความเป็นทางการ 正式程度 ขึ้นอยู่กับความสัมพันธ์และสถานการณ์.

    คำศัพท์ ฝึกฝน
    English ไทย
    primary key/ˈpraɪməri kiː/ คีย์หลัก
    foreign key/ˈfɒrən kiː/ คีย์อ้างอิง
    Normalisation/ˌnɔːməlaɪˈzeɪʃn/ Normalisation
    entities/ˈentɪtiz/ เอนทิตี
    3.4

    SQL สำหรับการเขียนโปรแกรม Back-end

    หลักสูตร

    หน่วยที่ 4 จากทั้งหมด 6 หน่วย ใน GAC017 Computing III: Data Science and Web Apps (ระดับ III). หลักสูตรนี้เรียนเป็นเวลาประมาณ 40 ชั่วโมงต่อสัปดาห์ บวกกับ 20 ชั่วโมงศึกษาด้วยตนเอง และประเมินผลที่ศูนย์สอนโดย ACT — ไม่มีข้อสอบภายนอก

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC017.4: วิเคราะห์ข้อมูลโดยใช้ SQL เพื่อประกอบการตัดสินใจ

    แหล่งที่มา: หลักสูตร Cambridge International

    • SQL ทำหน้าที่ถามคำถามกับฐานข้อมูล SELECT … FROM … WHERE … เป็นแกนหลัก
    • JOIN รวมแถวจากสองตารางบนคีย์ที่ตรงกัน
    • GROUP BY ร่วมกับ COUNT, SUM หรือ AVG ตอบคำถาม "มีกี่คน/ชิ้นต่อ..."
    • ⚠ WHERE กรองแถวก่อนการจัดกลุ่ม; HAVING กรองกลุ่มหลังการจัดกลุ่ม การใช้สิ่งที่ไม่ถูกนี่คือ ข้อผิดพลาดคลาสสิกของ SQL และมักจะให้คำตอบที่ดูสมเหตุสมผลแต่ผิด

    ตัวอย่างฝึกปฏิบัติ. หลักสูตรใดมีนักเรียนมากกว่า 20 คน?

    SELECT c.title, COUNT(*) AS students
    FROM enrolments e
    JOIN courses c ON c.id = e.course_id
    GROUP BY c.title
    HAVING COUNT(*) > 20;
    

    จำนวนนับเป็นคุณสมบัติของกลุ่ม ดังนั้นการกรองจึงต้องใช้ HAVING หากเขียนด้วย WHERE มันจะไม่ ทำงาน — และเมื่อข้อผิดพลาดคล้ายกันนั้นทำงานได้ มันจะตอบคำถามที่ต่างออกไปอย่างเงียบๆ

    คำศัพท์ ฝึกฝน
    English ไทย
    JOIN/dʒɔɪn/ JOIN
    GROUP BY/ɡruːp baɪ/ GROUP BY
    3.5

    การเชื่อมต่อ JavaScript กับ SQL

    หลักสูตร

    หน่วยที่ 5 จากทั้งหมด 6 หน่วย ใน GAC017 Computing III: Data Science and Web Apps (ระดับ III). หลักสูตรนี้เรียนเป็นเวลาประมาณ 40 ชั่วโมงต่อสัปดาห์ บวกกับ 20 ชั่วโมงศึกษาด้วยตนเอง และประเมินผลที่ศูนย์สอนโดย ACT — ไม่มีข้อสอบภายนอก

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC017.2: ปรับใช้แอปพลิเคชัน Back-end โดยใช้ภาษาสคริปต์เพื่อเชื่อมต่อกับฐานข้อมูล

    วัตถุประสงค์การเรียนรู้ GAC017.4: วิเคราะห์ข้อมูลโดยใช้ SQL เพื่อประกอบการตัดสินใจ

    แหล่งที่มา: หลักสูตร Cambridge International

    • Back-end รับคำขอ รัน parameterised query และส่งกลับแถวข้อมูลในรูปแบบ ข้อมูล โดยทั่วไปคือ JSON
    • Parameterised หมายความว่าค่าต่างๆ เคลื่อนย้ายแยกออกจากข้อความคำสั่ง SQL นี่คือสิ่งที่ทำให้ injection เป็นไปไม่ได้แทนที่จะเป็นแค่ unlikely
    • จัดการกรณีว่าง (empty case). คำสั่งที่คืนค่าไม่มีแถวนั้นเป็นเรื่องปกติ และหน้าเว็บที่พังทลายเพราะมันคือ สิ่งที่ยังไม่เสร็จสมบูรณ์
    คำศัพท์ ฝึกฝน
    English ไทย
    parameterised query/ˌpærəˈmetəraɪzd ˈkwɪərɪ/ query แบบพารามิเตอร์
    JSON/ˈdʒeɪsn/ JSON
    3.6

    วิทยาศาสตร์ข้อมูล

    หลักสูตร

    หน่วยที่ 6 จากทั้งหมด 6 หน่วยใน GAC017 Computing III: Data Science and Web Apps (ระดับ III). หลักสูตรนี้เรียนเป็นเวลาประมาณ 40 ชั่วโมงในห้องเรียน再加上 20 ชั่วโมงการศึกษาด้านตนเอง และมีการประเมินผลที่ศูนย์สอนและตรวจสอบโดย ACT — ไม่มีข้อสอบภายนอก.

    ผลลัพธ์การเรียนรู้ submodule ที่หน่วยนี้มุ่งสู่:

    วัตถุประสงค์การเรียนรู้ GAC017.5: การประยุกต์ใช้ Data Science กับสาขาวิชาการอื่นๆ

    แหล่งที่มา: หลักสูตร Cambridge International

    • Data science เปลี่ยนข้อมูลให้เป็นคำตัดสินใจ และส่วนมากของงานเกิดขึ้นก่อน การวิเคราะห์: การทำความสะอาด การเชื่อมต่อ และการตรวจสอบว่าข้อมูลรองรับอะไรได้บ้าง
    • Descriptive statistics สรุปภาพรวม; visualisation แสดงรูปร่าง; ไม่มีสิ่งใด ยืนยันสาเหตุ-ผล
    • Correlation is not causation — ประโยคที่ทุกโปรเจกต์ข้อมูลต้องกล่าวถึงและmost ลืม ภาษาที่เป็นทางการ 正式 speech มักใช้ภาษาที่จัดระเบียบอย่างดี. ภาษาไม่เป็นทางการ 非正式 speech อาจใช้คำ сок短的และบทพูดสั้นๆ. ไม่มีรูปแบบไหนดีกว่าอีกแบบเสมอไป. ผู้พูดที่เป็นทางการก็ยังคงพูด “we'll” ได้, และการสนทนาที่เป็นมิตรก็สามารถให้คำแนะนำที่แม่นยำได้. ตัดสินใจจากคุณสมบัติหลายอย่าง, ไม่ใช่แค่คำเดียว.
    • ระบุ ข้อจำกัด ของชุดข้อมูลของคุณ โปรเจกต์ที่บอกชัดว่าข้อมูลของมันไม่สามารถแสดงอะไรได้ ได้คะแนนสูงกว่าโปรเจกต์ที่แอบอ้างเกินจริงอย่างเงียบๆ
    คำศัพท์ ฝึกฝน
    English ไทย
    Data science/ˈdeɪtə ˈsaɪəns/ วิทยาศาสตร์ข้อมูล
    Descriptive statistics/dɪˈskrɪptɪv stəˈtɪstɪks/ สถิติพรรณนา
    visualisation/ˌvɪʒuːəlaɪˈzeɪʃn/ การแสดงผล
    Correlation is not causation/ˌkɒrɪˈleɪʃn ɪz nɒt kɔːˈseɪʃn/ ความสัมพันธ์ไม่ใช่สาเหตุ
    Additional notes PDF

    Follow one request from browser to database

    A teacher asks which clubs have places left. A spreadsheet can answer once. A web app lets a reader ask again with a different filter.

    Our example has four students, four classes and five enrolments. All records are invented. It is a learning project, not a school booking service.

    The three parts have different jobs:

    Part Job in the example Runs where?
    Browser page Collect a minimum and show a table The reader's browser
    JavaScript server Check the request and run the query The local server
    SQLite database Store related records and calculate course totals Inside this server process

    An HTTP request 请求信息 asks for a resource. An HTTP response 响应信息 contains a status and content. The browser sends GET /api/courses?min=2. The server checks the number, then asks SQLite for course totals. It returns a JSON object 数据对象. The browser reads that object and creates table cells. The database does not send HTML to the browser. The browser does not run our server's SQL.

    Start the supplied three-file example with node server.mjs. Open the address it prints. Use Node.js 22.13 or newer with the built-in SQLite module available. Keep server.mjs, index.html and courses.sql together in your own working copy. No account or package download is needed. Stop your own server with Ctrl-C.

    Get the complete example files from the site's static teaching folder:

    • /static/teaching/gac_computing/database-app/server.mjs
    • /static/teaching/gac_computing/database-app/courses.sql
    • /static/teaching/gac_computing/database-app/index.html.txt
    • /static/teaching/gac_computing/database-app/README.txt

    Save the first two with their shown names. Save index.html.txt as index.html. The last file has the full run and adaptation instructions. Use these paths after the site's address. The page file is supplied as text for downloading. It must run through your local example server to reach the matching API.

    This example uses an in-memory database 内存数据库. Restarting creates the original records again. A file database could keep changes after restart. That needs a different storage choice.

    Design relationships before writing queries

    Each student has one row in students. Each class has one row in courses. An enrolment links a student to a class. A student may join several classes. A class may contain several students. This is a many-to-many relationship 多对多关系. The third table stores one student–class pair per row.

    Student 1 joins courses 10 and 20. Course 10 contains students 1, 2 and 3. The same student name need not be repeated in each enrolment row. To change Mei's name, change one student record. This avoids conflicting copies.

    The following two blocks form one complete script. Run them in order in a new empty practice database. Do not run it against an existing project database.

    PRAGMA foreign_keys = ON;
    CREATE TABLE students (
      id INTEGER PRIMARY KEY,
      name TEXT NOT NULL
    );
    CREATE TABLE courses (
      id INTEGER PRIMARY KEY,
      title TEXT NOT NULL,
      capacity INTEGER NOT NULL CHECK (capacity >= 0)
    );
    CREATE TABLE enrolments (
      student_id INTEGER NOT NULL REFERENCES students(id),
      course_id INTEGER NOT NULL REFERENCES courses(id),
      PRIMARY KEY (student_id, course_id)
    );
    

    The tables now exist. Add the fictional records, then query totals for each class.

    INSERT INTO students VALUES
      (1, 'Mei'), (2, 'Kai'), (3, 'Lin'), (4, 'Jia');
    INSERT INTO courses VALUES
      (10, 'Coding', 3), (20, 'Coding', 2),
      (30, 'Art', 2), (40, 'Music', 3);
    INSERT INTO enrolments VALUES
      (1, 10), (2, 10), (3, 10), (1, 20), (4, 30);
    SELECT c.id, c.title, c.capacity,
           COUNT(e.student_id) AS enrolled
    FROM courses c
    LEFT JOIN enrolments e ON c.id = e.course_id
    GROUP BY c.id, c.title, c.capacity
    ORDER BY enrolled DESC, c.id;
    

    A constraint 约束 rejects data that breaks a rule. NOT NULL requires a value. CHECK (capacity >= 0) rejects negative capacity. The paired primary key rejects a repeated enrolment, such as (1,10) twice. Either ID may appear in many pairs. The pair itself must be unique.

    Foreign keys reject missing students or classes when foreign-key checking is enabled. The script enables that checking explicitly. A foreign key does not create the missing row. These rules do not prevent every error. For example, capacity 3 does not itself limit enrolments to 3. A real booking operation would need a capacity check and safe handling of simultaneous bookings.

    Count classes without losing empty ones

    Courses 10 and 20 both have the title Coding. They are different classes. Group by the course ID as well as its title and capacity. Grouping only by title would merge their enrolments and answer the wrong question.

    LEFT JOIN keeps every course, including Music with no enrolments. The unmatched course has an empty enrolment side. COUNT(e.student_id) counts matched student IDs and gives zero for Music. COUNT(*) counts the joined row, including that unmatched row, and would give Music one.

    ID Course Capacity Enrolled Places left
    10 Coding 3 3 0
    20 Coding 2 1 1
    30 Art 2 1 1
    40 Music 3 0 3

    The browser calculates places left as capacity minus enrolled. There are five enrolments but only four students. Mei appears in two enrolment rows. Do not label five as the number of unique students.

    To keep classes with at least two enrolments, add this line after GROUP BY:

    HAVING COUNT(e.student_id) >= 2
    

    This is a query fragment, added to the complete query. It returns course 10 only. HAVING checks each group total. WHERE checks individual rows before totals are calculated. For example, WHERE c.id = 20 selects one class before grouping; it does not test its total.

    Validate and bind the backend input

    The route /api/courses accepts a minimum from 0 to 99. The browser number control helps users enter it. Direct requests can skip that control. The server therefore checks the input again.

    It rejects negative numbers, decimals, 100, repeated minimum parameters and text. Missing min means zero. A successful query with no courses is still a valid request.

    Request Status Meaning
    GET /api/courses?min=2 200 One course found
    GET /api/courses?min=4 200 Valid query; empty list
    GET /api/courses?min=-1 400 Invalid input
    GET /missing 404 Route does not exist
    POST /api/courses 405 This read-only route accepts GET

    A prepared statement 预编译语句 keeps the SQL structure separate from a value. The server prepares its total-by-course query with >= ?, then calls courses.all(minimum). The bound number fills the value position. It is not joined into the SQL text.

    Binding values protects this query from injection through that value. It does not prove that every route or operation is secure. SQL keywords and column names cannot be supplied as ordinary bound values. Keep the query structure fixed or choose it from permitted server-owned choices.

    The server sends public course totals only. Student names stay out of this response. Real records would also need access rules and permission to use them. An invented example needs no real student information.

    Handle loading, empty results and failures

    The browser uses fetch to request the data. It must check the response status. A completed network request may still return 400 or 500. The browser's response.ok distinguishes successful HTTP responses from those errors.

    The page clears old rows before loading. Otherwise a failed request could leave old results looking current. It displays a loading message and disables the load button during the request. It then shows the result, an empty message, or a failure message. The button becomes available again so the reader can retry.

    Each displayed value goes into textContent, not into HTML built from a data string. A course title becomes text inside a cell. It is not treated as page markup.

    The sample uses a request number to ignore an older response after a newer request starts. This protects the page from a late response replacing the newest result. It does not change database records or make bookings safe.

    Try minimum 0, 2 and 4 in that order. Expect four courses, one course and no courses. Then stop the server and try loading again. The page should explain the failure and allow a retry. Restart the server and load again. The original fictional dataset should return.

    Turn results into a supported academic decision

    Begin with a question: which classes currently have spare places? State your unit of analysis 分析单位: one class, identified by course ID. Check missing values, repeated enrolment pairs, valid IDs and non-negative capacities before analysis. Name the data date in a real report, because enrolments can change.

    The current answer is Coding 20, Art 30 and Music 40. Music has three spare places; the other two have one each. A teacher could first check whether those places are still available before announcing them.

    A bar chart could compare enrolled and capacity for each course ID. Keep the two Coding classes separate and label them with their IDs. Show zero enrolments for Music. Do not hide it because its bar is short.

    Explain the limitation 局限 of this decision. These records describe four invented classes at one time. They do not measure teaching quality, future demand or why students chose a class. More enrolments do not prove that a class caused better learning. Avoid using a descriptive count as evidence for a causal claim.

    A short report can use five parts: question, data and checks, method, result, limits and next action. Include the query or name the calculation so another reader can reproduce the result. Keep student and enrolment counts separate.

    Practise with changes and explain your answers

    1. Sketch the three tables. Which keys link them, and why is the third table needed?
    2. Predict minimum 1 and minimum 3 before running either request.
    3. Replace COUNT(e.student_id) with COUNT(*). Which original result becomes wrong, and why?
    4. Group only by title. What happens to the two Coding classes?
    5. Add course 50, Drama, with capacity 2 and no enrolments. Predict its total and free places.
    6. Add enrolment (2,20). What should minimum 2 now return?
    7. Try duplicate pair (1,10) and missing student pair (99,10). Explain each rejection.
    8. Why must the server check a minimum that the browser already checks?
    9. Explain why an empty array gets 200, while a negative minimum gets 400.
    10. Write a two-sentence recommendation and one limitation using the original data.

    Explained answers

    1. Student ID and course ID link the paired enrolment table to their parent tables. The third table represents many students in many classes without repeating names or course facts.
    2. Minimum 1 returns 10, 20 and 30. Minimum 3 returns 10 only. Both filters include equality.
    3. Music becomes one instead of zero. COUNT(*) counts the preserved unmatched course row.
    4. Coding totals combine to four. This describes a title group, not either individual class.
    5. Drama has zero enrolments and two places left. A left join keeps it at minimum 0.
    6. Coding 20 now has two enrolments. Minimum 2 returns IDs 10 and 20, with totals three and two.
    7. The paired primary key rejects the duplicate. The enabled foreign key rejects student 99, who does not exist.
    8. A caller can send a request without using the page. Browser checks cannot protect the server by themselves.
    9. No matching rows is a successful query. A negative minimum breaks the API's input rule.
    10. Check remaining places in Coding 20, Art 30 and Music 40 before offering them. Music has most spare places in this example. Invented totals cannot predict actual student demand.

เข้าสู่ระบบหรือสร้างบัญชี

IGCSE, A-Level & AP