Courses in the Information Engineering Area
Total Page:16
File Type:pdf, Size:1020Kb
Courses in the Information Engineering Area (Fifth draft, 16 March 2000) Notes May include more courses on network-centric computing, e.g. electronic commerce. Descriptions the Introduction to Computer and Information Engineering Course and the Information Engineering I Course are not ready yet. The titles of these courses may be changed, depending on the discussion with other groups: Image Processing, Computer Graphics, and Artificial Intelligence. The description of the Introduction to Computer Programming should be included. There are currently two descriptions of the Legal, Ethical, and Professional Issues (LEP) course, contributed by Aj. Pichaya and Aj. Andrew. We should later discuss and merge the two versions together. In the last meeting, the Software and Systems Engineering course and the Database course were combined into one. I am quite worry about the lack of time to provide the students with enough knowledge in these important areas.
-- Noppadon Secretary for the Information Engineering Area
1 Common Courses Mathematics for Computer Engineering (MCE) Legal, Ethical, and Professional Issues (LEP) Core Courses (associated with the area) Introduction to Computer and Information Engineering (ICI) Computer Programming Techniques (CPT) Software Engineering and Database Systems (SEDB) Area Courses (4 courses; 12 credits) Information Engineering I (IIE) Advanced Programming Techniques (APT) Client/Server Distributed Systems (Cli/Serv) Introduction to Artificial Intelligence (AI)
Dependency Between Courses
A B Intro Com Prog denotes “A is a prerequisite for B”
CPT ICI
DSS APT IE 1
SSE Cli/Serv AI
Info Eng Area Courses
2 Typical Student Schedule Freshman Year First Semester Second Semester 240-120 Introduction to Computer Programming 3 226-101 Basic Manufacturing Process I 2 216-111 Engineering Drawing I 2 220-102 Engineering Mechanics I 3 322-101 Basic Mathematics I 4 332-102 Basic Mathematics II 4 324-103 General Chemistry I 4 325-103 General Chemistry Lab. 1 332-103 General Physics I 3 332-104 General Physics II 3 332-113 General Physics I Lab. 1 332-114 General Physics II Lab. 1 334-101 Foundation English I 3 334-102 Foundation English II 3 223-253 Introduction to Environmental 1 Engineering Total 20 Total 18 Sophomore Year First Semester Second Semester 240-201 Computer Engineering Lab. I 2 240-202 Computer Engineering Lab. II 2 322-201 Advanced Mathematics I 4 322-202 Advanced Mathematics II 4 210-202 Basic Electrical Engineering Lab. 1 240-207 Microprocessor Architecture and the 3 Assembly Language 240-203 Basic Circuits 2 240-208 Database and Software Systems 3 240-204 Basic Electronics 2 240-209 Operating Systems 3 240-205 Digital Systems and Logic Design 3 240-210 Introduction to Computer Networks 3 240-206 Computer Programming Techniques 3 Humanities/Social Sciences Elective 3 235-230 Engineering Materials 3 Total 20 Total 21 Third Semester, Sophomore 240-200 Practical Training I No Credits Junior Year First Semester Second Semester 240-301 Computer Engineering Lab. III 2 240-302 Computer Engineering Lab. IV 2 240-304 Software and Systems Engineering 3 240-303 Computer Engineering Seminar 1 Mathematics for Computer Engineering 3 240-305 Fundamentals of Computer Architecture 3 * Information Engineering I 3 225-280 Statistics 3 * Advanced Programming Techniques (APT) 3 * Client/Server Distributed Systems (Cli/Serv) 3 * Prof. Elect. I 3 * Prof. Elect. II 3 Free Elective 3 Advanced English (emphasize writing skill) 3 Social, Ethical, and Professional Issues 1 Total 20 Total 19 Junior/Senior Year Third Semester/Junior First Semester/Senior 240-401 Computer Engineering Lab. V 1 240-402 Computer Engineering Lab. VI 1 240-403 Computer Engineering Project I 2 240-404 Computer Engineering Project II 4 Humanities/Social Sciences Elective 3 225-345 Engineering Economy 3 * Introduction to Artificial Intelligence (AI) 3
Total 6 Total 11 Second Semester, Senior 240-300 Practical Training II No Credits Total 135 Credits
* Note: The Information Engineering courses are in blue italic font.
3 Area Elective Courses Students may choose their professional electives from the following courses in Information Engineering or courses in other areas.
Advanced Data Structures and Algorithms (Aj. Andrew) Advanced Database Systems (ACM) Advanced Software Engineering (ACM) Advanced UNIX [AUX] (Aj. Andrew) * Computer Graphics (ACM) Computer Security (ACM) Decision Support Systems (AIT) Human-Computer Interaction (AIT) * Image Processing (Aj. Somchai) Information Systems Analysis and Design (AIT) Object-oriented Analysis and Design (Booch’s text) Parallel and Distributed Computing (ACM) Programming Languages and Paradigms (Aj. Andrew) Principles of Concurrent Computation (Aj. Andrew) Symbolic Computation (ACM) Theory of Computation (ACM)
Text in parentheses state the source of the course description. A star (*) denotes that the course was or is currently offered by the department. This is only an example of possible elective courses. A course may or maynot be offered by the department, depending on the faculty and resources. Courses with highlighted names means that its course description is not finished yet.
4 Common Courses Mathematics for Computer Engineering (MCE) คณณิตศาสตรร์สสาหรรับวณิศวกรรมคอมพณิวเตอรร์ /* Aj. Andrew */ Prerequisites: Computer Programming Techniques Topics: Mathematical induction, loop invariants, recursive programs. Big-Oh analysis, running time, recurrence relations. Graph algorithms and graph theory. Automata and regular expressions. Context free grammars. Propositional logic. Predicate logic.
การออุปนนัยเชชิงคณชิตศาสตรร์ ลลูปอชินวาเรรียนทร์ โปรแกรมเรรียกตนเอง การวชิเคราะหร์บชิบกโอ เวลาในการททางานของโปรแกรม ความสนัมพนันธร์เวรียนบนังเกชิด กระบวนวชิธรี กราฟและทฤษฏรีกราฟ ออโตเมตาและเรกลูลารร์เอกซร์เพรสชนัน ไวยากรณร์ไมมพพพึ่งบรชิบท ตรรกศาสตรร์โพรโพซณิชรันแนล ตรรกศาสตรร์เพรดชิเคต Required Texts: Discrete Mathematics for Computer Scientists J. K. Truss, Mark Allen Weiss Addison-Wesley, 2nd edition (January 1999) Concrete Mathematics : A Foundation for Computer Science Ronald Graham, Oren Patashnik, Donald Ervin Knuth Addison-Wesley, 2nd edition (March 1994) Notes: This type of course can be used to introduce mathematics required in later material. If anyone has particular requirements then perhaps they could be added here.
5 Legal, Ethical, and Professional Issues (LEP) ประเดด็นทางกฎหมาย, ศศีลธรรม และวณิชาชศีพ /* Aj. Pichaya */
Prerequisites: none Aims and Objectives: The aims of this course are to give the student an informed awareness of the principal issues of rights and laws, professional ethics and responsibility in the design, implementation and use of computer and information systems, to help the students recognize legal and ethical problems when they occur, and to enable the students to deal effectively with legal, ethical and professional issues. Laboratories: none Topics: (Course description) Ethical decision making in Information Technology and its problems; Professionals and Professional Behaviour; Professional Codes of Practice; Computer Security; Computer Misuse and the Law; Intellectual Property Rights and the Law; Formal Guidelines; Right and Duties and Their Relationship to Ethical Behaviour; Solving Problems Step-By-Step by discussion and presentation of case studies, Analyzing and classing the Situation, Making a Defensible Legal and Ethical Decision, Describing Steps to Resolve the Current Situation, and Preparing Policies and Strategies to Prevent Recurrence; Seminars by experts.
Reading List: 1. Dejoie, R. et al., Ethical Issues in Information Systems. (ISBN 0-878-355-626), Boyd & Fraser 1991 2. Bott F et al, Professional Issues in Software Engineering, 2nd Edition(ISBN 1-857- 284-50X), Pitman 1991, UCL 1995
How it works: Lectures, Seminars (by external experts), discussion, and Presentation Assessment: Seminar discussion, group presentation and final examination. Students will receive A through F. Examples of Case Studies: 1. a real problem faced in universities with respect to 'pornography' and electronic networks. 2. a real problem with software copyright 3. stories and case studies Course Methods: Oral discussion the steps involved in addressing the ethical and legal issues raised in the case study (analyze the situation, construct a defensible ethical decision, outline
6 steps to resolve the current situation, and prepare policies and strategies to prevent recurrence).
Presentation: analyze the using the tools and methods provided.
Notes: Adapted from CS107 Professional Issues in Computing and Information Technology, University of Manchester
Lecture schedule: 1. Introduction to the course. 2. Ethical decision making in Information Technology. What's the Problem? 3. A History of Information Technology. 4. Professionals and Professional Behaviour. 5. Professional Codes of Practice. 6. Computer Misuse and the Law. 7. Intellectual Property Rights and the Law: copyright, patent, right and privilege etc. 8. Formal Guidelines Do Not Necessarily Make for Ethical Decisions: Something Can Be Legal, But Not Ethical. 9. Right and Duties and Their Relationship to Ethical Behaviour. 10. Solving Ethical Problems Step-By-Step: An Introduction to a Case Study. 11. Discussion of Case Study: Analyzing the Situation. Class division. 12. Discussion of Case Study: Making a Defensible Ethical Decision. 13. Discussion of Case Study: Describing Steps to Resolve the Current Situation. 14. Discussion of Case Study: Preparing Policies and Strategies to Prevent Recurrence. 15. Conclusions and Final Assignment.
7 Ethical, Legal, and Social Issues in Computing (ELSIC)
ประเดด็นทางศศีลธรรม, กฎหมาย และสรังคมในสาขาคอมพณิวเตอรร์ /* Alternative proposal from Aj. Andrew (He wrote this proposal for AIT.) */ Prerequisites: none Objectives: To make the student aware of the social context of computing, where the conventions, rules, and policies concerning computers are created. Technological change is invariably driven by social, political, cultural, and economic forces. Computer ethics help us to analyse our reasons for adopting one policy over another. Different areas of computer science raise different ethical issues; some of the topics we shall consider include intellectual property, privacy, computer crime, trust, and computers and work. Topics: Computer Ethics. Software Intellectual Property. Privacy. Wire Tapping. Computer Crime. Hacking. Computer Risks. Computers and Work. Social Implications of Computers. Course Outline: I Introduction to Computer Ethics 1. Philosophical Ethics (e.g. utilitarianism, deontological theories) 2. Professional Ethics and codes of conduct (e.g. ACM, IEEE) II Property Rights in Computer Software 1. Intellectual Property Issues 2. Copyright Law 3. Software Copyright 4. Copyright in Cyberspace III Privacy and Information 1. Government and Consumer Files (e.g. credit bureaus, medical) 2. Technical, Management, Ethical, Legal Issues IV Wire Tapping and Encryption 5. Introduction to Cryptography 6. Technical Issues 7. Policy Issues (e.g. key-escrow) V Crime, Abuse, and Hacker Ethics 1. Fraud and Embezzlement 2. Sabotage and Theft 3. Types of Intruders
8 4. Computer Crime Laws 5. Digital Forgery VI Can We Trust Computers? 1. Reliability and Safety 2. Risk and Dependency 3. Evaluating Computer Models 4. Case Studies (e.g. climate models) VII Computers and Work 1. Impact on Employment 2. The Work Environment 3. Employee Monitoring 4. Health Issues VIIIResponsibility and Liability 1. Types of Responsibility 2. Honesty 3. Contractual Relationships IX Social Implications of Computers 8. Political Freedom 9. Neo-luddites 10. Controlling Technology 11. Computer Value Textbooks: A Gift of Fire: Social, Legal, and Ethical Issues in Computing Sara Baase, Prentice Hall, 1997 Computer Ethics Deborah G. Johnson, Prentice Hall, 2nd ed., 1994 References: Computers, Ethics, and Society M. David Ermann, Mary B.Williams, and Michele S. Shauf (eds.) OUP, 2nd ed., 1997 Computers, Ethics, and Social Values Deborah G. Johnson and Helen Nissenbaum (eds.) Prentice Hall, 1994 Right and Wrong: A Brief Guide to Understanding Ethics Thomas I. White, Prentice Hall, 1992
9 Ethics for Beginners David Robinson and Chris Garratt, Icon Books, 1996 The Cult of Information Theodore Roszak , Univ. of California Press, 2nd ed., 1994
Relevant Journals: Communications of the ACM; IEEE Computer; Computers and Society; The Computer Journal
10 Core Courses Computer Programming Techniques (CPT) เทคนณิคการโปรแกรมคอมพณิวเตอรร์ /* Aj. Andrew */ Prerequisites: Introduction to Computer Programming Topics: Introduction to UNIX. Review of programming basics: control flow, functions, character processing, arrays, user-defined type; testing and debugging. Pointers and applications. Abstract Data Types: lists, trees. Searching and Sorting algorithms and measuring complexity.
แนะนทายลูนชิกซร์ ทบทวนพพพนฐานการเขรียนโปรแกรม ไดด้แกม การไหลของการควบคอุม ฟนังกชนันร์ การประมวลผลตนัวอนักษร อาเรยร์ ชนชิดขด้อมลูลทรีพึ่ผลูด้ใชด้กาหนดท การ ทดสอบและแกไขขด้อผชิดพลาดด้ ตนัวชรีพและการประยอุกตร์ใชด้ ชนชิดขด้อมลูลนามธรรม ลชิสตร์และทรรี กระบวนวชิธรีการคด้นหาและการจนัดเรรียงขด้อมลูลและการวนัดความซนับ ซด้อนของกระบวนวชิธรี Required Texts: C: How to Program H.M. Deitel and P.J. Deitel Prentice Hall, 2nd edition (February 1994) A Practical Guide to the UNIX System Mark G. Sobell Bejamin/Cummings, 3rd edition, 1995 Notes: This course spends a lot of time going over the basics of C, but this is necessary. It is essential that students have good programming skills before they move on to later subjects. I would not try to add too much more to this course in case it reduces the teaching time for C programming
11 Software Engineering and Database Systems (SEDB) วณิศวกรรมซอฟตร์แวรร์และระบบฐานขข้อมมูล Prerequisites: Computer Programming Techniques Topics: Topics essential for the development of large software systems. A continued emphasis on problems solving concepts is integrated with a treatment of the software life cycle: requirements specifications, design specification, implementation, and verification and validation issues. Database concepts and technologies, concentrating on the relational database paradigms. The Relational Model: data types, data integrity, operators, SQL. Database Design: functional dependencies, normalization, E/R model. Data Protection: recovery, concurrency, security, integrity. Application of the theory (e.g. database normalisation) to the creation of a medium-size application in a commercial database programming system (MS Access or Oracle).
หนัวขด้อทรีพึ่จทาเปป็นสทาหรนับการพนัฒนาระบบซอฟตร์แวรร์ขนาดใหญม ศพกษาแนวทางการแกปนัญหาไปพรด้อมกด้ บวงจรชรีวชิตของซอฟตร์แวรร์นั ซพพึ่งไดด้แกม การระบอุรายละเอรียด ความตด้องการ, การระบอุรายละเอรียดการออกแบบ, การสรด้างและนทาระบบไปใชด้งานจรชิง, ประเดป็นทรีพึ่เกรีพึ่ยวขด้องกบการทดสอบและประเมชินผลซอฟตร์แวรร์นั
แนวคชิดและเทคโนโลยรีของฐานขด้อมลูลโดยเนด้นระบบฐานขด้อมลูลเชชิงสนัมพนันธร์ แบบจทาลองเชชิงสนัมพนันธร์ โดยศพกษาเกรีพึ่ยวกบชนชิดขด้อมลูลนั ความคงสภาพของขด้อมลูล ตนัว ดทาเนชินการ และภาษา SQL การออกแบบฐานขด้อมลูล โดยศพกษาหนัวขด้อของการขพพนตอกม นเชชิงการททางานนั การนอรร์มนัลไลซร์ และแบบจทาลองอรีอารร์ การปกปด้อง ขด้อมลูล ในหนัวขด้อการกลูขด้อมลูลด้ การททางานกบขด้อมลูลพรด้อมกนั นนั ความปลอดภนัย และความถลูกตด้อง การประยอุกตร์ใชด้ทฤษฏรี (เชมน การนอรร์มนัลไลซร์ฐานขด้อมลูล) เพพพึ่อสรด้าง โปรแกรมประยอุกตร์ขนาดกลางโดยใชด้ระบบฐานขด้อมลูลเชชิงพาณชิชยร์ (เชมน ไมโครซอฟตร์แอคเซส หรพอ ออราเคชิล) Textbooks: Software Engineering. Roger S. Pressman McGraw-Hill, 4th edition, 1997 Code Complete : A Practical Handbook of Software Construction. Steve C McConnell. 1993 Microsoft Press. An Introduction to Database Systems Chris J. Date Addison-Wesley, 6th edition, August 1994 Beginning Access 97 VBA Programming Robert Smith, David Sussman Wrox Press, September 1997
Additional Readings: The Mythical Man-Month : Essays on Software Engineering. Frederick P., Jr. Brooks. 1995. 2nd edition. Addison-Wesley.
12 Area Courses
There are four compulsory area courses.
Information Engineering I
วณิศวกรรมสารสนเทศ 1 /* To be proposed by Aj.Weerapant */
13 Advanced Programming Techniques (APT)
เทคนณิคการโปรแกรมชรัชนสมูง /* Dr. Andrew Davison */ Objectives: Java in context. Imperative features. Object oriented programming: classes, objects, inheritance, interfaces. GUI basics and the Event model: Swing, containers, components, layouts, AWT. Graphics. Exception handling. Threads. Multimedia (animation, sound). Files/streams.
ภาษา Java ในบรชิบท ความสามารถดด้านอชิมเพอเรทรีฟ การโปรแกรมเชชิงวนัตถอุซพพึ่งครอบคลอุมถพง คลาส วนัตถอุ การสพบทอด อชินเตอรร์เฟส พพพนฐานของ GUI และ รลูปแบบของอรีเวป็นตร์ ซพพึ่งครอบคลอุมถพง Swing, คอนเทนเนอรร์, คอมโพเนป็นทร์ เลยร์เอาทร์ และ AWT การเขรียนกราฟชิก การจนัดการกบขด้อผชิดพลาดนั เทรด สพพึ่อ ผสม (ภาพเคลพพึ่อนไหวและเสรียง) ไฟลร์และสตรรีม Required Texts: Java How to Program Harvey M. Deitel, Paul J. Deitel Prentice Hall, 3rd edition (July 1999) Core Java 2, Volume 1: Fundamentals Cay S. Horstmann, Gary Cornell Prentice Hall, 4th edition (January 1999) Notes: This type of course can be used to introduce Java features required in later material. If anyone has particular requirements then perhaps they could be added here.
14 Client/Server Distributed Systems (Cli/Serv)
ระบบแบบกระจายแมขม ายม /ลมูกขายม /* Dr. Andrew Davison */ Prerequisites: "Computer Programming Techniques", “Advanced Programming Techniques” 1. Client/Server and Distribution Architectures: client/server models (DCE, CORBA, DCOM), distribution models, server architectures, language constructs for parallelism, distributed programming. 2. UNIX Networking: processes, networking overview (ISO, TCP, UDP), sockets programming (iterative, concurrent), RPCs. 3. Java and CORBA: Java intro, Java network programming, advanced networking (RMI), Java and CORBA applications.
สถาปนัตยกรรมแมขม ายม /ลลูกขายและสถาปนัตยกรรมแบบกระจายม มรีหนัวขด้อยอยดนังนรีม พ แบบจทาลองแมขม ายม /ลลูกขายม (DCE, CORBA, DCOM) แบบจทาลอง การกระจาย สถาปนัตยกรรมแมขม ายม โครงสรด้างภาษาสทาหรนับการประมวลผลแบบขนาน การเขรียนโปรแกรมเชชิงกระจาย
การททางานดด้านเครพอขมายของ UNIX มรีหนัวขด้อยอยดนังนรีม พ โพรเซส ภาพโดยรวมของการททางานดด้านเครพอขายม (ISO, TCP, UDP) การเขรียนโปรแกรม ซอกเกตป็ (แบบททาซทพาและแบบพรด้อมกนนั ) RPC
ภาษา Java และ CORBA มรีหนัวขด้อยอยดนังนรีม พ แนะนทาภาษา Java การเขรียนโปรแกรมเครพอขายดด้วยม Java การททางานดด้านเครพอขมายขนัพนสลูง(RMI) การประยอุกตร์ใชด้ Java และ CORBA Required Texts: Client/Server Architectures Alex Bersen McGraw Hill, 2nd edition, 1996 UNIX Distributed Programming, Chris Brown Prentice Hall, 1994 Java How to Program Harvey M. Deitel, Paul J. Deitel Prentice Hall, 3rd edition (July 1999)
15 Introduction to Artificial Intelligence แนะนสาปรัญญาประดณิษฐร์ /* ACM/IEEE 1991, Russell’s text */
Prerequisites: Computer Programming Techniques, Advanced Programming Techniques
A selective survey of key concepts and applications of artificial intelligence, and an in-depth experience with a language commonly used for building AI systems (e.g., Lisp or Prolog). Software agents can be used as a unifying theme for applying AI techniques to build intelligent systems.
Subtopics include knowledge representation, propositional logic, state space/searching, heuristic search, expert systems, learning and cognitive models, natural language processing, evolutionary computing, and vision.
Students will implement, modify, or enhance several AI systems using a programming language and associated tools (e.g., expert system shells, knowledge acquisition tools).
การสสารวจแนวคณิดและการประยยุกตร์ใชข้ปรัญญาประดณิษฐร์ในดข้านหลรัก ๆ และใหข้นรักศศึกษามศีประสบการณร์กบภาษาทศีที่ใชข้เพพที่อสรข้างระบบปรัญญาประดณิษฐร์รั (เชมน ภาษา Lisp หรพอ Prolog) ซอฟตร์แวรร์เอเจด็นตร์สามารถใชข้เปด็นแกนรวมในการประยยุกตร์ใชข้เทคนณิคของปรัญญาประดณิษฐร์เพพที่อสรข้างระบบชาญฉลาด หรัวขข้อยอยรวมถศึงม การแทนความรมูข้ ตรรกศาสตรร์โพรโพซณิชรันแนล ขอบขายของสถานะและการคข้นหาสถานะม การคข้นหาโดยใชข้ฮณิวรณิสตณิก ระบบผมูข้ชสานาญการ แบบ จสาลองการเรศียนรมูข้และการรรับรมูข้ การประมวลผลภาษาธรรมชาตณิ การคสานวณเชณิงวณิวรัฒนาการ และการมองเหด็น
นรักศศึกษาจะสรข้าง แกไขข้ หรพอขยายความสามารถของระบบปรัญญาประดณิษฐร์หลายระบบ โดยใชข้ภาษาโปรแกรมและเครพที่องมพอประกอบ (เชมน เชลลร์ของระบบผมูข้ ชสานาญการ, เครพที่องมพอสรข้างฐานความรมูข้)
Required Text: Artificial Intelligence: A Modern Approach Stuart J. Russell, Peter Norvig Prentice-Hall, 1st edition (Febuary 1995) Recommended Text: Intelligent Java Applications for the Internet and Intranets Mark Watson Morgan Kaufmann, 1st edition (1997)
16 Area Electives Advanced Data Structures and Algorithms
โครงสรข้างขข้อมมูลและกระบวนวณิธศีขรัชนสมูง /* Dr. Andrew Davison */ Prerequisites: "Mathematics for Computer Engineering", "Computer Programming Techniques" Course Description To supply the student with a knowledge of algorithms and data structures which will be of practical value in advanced programming tasks that they undertake. The student will also learn how to select between algorithms and data structures by evaluating their features in a formal manner. Topics include 1. Fundamentals (Elementary Data Structures, Trees, Recursion, Analysis of Algorithms, Implementation of Algorithms); 2. Sorting Algorithms (Elementary Sorting Methods, Quicksort, Radix Sorting, Priority Queues, Mergesort, External Sorting); 3. Searching Algorithms (Elementary Searching Methods; Balanced Trees; Hashing; Radix Searching; External Searching); 4. String Processing (String Searching, Pattern Matching, Parsing, File Compression, Cryptology); 5. Geometric Algorithms (Elementary Geometric Methods, Finding the Convex Hull, Range Searching, Geometric Intersection, Closest-Point Problems) 6. Graph Algorithms (Elementary Graph Algorithms, Connectivity, Weighted Graphs, Directed Graphs, Network Flow, Matching); 7. Mathematical Algorithms (Random Numbers, Arithmetic, Gaussian Elimination, Curve Fitting, Integration) เพพที่อใหข้นรักศศึกษาไดข้เรศียนรมูข้เกศีที่ยวกบกระบวนวณิธศีและโครงสรข้างขข้อมมูลซศึที่งจะมศีประโยชนร์ในทางปฏณิบรัตณิในการเขศียนโปรแกรมระดรับสมูงรั ช นอกจากนรัน นรักศศึกษาจะไดข้ เรศียนรมูข้เกศีที่ยวกบการเลพอกใชข้กระบวนวณิธศีและโครงสรข้างขข้อมมูลโดยประเมณินคยุณสมบรัตณิของพวกมรันอยรั างเปด็นระบบม หรัวขข้อครอบคลยุมถศึง
1. พพชนฐาน (โครงสรข้างขข้อมมูลพพชนฐาน, ทรศี, การเรศียกตนเอง, การวณิเคราะหร์กระบวนวณิธศี, การสรข้างกระบวนวณิธศี)
2. กระบวนวณิธศีจรัดเรศียง (วณิธศีการจรัดเรศียงเบพชองตข้น, ควณิกซอรร์ต, เรดณิกซร์ซอรร์ต, ไพรออรณิตศีคณิว, เมอรร์จซอรร์ต, การเรศียงลสาดรับภายนอก)
3. กระบวนวณิธศีคข้นหา (วณิธศีการคข้นหาเบพชองตข้น, ทรศีสมดยุล, แฮชชณิง, การคข้นหาแบบเรดณิกซร์, การคข้นหาภายนอก)
4. การประมวลผลสตรณิง (การคข้นหาสตรณิง, การเทศียบรมูปแบบ, การวณิเคราะหร์กระจาย (พารร์สซณิง), การบศีบอรัดไฟลร์, การเขข้ารหรัสลรับ)
5. กระบวนวณิธศีทางเรขาคณณิต (วณิธศีการทางเรขาคณณิตเบพชองตข้น, การหาคอนเวด็กซร์ฮรัล, การคข้นหามศีพณิสรัย, การตรัดกนทางเรขาคณณิตรั , ปรัญหาจยุดใกลข้ทศีที่สยุด)
17 6. กระบวนวณิธศีกราฟ (กระบวนวณิธศีกราฟเบพชองตข้น, การเชพที่อมตอกม นรั , กราฟถมวงนสชาหนรัก, กราฟมศีทณิศทาง, การไหลของเครพอขายม , การเทศียบ)
7. กระบวนวณิธศีทางคณณิตศาสตรร์ (ตรัวเลขสยุม , เลขคณณิต, การกาจรัดแบบเกาสร์ส , การทสาใหข้เขข้ารมูปโคข้ง, การอณินทณิเกรต)
Required Text: Algorithms in C Robert Sedgewick Addison-Wesley, 3rd edition (October 1999) Notes: This type of course can be used to introduce algorithms and data structures required in later material. If anyone has particular requirements then perhaps they could be added here. There's a lot of material here; perhaps one of two of sections (5), (6) or (7) should be removed?
18 Advanced Database Systems ระบบฐานขข้อมมูลขรัชนสมูง /* ACM/IEEE 1991*/
Prerequisites: Software Engineering and Databse Systems, Operating Systems, Mathematics for Computer Engineering
Topic Summary: This course covers several advanced topics in database systems. Basic coverage for reviewing purpose includes data models, theory of normal forms and database design; query languages; the data dictionary; concurrency control, and recovery from failure; security and integrity; and case studies of commercial database languages and systems.
Advanced subtopics include: query optimization; implementation of a relational database kernel; transaction processing, distributed database systems; language paradigms and database languages; user interfaces and graphical query languages; advanced study of physical database organization; emerging database technologies (e.g., knowledge-based systems); and logic as a data model.
Suggest Laboratories: Open and closed laboratories can be assigned for students to gain experience with relational database kernel implementation using an imperative management system. Other similar labs can be designed to cover various other subtopics listed above.
วณิชานศีชประกอบดข้วยหรัวขข้อระดรับสมูงดข้านระบบฐานขข้อมมูลช เนพอหาพพชนฐานเพพที่อการทบทวนประกอบดข้วยแบบจสาลองขข้อมมูล, ทฤษฏศีนอรร์มรัลฟอรร์มและการออกแบบ ฐานขข้อมมูล, ภาษาคณิวรศี, พจนานยุกรมขข้อมมูล, การควบคยุมภาวะพรข้อมกนรั และการกมูคพนจากความลข้มเหลวข้ , ความปลอดภรัยและความคงสภาพของขข้อมมูล และกรณศี ศศึกษาเกศีที่ยวกบภาษาและระบบฐานขข้อมมูลเชณิงพาณณิชยร์รั
หรัวขข้อยอยขรัม ชนสมูงครอบคลยุมถศึง การปรรับคณิวรศีใหข้เหมาะสม, การสรข้างเคอรร์เนลของฐานขข้อมมูลเชณิงสรัมพรันธร์, การประมวลผลทรานแซกชรันที่ , ระบบฐานขข้อมมูลเชณิง กระจาย, รมูปแบบตางม ๆ ของภาษาและภาษาฐานขข้อมมูล, ภาษาของการตณิดตมอกบผมูข้ใชข้และภาษาคณิวรศีเชณิงภาพรั , การศศึกษาขรัชนสมูงเกศีที่ยวกบการจรัดองคร์ประกอบฐานรั ขข้อมมูล, เทคโนโลยศีฐานขข้อมมูลทศีที่กาลรังเกส ณิดขศึชน (เชมน ระบบทศีที่ใชข้ความรมูข้เปด็นฐาน) และการใชข้ตรรกะเปด็นรมูปแบบขข้อมมูล การปฏณิบรัตณิการทศีที่แนะนสา ใหข้นรักศศึกษาทสาการปฏณิบรัตณิการแบบเปณิดและแบบปณิดเพพที่อใหข้มศีประสบการณร์กบการสรข้างเคอรร์เนลของระบบฐานขข้อมมูลเชณิงสรัมพรันธร์โดยใชข้รั ระบบจรัดการแบบอณิมเพอเรทศีฟ และใชข้การปฏณิบรัตณิการอพที่น ๆ เพพที่อศศึกษาควบคมูกม บหรัวขข้อทศีที่เขศียนไวข้ขข้างตข้นรั
Textbooks: An Introduction to Database Systems Chris J. Date Addison-Wesley, 6th edition, August 1994
19 Other advanced database textbooks
20 Advanced Software Engineering วณิศวกรรมซอฟตร์แวรร์ขรัชนสมูง /* ACM/IEEE 1991 */
Prerequisites: Computer Programming Techniques, Software and Systems Engineering
Topic Summary: This topic area is devoted to methods and tools that increase the quality and decrease the cost of developing and maintaining complex software systems. It includes activities that cover the whole spectrum of the software development life-cycle.
Subtopics include: process and life-cycle models; specification methods, notations, and tools; validation and verification; debugging and program understanding; quality assurance; testing strategies (e.g., white box, functional); metrics; tools (CASE); prototyping; version control; configuration management; end-user considerations; standards and international issues; documentation; maintenance; reuse; safety; reliability; portability; and project organization (e.g., cost estimates, schedules, economic models).
Suggested Laboratories: A software design and implementation project, preferably done as a group project, is an effective laboratory component of this topic area. Possible projects might include analysis, specification, and high-level design; modifying and updating an existing piece of software; testing and integrating separate components; or doing a full design and implementation task. Students should also see and use a variety of contemporary software design tools.
วณิธศีการและเครพที่องมพอซศึที่งเพณิที่มคยุณภาพและลดตข้นทยุนในการพรัฒนาและการบสารยุงรรักษาระบบซอฟตร์แวรร์ทศีที่ซรับซข้อน โดยครอบคลยุมถศึงกณิจกรรมทศีที่เกณิดขศึชนตลอดทรัชงวงจร ชศีวณิตของซอฟตร์แวรร์
หรัวขข้อยอยม ไดข้แกม รมูปแบบของกระบวนการและวงจรชศีวณิต; วณิธศีการ, สรัญลรักษณร์ และเครพที่องมพอสสาหรรับการระบยุรายละเอศียด; การตรวจสอบความสมเหตยุสมผล และการทวนสอบความถมูกตข้องทางตรรกะ; การแกไขจยุดบกพรข้ มองและการเขข้าใจโปรแกรม; มาตราวรัด; เครพที่องมพอ (CASE); การสรข้างตข้นแบบ; การควบคยุม รยุมน; การจรัดการองคร์ประกอบ; การคสานศึงถศึงผมูข้ใชข้ทศีที่ปลาย; ประเดด็นเกศีที่ยวกบมาตรฐานและการสรข้างซอฟตร์แวรร์สสาหรรับนานาประเทศรั ; การเขศียนเอกสาร; การ บสารยุงรรักษา; การนสากลรับมาใชข้; ความปลอดภรัย; ความเชพที่อถพอไดข้; การนสาไปใชข้ไดข้หลายระบบ; และการจรัดองคร์กรของโครงการ (ไดข้แกม การประมาณการ ตข้นทยุน, การจรัดตารางงาน, และแบบจสาลองทางเศรษศาสตรร์) การปฏณิบรัตณิการทศีที่แนะนสา โครงงานออกแบบและสรข้างซอฟตร์แวรร์ โดยเฉพาะทศีที่ทสาเปด็นกลยุม เปด็นการปฏณิบรัตณิการทศีที่เหมาะสมสสาหรรับวณิชานศีช งานในโครงงานอาจ ครอบคลยุมถศึงการวณิเคราะหร์ความตข้องการ, การระบยุรายละเอศียดความตข้องการ และการออกแบบระดรับสมูง; การดรัดแปลงและปรรับซอฟตร์แวรร์ทศีที่มศีอยมูแลข้วใหข้ทรันม สมรัย; การทดสอบและรวมองคร์ประกอบตางม ๆ เขข้าดข้วยกนรั ; หรพอทสาการออกแบบและสรข้างจนเสรด็จสมบมูรณร์ นรักศศึกษาควรไดข้มศีโอกาสใชข้เครพที่องมพอออกแบบ ซอฟตร์แวรร์สมรัยใหมหลายตรัวม
21 Advanced UNIX (AUX)
ระบบ UNIX ขรัชนสมูง /* Aj. Andrew */ Prerequisites: Computer Programming Techniques The course will provide students with a solid grounding in the low-level system programming elements of UNIX, which are necessary for the full utilisation of that operating system for advanced tasks such as network programming and systems administration. Topics: UNIX File Structure. The Shell. Regular Expressions. Filters. The Bourne Shell. The C Shell. Perl. Standard I/O in C. File Processing. The Preprocessor. The Standard Libraries. Large Programs. Low-level File I/O. The Directory. User and System Information.
วชิชานรีพใหด้นนักศพกษามรีความรลูด้เกรีพึ่ยวกบการเขรียนโปรแกรมระบบระดนับลนั มางบน Unix ซพพึ่งจทาเปป็นสทาหรนับการใชด้ระบบปฏชิบนัตชิการนนัพนสทาหรนับงานขนัพนสลูง เชมน การเขรียน โปรแกรมทางเครพอขายม และการบรชิหารระบบ
หนัวขด้อตางม ๆ ไดด้แกม โครงสรด้างไฟลร์ของยลูนชิกซร์ เชลลร์ เรกลูลารร์เอกซร์เพรสชนัน ฟชิลเตอรร์ เชลลร์แบบบอรร์น เชลลร์แบบซรี ภาษาเพชิรร์ล การรนับขด้อมลูลและสมงออกขด้อมลูล มาตรฐานโดยใชด้ภาษาซรี การประมวลผลไฟลร์ พรรีโพรเซสเซอรร์ ไลบรารรีมาตรฐาน โปรแกรมขนาดใหญม การอานและเขรียนไฟลร์ระดนับลม มาง ไดเรคทอรรี ขด้อมลูลผลูด้ใชด้ และขด้อมลูลระบบ
Required Texts: A Practical Guide to the UNIX System Mark G. Sobell Bejamin/Cummings, 3rd edition, 1995 Advanced Programming in the UNIX Environment W. Richard Stevens Addison-Wesley, 1992 Learning Perl Randal L. Schwartz O’Reilly, 2nd edition, 1997
22 Computer Graphics
คอมพณิวเตอรร์กราฟฟณิกสร์
จะตข้องอภณิปรายกบกลยุรั ม Control & Robotics
/* ACM/IEEE 1991 */
Prerequisites: Computer Programming Techniques, Mathematics for Computer Engineering
Topic Summary: An overview of the principles and methodologies of computer graphics, including the representation, manipulation, and display of two- and three- dimensional objects. Subtopics include characteristics of display devices (e.g., raster, vector); representing primitive objects (lines, curves, surfaces) and composite objects; two- and three-dimensional transformations (translation, rotation, scaling); hidden lines and surfaces; shading and coloring; interactive graphics and the user interface; animation techniques.
Suggested Laboratories: Students should have access to a suite of graphics software tools and a high quality color display. Exercises will provide experience with the design, implementation, and evaluation of program that manipulate and display graphic objects.
23 Computer Security ความปลอดภรัยของคอมพณิวเตอรร์ /* ACM/IEEE 1991 */
Prerequisites: Computer Programming Techniques, Database and Software Systems, Operating Systems
Topic Summary: This area addresses the problem of how to secure computer systems, networks, and data from unauthorized or accidental access, modification, and denial of service. The essential subtopics include: formal definitions of security, privacy, and integrity; risk assessment and management; information theory; information flow and covert channels; coding and cryptography.
Additional subtopics include: authentication methods; capabilities, access lists, and protection domains; standards; malicious software (e.g., viruses, logic bombs); audit and control methods; legal factors; database and inference control; security kernels; and verification methods.
Suggested Laboratories: None specifically recommended; however, this area is especially well-suited to the use of case studies to reinforce various principles covered above.
เนพชอหาเกศีที่ยวกบการรรักษาความปลอดภรัยของระบบคอมพณิวเตอรร์รั , ระบบเครพอขายม , และขข้อมมูลจากการเขข้าถศึงและการแกไขทศีที่ไมข้ ไดข้รรับอนยุญาตม การปกปข้องระบบ จากการบยุกรยุกเพพที่อใหข้ปฏณิเสธการใหข้บรณิการ หรัวขข้อยอยทศีที่สสาครัญรวมถศึงม คสานณิยามอยางเปด็นทางการของความปลอดภรัยม , ความเปด็นสมวนตรัว, และความคงสภาพ; การ ประเมณินและการจรัดการความเสศีที่ยง; ทฤษฏศีสารสนเทศ; การไหลของสารสนเทศและเสข้นทางแอบแฝง; การเขศียนโคดและการเขข้ารหรัสลรับ
หรัวขข้อยอยเพณิม ที่มเตณิมรวมถศึง วณิธศีการรรับรองตรัวตน; ความสามารถในการใชข้งาน, รายการอนยุญาตการเขข้าถศึง และขอบเขตปข้องกนรั ; มาตรฐาน; ซอฟตร์แวรร์ทศีที่ประสงคร์ รข้าย (เชมน ไวรรัสหรพอระเบณิดทางตรรกะ); วณิธศีการตรวจสอบและควบคยุม; องคร์ประกอบทางกฎหมาย; การควบคยุมฐานขข้อมมูลและการอนยุมาน; เคอรร์เนลความ ปลอดภรัย; วณิธศีการทวนสอบความถมูกตข้องทางตรรกะ
24 Decision Support Systems ระบบสนรับสนยุนการตรัดสณินใจ /* AIT Information Management Curriculum */
Prerequisites: Software and Systems Engineering
Objectives: To provide essential Decision Support Systems (DSS) concepts, skills needed to build and implement DSS, and hands-on experience with decision support software tools. Additional types of systems covered: Executive Information Systems (EIS), Group Decision Support Systems (GDSS), and Expert Systems (ES).
Topics: Introduction to Decision Support Systems (DSS). Conceptual Foundation. Hardware and Software for DSS. DSS Architecture. Development of DSS. Executive Information Systems (EIS). Special Aspects.
แนวคณิดเรพที่องระบบสนรับสนยุนการตรัดสณินใจทศีที่จสาเปด็น, ความชสานาญทศีที่จสาเปด็นในสรข้างและนสาระบบสนรับสนยุนการตรัดสณินใจไปใชข้ การทดลองทสาและมศีประสบการณร์ กบเครพที่องมพอทางซอฟตร์แวรร์เพพที่อสนรับสนยุนการตรัดสณินใจรั ชนณิดของระบบอพที่น ๆเพณิที่มเตณิม ไดข้แกม ระบบสารสนเทศผมูข้บรณิหาร ระบบสนรับสนยุนการตรัดสณินใจเชณิงกลยุม ระบบผมูข้ชสานาญการ หรัวขข้อทศีที่เกศีที่ยวขข้อง ไดข้แกม แนะนสาระบบสนรับสนยุนการตรัดสณินใจ พพชนฐานเชณิงแนวคณิด ฮารร์ดแวรร์และซอฟตร์แวรร์สสาหรรับระบบสนรับสนยุนการตรัดสณินใจ สถาปรัตยกรรม ของระบบการตรัดสณินใจ การพรัฒนาระบบสนรับสนยุนการตรัดสณินใจ ระบบสารสนเทศผมูข้บรณิหาร แงมยุมพณิเศษม
Textbooks: Decision Support and Expert Systems E. Turban Prentice-Hall, 4th edition, 1995.
25 Human-Computer Interaction การตณิดตอระหวม างมนยุษยร์กม บคอมพณิวเตอรร์รั /* AIT’s Information Management Curriculum; Shneiderman’s text */
Prerequisites: Software and Systems Engineering
Objectives: Human-computer interaction (HCI) has become an area of great interest and concern. This course provides the concepts of HCI and user interfaces. The emphasis is on user interface design and technologies
Topics: Human Factors of Interactive Software; Theories, Principles, and Guidelines; Managing Design Processes; Expert Reviews, Usability Testing, Surveys, and Continuing Assessments; Software Tools; Direct Manipulation and Virtual Environments; Menu Selection, Form Fillin, and Dialog Boxes; Command and Natural Languages; Interaction Devices; Response Time and Display Rate; Presentation Styles; Printed Manuals, Online Help, and Tutorials; Multiple-Window Strategies; Computer-Supported Cooperative Work; Information Search and Visualization; Hypermedia and the World Wide Web
การปฏณิสรัมพรันธร์ระหวางมนยุษยร์กม บคอมพณิวเตอรร์ไดข้กลายเปด็นสณิรั ที่งทศีที่ไดข้รรับความสนใจและความหมวงใยเปด็นอยางมากม วณิชานศีชใหข้แนวคณิดของการปฏณิสรัมพรันธร์ระหวางม มนยุษยร์กบคอมพณิวเตอรร์และตรัวเชพที่อมประสานกรั บผมูข้ใชข้รั โดยเนข้นทศีที่การออกแบบและเทคโนโลยศีตรัวเชพที่อมประสานกบผมูข้ใชข้รั
หรัวขข้อทศีที่เกศีที่ยวขข้อง ไดข้แกม องคร์ประกอบมนยุษยร์ในซอฟตร์แวรร์อณินเตอรร์แอคทศีฟ; ทฤษฏศี, หลรักการ, และแนวทาง; การจรัดการกระบวนการออกแบบ; การทวนสอบ จากผมูข้ชสานาญการ, การทดสอบการใชข้งาน, การสสารวจ, และการประเมณินผลอยางตม มอเนพที่อง; เครพที่องมพอทางซอฟตร์แวรร์; การควบคยุมโดยตรง และสภาพแวดลข้อม เสมพอนจรณิง; การเลพอกเมนมู, การใสมคาในฟอรร์มม , และกรอบขข้อความโตข้ตอบ; คสาสรังและภาษาธรรมชาตณิที่ ; เครพที่องมพอในการปฏณิสรัมพรันธร์; เวลาในการตอบสนอง และอรัตราการแสดงผล; รมูปแบบการนสาเสนอ; คมูมพอการใชข้ทศีที่พณิมพร์ขศึม ชน, การใหข้ความชมวยเหลพอออนไลนร์, บทชมวยสอน; กลวณิธศีแบบหนข้าตางหลายชม มอง; การ ทสางานรมวมกนโดยใชข้คอมพณิวเตอรร์ชรั มวย; การคข้นหาสารสนเทศและการทสาใหข้เหด็นภาพ; ไฮเปอรร์มศีเดศียและ เวณิรร์ล ไวดร์ เวด็บ
Textbooks:
Designing the User Interface : Strategies for Effective Human-Computer Interaction Ben Shneiderman Addison-Wesley, third edition, July 1997
Human-Computer Interaction Alan J. Dix (Editor), Janet E. Finlay, et al. Prentice-Hall (Febuary 1998)
26
27 Image Processing การประมวลผลภาพ /* Current CoE PSU Curriculum */
จะตข้องอภณิปรายกบกลยุรั ม Control & Robotics
Prerequisites: Computer Programming Techniques
Transformation of physical conditions to analog and digital signal. Image color formation. Image light and reflection. Objects texture. Image processing by thresholding method. Image contour principle. Analysis method for image grouping and image classifying.
28 Information Systems Analysis and Design
การวณิเคราะหร์และออกแบบระบบสารสนเทศ
/* AIT’s Information Management Curriculum */
Prerequisite: Software and Systems Engineering
Objectives: Information Systems constitute the primary application of computers and related technology in enterprised and public organizations. Techniques for developing such systems have evolved through structured methodologies to object-orientation. A variety of CASE tools are available to support the methodologies. The course will provide students the concepts and methodologies of information systems development. The emphasis is on structured systems analysis and systems design. Topics: Information System Planning. System Development Methods. System Life Cycle. Evolutionary Development. Systems Analysis. Systems Design. Logical Design. Physical Design. Entity-Relationship Model, Event-Drivenn Approach. Database Design. Systems Implementation and Maintenance. CASE Tools. ระบบสารสนเทศเปป็นงานประยอุกตร์ใชด้คอมพชิวเตอรร์และเทคโนโลยรีทรีพึ่เกรีพึ่ยวขด้องอยางสทาคนัญในบรชิษนัทและองคร์กรของรนัฐม เทคนชิคในการพนัฒนาระบบดนังกลมาวไดด้ วชิวนัฒนาการขพพนดด้วยวชิธรีการเชชิงโครงสรด้างและเชชิงวนัตถอุ เครพพึ่องมพอชมวยงานวชิศวกรรมซอฟตร์แวรร์ไดด้ชมวยวชิธรีการเหลมานรีพ วชิชานรีพจะกลมาวถพงแนวคชิดและวชิธรีการของพนัฒนา ระบบสารสนเทศ โดยเนด้นทรีพึ่การวชิเคราะหร์และออกแบบระบบอยางมรีโครงสรด้างม หนัวขด้อประกอบดด้วย การวางแผนระบบสารสนเทศ วชิธรีการพนัฒนาระบบ วงจรชรีวชิตของระบบ การพนัฒนาเชชิงวชิวนัฒนาการ การวชิเคราะหร์ระบบ การออกแบบระบบ การออกแบบเชชิงตรรกะ การออกแบบเชชิงกายภาพ แบบจทาลองเอนตชิตรี-รรีเลชนันชชิพ วชิธรีการแบบอรีเวนตร์ดรชิเวป็น การออกแบบฐานขด้อมลูล การสรด้างและการบทารอุง รนักษาระบบ เครพพึ่องมพอชมวยงานวชิศวกรรมซอฟตร์แวรร์ Textbooks: Modern Systems Analysis and Design J. A. Hoffer, J. S. Valacich, and J. F. George Addison-Wesley, 1996 Information Engineering, Vol II. C. Finkelstein Addison-Wesley, 1993. Modern Systems Analysis Ed. Yourdon Addison-Wesley, 1992. Information Engineering: A Trilogy james Martin Prentice-Hall, 1990.
29 Object-oriented Analysis and Design การวณิเคราะหร์และออกแบบเชณิงวรัตถยุ /* Booch’s Text */
Prerequisites: Computer Programming Techniques, Software and Systems Engineering Prerequisite or Co-requisite: Advanced Programming Techniques
Objectives: To provide a sound understanding of the fundamental concepts of the object model. To facilitate a mastery of the notation and process of object-oriented analysis and design. To teach the realistic application of object-oriented development within a variety of problem domains. Topics: Complexity of Software, The Object Model, Classes and Objects, Classification, Abstractions, The Notation for Object-Oriented Design (Class Diagrams, Object Diagrams, Module Diagrams, Process Diagrams, State-Transition Diagrams, Interaction Diagrams), UML Notations, Development Process, Pragmatic Issues, Applications of Object-Oriented Analysis and Design. วณิชานศีชมศีจยุดประสงคร์ทศีที่จะใหข้นรักศศึกษาเขข้าใจถศึงแนวคณิดพพชนฐานของแบบจสาลองเชณิงวรัตถยุ ไดข้เรศียนรมูข้ถศึงการวณิเคราะหร์และออกแบบเชณิงวรัตถยุ และการประยยุกตร์ใชข้วณิธศีการ พรัฒนาเชณิงวรัตถยุในปรัญหาลรักษณะตางม ๆ หรัวขข้อครอบคลยุมถศึง ความซรับซข้อนของซอฟตร์แวรร์ แบบจสาลองวรัตถยุ คลาสและวรัตถยุ การจสาแนก การทสาใหข้เปด็นนามธรรม สรัญลรักษณร์สสาหรรับการออกแบบเชณิงวรัตถยุ (แผนภาพคลาส, แผนภาพวรัตถยุ, แผนภาพโมดมูล, แผนภาพกระบวนการ, แผนภาพการเปลศีที่ยนสถานะ, แผนภาพการปฏณิสรัมพรันธร์) สรัญลรักษณร์ของ UML กระบวนการพรัฒนา ประเดด็นเชณิงปฏณิบรัตณิ การประยยุกตร์ใชข้การวณิเคราะหร์และการออกแบบเชณิงวรัตถยุ
Textbooks: Object-Oriented Analysis and Design with Applications Grady Booch Addison-Wesley, 2nd edition, Febuary 1994 The Unified Modeling Language User Guide Grady Booch, Ivar Jacobson, James Rumbaugh Addison-Wesley, October 1998
30 Principles of Concurrent Computation (PCC)
หลรักการคสานวณพรข้อมกนรั /* Aj. Andrew */ Prerequisites: Advanced Programming Techniques Optional Prerequisites: Programming Languages and Paradigms Objectives: To provide students with an understanding of various concurrent paradigms, such as data parallelism, shared variables, message passing, and generative communication, and also of language classifications based on their support for explicit or implicit views of parallelism, decomposition, communication, synchronization, and mapping. To further aid understanding, some of the major semantic models of concurrency are studied, and applied to several languages. Topics: Concurrency. Parallelism. Communication and Synchronization. Shared Variables. Message Passing. Generative Communication. Concurrent Language Classification. Concurrent Semantic Models.
เพพที่อใหข้นรักศศึกษาเขข้าใจถศึงแนวทางการทสางานพรข้อมกนแบบตรั างม ๆ เชมน การขนานของขข้อมมูล, การใชข้ตรัวแปรรมวมกนรั , การสมงผานขม าวสารม , และการสพที่อสารเชณิง สรข้าง การแบงประเภทของภาษาโดยขศึม ชนอยมูกม บการสนรับสนยุนการทสางานแบบขนานในแบบชรัดเจนหรพอแบบแฝงรั , การแบงสม มวนประกอบ, การสพที่อสาร, การทสาใหข้ เขข้าจรังหวะ, และการเทศียบสมง เพพที่อใหข้นรักศศึกษาเขข้าใจมากขศึชน จะมศีการศศึกษาแบบจสาลองความหมายของภาวะพรข้อมกนรั และการใชข้กบภาษาหลายภาษารั
หรัวขข้อทศีที่กลมาวถศึง ไดข้แกม ภาวะพรข้อมกนรั , การทสางานแบบขนาน, การสพที่อสารและการทสาใหข้เขข้าจรังหวะ, การใชข้ตรัวแปรรมวมกนรั , การสมงผานขม าวสารม , การสพที่อสาร เชณิงสรข้าง, การแบงแยกภาษาตามภาวะพรข้อมกม นรั , แบบจสาลองความหมายของภาวะพรข้อมกนรั
Course Outline: I Basic Concepts 1. Sequential programming: logic and proofs 2. Concurrency and synchronization 3. Architectures II Data Parallelism 1. Basic and advanced operations 2. Automatic parallelism 3. Data placement III Shared Variables 1. Fine-grained synchronization 2. Semaphores
31 3. Conditional critical regions 4. Monitors 5. Futures 6. Scheduling and mapping IV Message Passing 1. Asynchronous message passing 2. Synchronous message passing 3. RPCs and Rendezvous 4. Visualisation V Generative Communication 1. The generative model 2. Active data structures 3. Alternatives to Linda VI Concurrent Languages 1. Classifying models 2. Language examples 3. Assessment criteria 4. Historical notes VII Concurrent Semantic Models 1. Petri nets 2. Review of operational semantics 3. Process calculi: CCS, -calculus 4. The chemical abstract machine (CHAM) 5. Language analyses (concurrent logic programming, Linda) Textbooks: Concurrent Programming: Principles and Practice Gregory R. Andrews Benjamin/Cummings, 1991 Practical Parallel Programming Gregory V. Wilson MIT Press, 1995 References: Principles of Concurrent and Distributed Programming M. Ben-Ari, Prentice Hall, 1991
32 How to Write Parallel Programs Nicholas Carriero and David Gelernter MIT Press 1990 Introduction to Parallel Computing: Design and Analysis of Algorithms Vipin Kumar et al. Benjamin/Cummings, 1994 Parallel Computers: Theory and Practice Thomas L. Casavant et al IEEE Computer Society Press, 1996 Relevant Journals: ACM Computing Surveys; Communications of the ACM; Distributed Computing; IEEE Computer; IEEE Software; Journal of Parallel and Distributed Computing
33 Programming Languages and Paradigms
ภาษาโปรแกรมและแนวทางการโปรแกรม /* Dr. Andrew Davison */
Prerequisites: "Mathematics for Computer Engineering", "Computer Programming Techniques"
Objectives: Knowledge of the concepts and paradigms behind programming languages allows the student to choose between programming languages more easily, see a language's advantages and disadvantages, and learn new programming languages more quickly.
Topics: 1. Introduction (The Role of Programming Languages, Syntactic Structures); 2. Imperative Programming (Statements, Types, Procedure Activations, Languages: C and Pascal); 3. Object Oriented Programming (ADT, Classes and Objects, Inheritance, Polymorphism, Language: C++) 4. Functional Programming (Functions, Types, Programming with Lists, Language: Haskell, Mathematical basis: Lambda Calculus); 5. Logic Programming (Relations, Unification, Backtracking; Language: Prolog, Mathematical basis: Predicate Calculus) 6. (Optional) Concurrent Programming (Processes, Message Passing, Tuple Spaces) 7. Semantics (Operational, Axiomatic, Denotational)
ความรมูข้เกศีที่ยวกบแนวคณิดและแนวทางทศีที่อยมูรั เบพม ชองหลรังภาษาโปรแกรมตางม ๆ ทสาใหข้นรักศศึกษาสามารถเลพอกใชข้ภาษาโปรแกรมไดข้ดศีขศึชน, เขข้าใจจยุดออนจยุดแขด็งของแตม ละม ภาษา และเรศียนรมูข้ภาษาโปรแกรมใหมไดข้เรด็วขศึม ชน หรัวขข้อ ไดข้แกม 1. แนะนสา (บทบาทของภาษาโปรแกรม, โครงสรข้างวากยสรัมพรันธร์) 2. การโปรแกรมแบบอณิมเพอเรทศีฟ (ประโยคคสาสรังที่ , แบบชนณิดขข้อมมูล, การเรศียกใชข้โปรแกรมยอยม , ภาษาตรัวแทน ไดข้แกม C และ Pascal) 3. การโปรแกรมเชณิงวรัตถยุ (แบบชนณิดขข้อมมูลนามธรรม, คลาสและวรัตถยุ, การสพบทอด, โพลศีมอรร์ฟณิซศึม, ภาษาตรัวแทน ไดข้แกม C++) 4. การโปรแกรมเชณิงฟรังกชรันร์ ( ฟรังกชรันร์ , แบบชนณิดขข้อมมูล, การโปรแกรมกบลณิสตร์รั , ภาษาตรัวแทน ไดข้แกม Haskell, พพชนฐานทางคณณิตศาสตรร์ คพอ Lambda Calculus) 5. การโปรแกรมเชณิงตรรกะ (ความสรัมพรันธร์, ยมูนณิฟณิเคชรัน, แบคแทรคกณิง, ภาษาตรัวแทน ไดข้แกม Prolog, พพชนฐานทางคณณิตศาสตรร์คพอ เพรดณิเคตแคลคมูลรัส) 6. (ทางเลพอก) การโปรแกรมแบบพรข้อมกนรั (กระบวนการ, การสมงผานขข้อความม , ทมูเปณิลสเปซ) 7. ความหมาย (โอเพอเรชรันแนล, แอกเซศียมเมตณิก, ดศีโนเทชรันแนล)
34 Required Text: Programming Languages: Concepts and Constructs Ravi Sethi, Tom Stone (Editor) Addison-Wesley, 2nd edition (February 1996)
Programming Language Essentials Henri E. Bal, Dick Grune Addison-Wesley, 1994
35 Symbolic Computation การคสานวณเชณิงสรัญลรักษณร์ /* ACM/IEEE 1991 */
Prerequisites: Mathematics for Computer Engineering, Computer Programming Techniques Optional Prerequisites: Advanced Data Structures and Algorithms
Topic Summary: This topic provides coverage of the foundations and uses of algebraic systems, as well as insights into current methods for effectively using computers to do symbolic computation. Students should be able to understand basic symbolic computations and their underlying data structures and algorithms. Using a currently available system, students will be able to solve mathematical problems symbolically. The role of symbolic computation in the discipline of computing and related disciplines, as well as its strengths and limitations, should also be taught.
Subtopics include computer algebraic systems; data representations; fundamental algorithms (e.g., matrix calculations, Taylor series, differentiation); polynomial simplification; advanced algorithms (e.g. modular methods for GCD, matrix inversion, polynomial factorization); formal integration.
Suggested Laboratories: Exercises should be given so that students can use a contemporary symbol manipulation system (e.g. MACSYMA, REDUCE, Mathematica) to solve problems. ครบคลยุมถศึงพพชนฐานและการใชข้งานระบบพศีชคณณิต และการมองอยางลศึกซศึม ชงถศึงวณิธศีการปรัจจยุบรันในการใชข้งานคอมพณิวเตอรร์เพพที่อคสานวณเชณิงสรัญลรักษณร์ นรักศศึกษาจะ เขข้าใจถศึงการคสานวณเชณิงสรัญลรักษณร์พพชนฐานและโครงสรข้างขข้อมมูลและกระบวนวณิธศีทศีที่อยมูเบพม ชองหลรัง นรักศศึกษาจะสามารถใชข้ระบบทศีที่มศีอยมูในปรัจจยุบรันเพพที่อแกม ปรัญหาทางข้ คณณิตศาสตรร์ไดข้โดยวณิธศีการทางสรัญลรักษณร์ บทบาทของการคสานวณเชณิงสรัญลรักษณร์ในสาขาคอมพณิวเตอรร์และสาขาทศีที่เกศีที่ยวขข้อง รวมถศึงจยุดแขด็งและขข้อจสากดของวณิธศีรั การนศีช
หรัวขข้อยอยม ไดข้แกม ระบบพศีชคณณิตคอมพณิวเตอรร์; การแทนขข้อมมูล; กระบวนวณิธศีพพชนฐาน (เชมน การคสานวณแมทรณิกซร์, อนยุกรมเทยร์เลอรร์, การหาอนยุพรันธร์); การ ทสาใหข้งายลงทางพหยุนามม ; กระบวนวณิธศีขรัชนสมูง( เชมน วณิธศีการมอดยุลารร์ทศีที่ใชข้หาตรัวหารรมวมมาก, การอณินเวณิรร์สแมทรณิกซร์, การแยกองคร์ประกอบของพหยุนาม); การอณิ นทณิเกรตอยางเปด็นทางการม
การปฏณิบรัตณิการแนะนสา นรักศศึกษาควรไดข้รรับแบบฝศึกหรัดเพพที่อใชข้ระบบการจรัดการสรัญลรักษณร์ทศีที่ทรันสมรัย (เชมน MACSYMA, REDUCE, Mathematica) เพพที่อแกปรัญหาข้
Theory of Computation (ACM) ทฤษฏศีการคสานวณ /* ACM/IEEE 1991 */
36 Prerequisites: Mathematics for Computer Engineering, Computer Programming Techniques Optional Prerequisites: Advanced Data Structures and Algorithms, Programming Languages and Paradigms Topic Summary: Continuation of the study of formal modules of computation, including finite automata, pushdown automata, linear-bounded automata, and Turing machines (deterministic and nondeterministic). From the formal language perspective, regular, context-free, context-sensitive, and unrestricted grammars will be studied and shown to be equivalent to the corresponding machine models. Church’s thesis will be discussed and the equivalence of various models of computation (e.g., Turing machines, random-access machines, lambda calculus, and recursive functions) is also included. These models provide a basis for the study of computability, including effectively enumerable and undecidable problems.
Suggested Laboratories: Optionally, students will design and implement simple Turing machines or automata using a simulator (e.g., Turing’s World).
การศศึกษาถศึงการใชข้รมูปแบบเปด็นทางการในการคสานวณ รวมถศึงออโตมาตาจสากดรั , ออโตมาตาแบบพยุชดาวนร์, ออโตมาตาแบบจสากดเชณิงเสข้นรั , และเครพที่องคสา นวณทรัวรณิง( แบบกาหนดไดข้ส และแบบกาหนดไมส ไดข้ม ) จากมยุมมองการศศึกษาภาษาทางการ จะเรศียนรมูข้ไวยากรณร์เรกมูลารร์, ไวยากรณร์ไมขศึม ชนกบบรณิบทรั , ไวยากรณร์ขศึชน กบบรณิบทรั , และไวยากรณร์ไมมจสากดรั โดยศศึกษาถศึงแบบจสาลองเครพที่องคสานวณทศีที่เทศียบเทากม นรั อภณิปรายถศึงสมมตณิฐานของเชณิรร์ช อภณิปรายเกศีที่ยวกบความสมมมูลกรั นของรั แบบจสาลองการคสานวณตมาง ๆ (เชมน เครพที่องคสานวณทรัวรณิง, เครพที่องคสานวณเขข้าถศึงแบบสยุม , แลมบร์ดาแคลคมูลรัส, และฟรังกชรันเรศียกตนเองร์ ) แบบจสาลองเหลมานศีชใชข้เปด็น ฐานในการศศึกษาการคสานวณไดข้ รวมถศึงปรัญหาทศีที่แจงไดข้ และปรัญหาทศีที่ตรัดสณินใจไมไดข้ม
การปฏณิบรัตณิการแนะนสา (ใหข้เปด็นทางเลพอก) นรักศศึกษาจะออกแบบและสรข้างเครพที่องคสานวณทรัวรณิงอยางงม มาย หรพอออโตมาตาโดยใชข้เครพที่องจสาลอง (เชมน Turing’s World)
37