text processing แบบ csv ในภาษา perl

ตัวอย่างผลแบบ csv
ตัวอย่างผลแบบ csv

มีโอกาสรื้อโค้ดภาษา perl อ่าน course กับ regist
ซึ่งจัดเก็บแบบ csv โดยส่งรหัสนักศึกษา ปี และภาค ไปถาม
แล้วตอบกลับเป็นรายวิชาที่ลงทะเบียน
ทำให้รู้ว่าลงวิชาอะไรไปบ้างในแต่ละภาคเรียน
เป็นเพียงช่วงหนึ่งของ code หลักที่ใช้ทำ transcript
แต่มีเพื่อนต้องการข้อมูลเพียงเท่านี้ไปประมวลผลต่อ
จึงตัด code ออกมาให้เหลือข้อมูลเท่านี้
มีตัวอย่าง code ดังนี้
#!/usr/bin/perl
# ?idstd=1234&yr=2012&sem=1
&parse;
print “Content-type:text/html\n\n”;
open(FILE,”course.txt”); @rec=<FILE>; close(FILE);
foreach $r(@rec) {
@d = split(“,”,$r);
$dd = join ‘,’,$d[2],$d[3],$d[4]; #code, subject name, credit
$scode{$d[0]} = $dd;
}
# ==================
$file = join ”,”regist”, $config{‘yr’} , $config{‘sem’} ,”.txt”;
open(FILE,”$file”); @rec=<FILE>; close(FILE);
foreach $r(@rec) {
@r = split(“\n”,$r);
@d = split(“,”,$r[0]);
if ($config{‘idstd’} eq $d[2]) {  print  $d[1] . “,”.$scode{$d[2]}.”,<br/>”; }
}
# ==================
sub parse {
if ($ENV{‘REQUEST_METHOD’} eq ‘GET’) {
@pairs = split(/&/, $ENV{‘QUERY_STRING’});
} elsif ($ENV{‘REQUEST_METHOD’} eq ‘POST’) {
read(STDIN, $buffer, $ENV{‘CONTENT_LENGTH’});
@pairs = split(/&/, $buffer);
}
foreach $pair (@pairs) {
local($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(“C”, hex($1))/eg;
$name =~ s/~!/~!/g;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(“C”, hex($1))/eg;
$value =~ s/~!/~!/g;
$value =~ s/<!–(.|\n)*–>//g;
$config{$name} = $value;
}
}

คำอธิบายรายวิชา กลุ่มวิชาคณิตศาสตร์และวิทยาศาสตร์

TECH 100 สื่อและเทคโนโลยี (Media and Technology) 2(1-2-4)
ศึกษาแนวคิดพื้นฐานของเทคโนโลยีและสื่อรูปแบบใหม่ ระบบคอมพิวเตอร์ ระบบเครือข่าย การสืบค้นข้อมูล เครือข่ายสังคม โปรแกรมประยุกต์สำนักงาน การผลิตสื่อมัลติมีเดีย ความปลอดภัย คุณธรรม จริยธรรมของผู้ใช้คอมพิวเตอร์

MATH 100 กิจกรรมประจำวันกับตรรกเชิงคณิตศาสตร์ (Mathematical Logic in daily Activity) 2(2-0-4)
ศึกษาระบบจำนวนจริง แบบจำลองทางคณิตศาสตร์และการแก้ปัญหา การคำนวณกับกิจกรรมประจำวัน ตรรกศาสตร์และการประยุกต์ใช้ ข้อมูล และการวิเคราะห์ข้อมูลเบื้องต้นเพื่อการตัดสินใจ

SCIE 100 สิ่งแวดล้อมกับชีวิต (Environment and Life) 2(2-0-4)
ศึกษาวิทยาศาสตร์สิ่งแวดล้อม การเปลี่ยนแปลงของสิ่งแวดล้อม ที่มีผลกระทบต่อชีวิตประจำวัน และการประยุกต์ใช้ในการพัฒนาคุณภาพชีวิตระดับบุคคล ท้องถิ่นและสากล

topic
– fundamental of technology
– new media
– computer system
– network system
– searching
– social network
– social media
*
– office application
– multimedia creating
– security
– Moral and Ethics

ซะป๊ะกับคำอธิบายรายวิชา

course description
course description

11 ก.ย.54 มีอะไรเกี่ยวพันกันไปหมดกับคำว่า คำอธิบายรายวิชา มีขั้นตอนที่ทำให้เกิดการเกี่ยวพันกันดังนี้
1. เริ่มต้นด้วยการ download แฟ้ม .doc ที่บีบอัดไว้
จาก http://www.thaiall.com/tqf/tqf2_cs_kmutt.zip
ซึ่งเป็นร่าง มคอ.2 สาขาวิทยาการคอมพิวเตอร์ ที่ยกร่างโดย มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรี
2. นำมาตัดให้เหลือ ข้อมูลเฉพาะคำอธิบายรายวิชา และเป็นวิชาทางสาขาที่ขึ้นต้นด้วย CSC โดยมีรูปแบบวิชาละ 7 บรรทัด ประกอบด้วย 1) รหัสวิชา 2) ชื่อภาษาไทย 3) ชื่อภาษาอังกฤษ 4)หน่วยกิต 5)อธิบายภาษาไทย 6)อธิบายภาษาอังกฤษ 7)บรรทัดว่าง
อยู่ใน http://www.thaiall.com/tqf/tqf2_cs_kmutt.txt
3. เขียน code อ่านแฟ้ม .txt ไปแสดงผลในตาราง และใส่สี ตามแบบที่ต้องการ
http://www.thaiall.com/tqf/tqf2_cs_kmutt.php
ในโปรแกรม tqf2_cs_kmutt.php ออกแบบให้ถูกดูดแล้วแก้ไขแบบออนไลน์ได้ง่าย
4. เขียน code อ่านแฟ้ม .php ไปแสดงผลร่วมกับ template ที่เตรียมไว้
http://www.thaiall.com/computer/cskmutt.php
จะดูด tqf2_cs_kmutt.php มาปรับรูปแบบเพิ่มเติม เพื่อส่งเข้า template คือ index.php
5. ใช้ .htaccess และ redirect.php แก้ปัญหาการส่งข้อมูลแบบ get ให้รองรับการส่งข้อมูลด้วย /
ทำให้ผลของ /xxx กับ /file=xxx มีผลเหมือนกัน

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /computer/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /computer/redirect.php [L]
</IfModule>

<?
$r = split(“/”,$_SERVER[“REQUEST_URI”]);
$ar = file(“http://www.thaiall.com/computer/?file=”. $r[2]);
foreach($ar as $v) echo $v;
?>

http://www.thaiall.com/computer/?file=cskmutt
http://www.thaiall.com/computer/cskmutt

10 วิชาที่น่าสนใจเกี่ยวกับวิทยาการคอมพิวเตอร์

CPSC 103  ตรรกะดิจิทัล  3(3-0-6)
(Digital Logic)
ระบบจำนวนและรหัสคอมพิวเตอร์ พีชคณิตบูลีน การวิเคราะห์และการสังเคราะห์ตรรกะคอมบิเนชันนัล ฟังก์ชันสวิทชิง รูปแบบคาโนนิคัล แผนที่คาร์นอฟ เทคนิคการลดรูป วงจรแนนและวงจรนอร์หลายระดับ และภัยในวงจร การวิเคราะห์และสังเคราะห์ตรรกะ ซีเควนเชียล การนำฟลิปฟล็อปมาสร้างตรรกะ ตัวแปรสถานะ แผนภาพแสดง การเปลี่ยนสถานะ ตารางแสดงสถานะ การลดจำนวนสถานะ เทคนิคการกำหนดสถานะ และสภาวะการแข่งขัน
Number systems and computer codes, Boolean algebra, analysis and synthesis of combinational logic, switching function, canonical forms, Karnaugh map, minimization techniques, multilevel NAND and NOR circuits and hazards, analysis and synthesis of sequential logic, logic implementation with flip flop, state variables, state transition diagram, state table, minimization of states, state assignment techniques, and race conditions.

CPSC 201    สถาปัตยกรรมและองค์ประกอบคอมพิวเตอร์  3 (3 – 0 – 6)
(Computer Architecture and Organization)
ระบบคอมพิวเตอร์ หน่วยประมวลผล หน่วยความจำ มอดูลรับเข้า/ส่งออก การเชื่อมต่อองค์ประกอบดังกล่าว หน่วยประมวลผลกลาง หน่วยควบคุม เรจิสเตอร์ หน่วยคำนวณทางคณิตศาสตร์และตรรกะ หน่วยคำสั่งและการเชื่อมต่อของหน่วยดังกล่าว สถาปัตยกรรม การออกแบบชุดคำสั่งและชนิดข้อมูล หัวข้อการจัดระบบ การทำไปป์ไลน์ การจัดระบบคอมพิวเตอร์แบบขนาน การจัดระบบหน่วยประมวลผลหลายชุด และการประมวลผลเชิงเวกเตอร์
Computer system, processor, memory and Input/Output modules, interconnections among these major components, central processing unit, control unit, registers, arithmetic and logic unit, instruction unit and interconnections among these components, architectural issues, instruction-set design and data types, organizational issues, pipelining, parallel organization, multiple processors and vector processing organizations.

CPSC 317     ระบบปฏิบัติการ 3 (3 – 0 – 6)

(Operating Systems)
สถาปัตยกรรม เป้าหมายและโครงสร้างของระบบปฏิบัติการ การจัดการการประมวลผล การกำหนดการการประมวลผล ความร่วมมือและการประสานเวลาของการประมวลผล สภาวะติดตาย สาเหตุ เงื่อนไข การป้องกัน การจัดการหน่วยความจำ หน่วยความจำกายภาพ หน่วยความจำเสมือน การจัดการหน่วยเก็บรอง จานบันทึก หน่วยเก็บขั้นสาม หน่วยรับเข้า/ส่งออก แฟ้มข้อมูล สารบบ ระบบปฏิบัติการแบบกระจายเบื้องต้น
Architecture, goals, and structure of operating system, process management, processes scheduling, process coordination and synchronization, deadlock, causes, conditions, prevention, memory management, physical memory, virtual memory, secondary storage management, disk, tertiary storage, Input/Output (I/O), file, directory, introduction to distributed operating systems.

CPSC 319    การพัฒนาซอฟต์แวร์เชิงอ็อบเจกต์ 3 (2 – 2 – 6)
(Object-Oriented Software Development)
การเขียนโปรแกรมเชิงอ็อบเจกต์ คลาส อ็อบเจกต์ ชนิดข้อมูลนามธรรม การรับคุณสมบัติถ่ายทอด การห่อหุ้ม ภาวะพหุสัณฐาน และการนำของเดิมมาใช้ใหม่ กระบวนทัศน์การพัฒนาซอฟต์แวร์เชิงอ็อบเจกต์ การวิเคราะห์ ออกแบบและประยุกต์ใช้ระบบงานเชิงอ็อบเจกต์
Object-oriented programming, classes, objects, abstract data types, inheritance, encapsulation, polymorphism and reuse, object-oriented software development paradigm, analysis, design and applications of object-oriented systems.

CPSC 334    ปฏิสัมพันธ์ระหว่างมนุษย์กับคอมพิวเตอร์ 3 (3 – 0 – 6)
(Human-Computer Interaction)
พฤติกรรมมนุษย์ กระบวนวิธีการบันทึกและแปลพฤติกรรมมนุษย์ การวิเคราะห์ การทำงาน เทคนิคการสังเกต การออกแบบสอบถาม เทคนิคการวิเคราะห์และการโมเดลงาน วิธีแสดงส่วนปฏิสัมพันธ์และเครื่องมือสร้างต้นแบบ ขั้นตอนการเรียนรู้ การศึกษาการใช้งานและการวิเคราะห์โพรโทคอลการใช้คำ ปฏิสัมพันธ์ระหว่างมนุษย์กับคอมพิวเตอร์  แนวทางการทดลองทำจริง การเรียนรู้ของมนุษย์ การทำนายและการเลียนแบบปฏิสัมพันธ์ระหว่างมนุษย์กับมนุษย์และกรณีศึกษา
Human behavior, methodologies for obtaining and interpreting human behavior: work activity analysis, observation techniques, questionnaire, task analysis and modeling techniques, methods for interface representation and prototyping tools, cognitive walkthroughs, usability studies and verbal protocol analysis, the four approaches to human-computer interaction, empirical, cognitive, predictive, and anthropomorphic and case studies.

CPSC 350    การโปรแกรมแบบลูกข่าย-แม่ข่าย 3 (2 – 2 – 6)
(Client-Server Programming)
โมเดลและการโปรแกรมการสื่อสารแบบลูกข่าย-แม่ข่าย การออกแบบซอฟต์แวร์ การประมวลผลพร้อมกัน การเชื่อมต่อโปรแกรมประยุกต์กับโพรโทคอล ซ็อกเก็ตเอพีไอ ขั้นตอนวิธีดำเนินงานที่ฝั่งลูกข่ายและประเด็นที่เกี่ยวข้อง ขั้นตอนวิธีดำเนินงานที่ฝั่งแม่ข่ายและประเด็นที่เกี่ยวข้อง แม่ข่ายแบบไม่กำหนดการเชื่อมต่อ และแม่ข่ายแบบกำหนดการเชื่อมต่อ
Client-server communication model and programming, software design, concurrent processing, application interface to protocols, socket Application Protocol Interface (API), client side algorithms and issues, server side algorithms and issues, connectionless servers, and connection-oriented servers.

CPSC 351    เทคโนโลยีการเชื่อมต่อเครือข่าย 3 ( 3 – 0 – 6 )
(Internetworking Technology)
ที่อยู่ไอพี โพรโทคอลอินเทอร์เน็ต ไอพี อาร์พ อาร์อาร์พ ไอซีเอ็มพี ไอจีเอ็มพี แนวคิดของการจัดเส้นทาง การจัดเส้นทางแบบคงที่ การจัดเส้นทางแบบพลวัต ริพ โอเอสพีเอฟ บีจีพี การส่งข้อมูลจากโพรเซสถึงโพรเซส พีพีพี การควบคุมความแออัดในเครือข่าย คิวโอเอส ดีเอ็นเอส ไอเอสดีเอ็น เอซีแอล ดีดีอาร์กับไอเอสดีเอ็น แนท ดีเอชซีพี การส่งสื่อประสม การจัดการเครือข่าย และเอสเอ็นเอ็มพี
Internet Protocol (IP) Addressing, Internet Protocols: IP, ARP/RARP, ICMP, IGMP; routing concepts, static routing, dynamic routing: RIP, OSPF, BGP; Process-to-Process Delivery, PPP, Congestion control, QoS, DNS, ISDN, ACL, DDR with ISDN, NAT, DHCP, Multimedia transmission, Network Management, and SNMP.

CPSC 381    การค้นคืนสารสนเทศ 3 (3 – 0 – 6)
(Information Retrieval)
การค้นคืนข้อความ ธรรมชาติของสารสนเทศ การแทนและโครงสร้างสารสนเทศ การค้นคืนข้อความหรือการค้นคืนสารสนเทศอย่างเต็มทั้งแบบมีข้อกำหนด และไม่มีข้อกำหนด องค์ประกอบของระบบค้นคืนสารสนเทศ ปัญหาในการค้นคืนข้อความอย่างเต็ม โพลีกามี ซีโนนีมี ไฮเปอร์นีมี ไฮโปนีมี ข้อคำถามเชิงข้อความ ส่วนต่อประสานกับผู้ใช้ของระบบค้นคืนสารสนเทศ วิธีการค้นคืนข้อความ วิธีเชิงอินเด็กซ์ วิธีจับคู่สตริงอย่างง่าย ขั้นตอนวิธีเคเอ็มพี การประมาณการการจับคู่ ต้นไม้แบบแพ็ต การวิเคราะห์การจัดกลุ่ม พื้นที่เวกเตอร์ การทำอินเด็กซ์เชิงความหมายแฝง การประมวลผลภาษาธรรมชาติ เครือข่ายใยประสาทเทียม และเครื่องช่วยการค้นคืนข้อความ
Text-retrieval, nature of information, representation and structure of information, restricted and un-restricted text/full-text retrieval, information retrieval systems components, problems in full-text search: polygamy, synonymy, hypernymy, hyponymy, textbase queries, user interfaces to information retrieval systems, text retrieval approaches, simple index-based, na?ve string matching, KMP algorithms, approximate matching, PAT trees, cluster analysis, vector space, latent semantic indexing, natural langrage processing, artificial neural network and text-retrieval machine.

CPSC 401    ภาษาโปรแกรมทางเลือก 3 (2 – 2 – 6)
(Selected Programming Language)
การศึกษาภาษาโปรแกรมอย่างลึกซึ้งหนึ่งภาษาหรือมากกว่าที่เป็นกรณีศึกษา ภาษาที่เปิดสอนอาจเปลี่ยนแปลงได้ในแต่ละภาคการศึกษา และจะมีการแจ้งให้นักศึกษาทราบล่วงหน้า วัตถุประสงค์ของรายวิชานี้คือเพื่อให้นักศึกษาได้รู้จักภาษาโปรแกรมเพิ่มเติม
A comprehensive study of one or more selected programming languages. Selected languages may vary from semester to semester and will be announced before the starting of each semester. The objective is to introduce students to alternative programming languages.

CPSC 452     การจัดการเครือข่าย 3 (3 – 0 – 6)
(Network Management)
หน้าที่ของการจัดการเครือข่าย โมเดลการจัดการเครือข่าย มาตรฐานการจัดการเครือข่าย เครือข่ายการจัดการโทรคมนาคม(ทีเอ็มเอ็น) โพรโทคอลจัดการเครือข่ายอย่างง่าย (เอ็สเอ็นเอ็มพี) การเฝ้าระวังระยะไกล(อาร์มอน) โพรโทคอลสารสนเทศร่วมเพื่อการจัดการ(ซีเอ็มไอพี) และ ฐานสารสนเทศเพื่อการจัดการ (เอ็มไอบี) และเครื่องมือและเทคนิคในการจัดการเครือข่าย
Network management functions, network management model, network management standards, Telecommunications Management Network (TMN), Simple Network Management Protocol (SNMP), Remote Monitoring (RMON), Common Management Information Protocol (CMIP), and Management Information Base (MIB), and tools and techniques for network management.

COMP 100 ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์ 2 (2 – 0 – 4)
(Introduction to Computer)
ศึกษาประวัติความเป็นมาของเครื่องคอมพิวเตอร์ อินเทอร์เน็ต ฮาร์ดแวร์ ซอฟท์แวร์ ระบบปฏิบัติการ และโปรแกรมประยุกต์
Study of computer history, internet, hardware, software, operating system and application program
TECH 101 สื่อและเทคโนโลยีในชีวิตประจำวัน 2 ( 1 – 2 – 4 )
(Media and Technology in Daily Life)
ศึกษาการใช้เทคโนโลยีและสื่อรูปแบบใหม่ ระบบคอมพิวเตอร์ ระบบเครือข่าย การใช้ห้องสมุดและการสืบค้นข้อมูล เครือข่ายสังคม โปรแกรมประยุกต์สำนักงาน ความปลอดภัย คุณธรรม จริยธรรมของผู้ใช้คอมพิวเตอร์
Study of technology and new media using, computer system, network system, library and data searching, social network, office application, security, moral and ethics of computer users
COMP 300 คอมพิวเตอร์เพื่อการทำงาน 2 (1 – 2 – 4)
(Computer for Working)
ศึกษาการประยุกต์ใช้คอมพิวเตอร์เพื่อการทำงาน การใช้โปรแกรมประมวลผลคำ การใช้โปรแกรมสเปรตชีท การใช้โปรแกรมนำเสนองาน และการใช้งานบล็อก
Study of computer for working, word processing program, spread sheet program, presentation program and blog using
CPSC 104    กฎเกณฑ์และความหมายของภาษาโปรแกรม 3 (3 – 0 – 6)
(Syntax and Semantics of Programming Languages)
บททบทวนกฎไวยากรณ์ ภาษากับกฎเกณฑ์และความหมาย การตัดคำและความคลุมเครือ รูปปกติแบบบาร์คัส (บีเอ็นเอฟ) ไวยากรณ์ของสถานะจำกัดและตัวรู้จำ การสแกนคำ การสร้างตารางรหัส ภาษาไร้บริบท พุชดาวน์ออโตมาตา เทคนิคการตัดคำแบบไร้บริบท คำสั่งวนซ้ำ การแปลความก่อนหลังและการแปลความจากซ้ายไปขวาแบบง่าย (เอสแอลอาร์) และการแปลกฎเกณฑ์แบบตรง
Review of grammars, languages and their syntax and semantics, parsing and ambiguity, Backus Normal Form (BNF), finite state grammars and recognizers, lexical scanners, implementation of symbol tables, context-free languages, push-down automata, context-free parsing techniques, recursive descent, precedence and Simple Left to Right (SLR) translation, and syntax directed translation schemes.

http://www.thaiall.com/tqf

http://www.thaiall.com/tqf/cpsc/2555_curr_cpsc_10subj.doc

ผลการวิพากษ์เค้าโครงรายวิชา

8 มิ.ย.54 ผลการวิพากษ์เค้าโครงรายวิชา (Syllabus Defending) ระดับกลุ่มสาขาวันนี้ได้ข้อสรุปว่า ต่อไปหัวข้อในการประเมินผลการเรียน ไม่ควรแตกต่าง และมีความเป็นมาตรฐานตรงกันทุกวิชา จึงทำข้อตกลงเสนอเป็นหัวข้อให้พิจารณาจัดทำในรายวิชาของตน มีลำดับและชื่อหัวข้อดังนี้
1. การเข้าชั้นเรียน
2. ความรับผิดชอบ
3. งานที่มอบหมาย
4. ฝึกปฏิบัติการ
5. โครงงาน
6. สอบย่อย
7. สอบกลางภาค
8. สอบปลายภาค

ส่วนหัวข้อใหญ่ในเค้าโครงรายวิชามีดังนี้
1. ชื่อวิชา ชื่อผู้สอน ตามรูปแบบ
2. วิชาบังคับก่อน
3. คำอธิบายรายวิชา
4. จุดประสงค์รายวิชา
5. รายละเอียดการเรียนการสอน
6. การประเมินผลการเรียน
7. เกณฑ์ประเมินผลการเรียน
8. หนังสือบังคับอ่าน
9. หนังสือประกอบการเรียน
10. เว็บไซต์ที่แนะนำ