Revised. Sumanta Guha. CS301 Theory of Computation .... Grading: Homework (
10%), Project(30%) Midterm (30%), Final Exam (30%). Instructor(s): Mongkol ...
ASIAN INSTITUTE OF TECHNOLOGY
BACHELOR OF SCIENCE IN ENGINEERING CURRICULUM (Syllabus of new and existing courses for approval)
Course Category: Computer Science Core (CSXXX) Required Courses Technical Electives
NOTATIONS Convention in Subject Code: CS ‘Y’‘NN’ CS – Computer Science UG – Under Graduate General Course ‘Y’ – Year of Study Indicator; 1 – First Year, 2-Second Year, 3-Third Year, 4-Fourth Year ‘NN’– Subject Number; a two digit number
Example: CS202 Required course in Computer Science offered in the 2nd year with subject number 02.
PART I List of New, Revised and Approved Courses A. Code CS101 CS102 CS201 CS203 CS202 CS204 CS301 CS303 CS304 CS305
Computer Science Core Courses (Required) Credits Title (L-P) Introduction to Computers 5(3-2) and Programming OOP & Web Applications 4(2-2) Computer Systems 3(3-0) Architecture Operating Systems 3(3-0) Discrete Mathematics Data Structures and Algorithms Theory of Computation Logic in Computer Science Advanced Algorithms Programming Languages and Compilers
Prerequisites
Syllabus
Responsible Faculty
None
Revised
Matthew Dailey
CS101
Existing
CS101
Revised
CS201
Revised
3(3-0)
None
Existing
Sukree Mongkol Ekpanyapong Matthew Dailey Chanathip Namprempre
3(3-0)
CS102, CS202
Revised
Sumanta Guha
3(3-0) 3(3-0) 3(3-0)
CS202 CS202 CS204, CS202
New Course New Course New Course
Phan Minh Dung Phan Minh Dung Sumanta Guha
3(3-0)
CS204
New Course
Phan Minh Dung
Prerequisites
Syllabus
UG106,CS101
New Course
Responsible Faculty Sumanta Guha Manukid Parnichkun Mongkol Ekpanyapong Phan Minh Dung Sanparith Marukatat
B. Computer Science Technical Electives Code Title Credits (L-P) CS411 Computer Graphics 3(1-2) CS412
Artificial Intelligence
3(3-0)
CS204, CS303
New Course
CS413
Microprocessor Systems
3(2-1)
None
New Course
CS414
Computer Security
3(3-0)
New Course
CS415
Machine Learning
3(3-0)
CS304 UG201, UG204
New Course
PART II-A Computer Science Core Course Outlines (Revised & New Courses Only)
CS101 Introduction to Computers and Programming 5(3-2)
Year I Semester I
Rationale: This course is a hands-on introduction to computers and programming. Its goal is to develop fundamental computer programming skills. It focuses on problem analysis, algorithm design, implementation in a modern high-level programming language, and systematic program testing. Students solve substantial programming assignments. Catalogue Description: Objects; decisions; iteration; arrays; class design; interfaces and polymorphism; inheritance; input/output and exceptions. Pre-Requisite(s): None Course outline: I.
Introduction 1. Parts of a computer 2. Programs and machine code 3. The Java programming language 4. Algorithms
II.
Objects 1. Variables and references 2. Methods 3. Class public interface and implementation
III.
Decisions 1. Conditional execution 2. Boolean expressions
IV.
Iteration 1. Control structures 2. Loop algorithms
V.
Arrays 1. Arrays and array lists 2. Array algorithms
VI.
Class Design 1. Discovering classes 2. Cohesion and coupling 3. Method design
4.
Scope
VII.
Interfaces and Polymorphism 1. Interfaces in Java 2. Interface polymorphism 3. Using polymorphic frameworks
VIII.
Inheritance 1. Class hierarchies 2. Subclass design and implementation 3. Inheritance polymorphism
IX.
Input/Output and Exceptions 1. File input and output 2. Exception types 3. Designing exceptions
Laboratory Sessions Students attend a weekly lab in which concepts introduced in lecture are reinforced through practical application in the lab. Students must complete a series of specific exercises in the lab. Before the following lab, students must complete additional homework exercises and programming assignments then submit a formal lab report describing their experiments and results. Textbook & Materials Cay S. Horstmann: Big Java, 4th (International) Edition, Wiley, 2010. References Jaime Niño and Frederick A. Hosch: Introduction to Programming and Object-Oriented Design Using Java, 3rd Editon,Wiley, 2008. Grading: Homework and lab work (30%), Quizzes and attendance (10%), Midterm (30%), Final Exam (30%) Instructor(s): Matthew Dailey
CS201 Computer Systems Architecture 3(3-0)
Year II Semester I
Rationale:This course is a practical introduction to computer systems hardware with emphasis both on hardware design methods as well as the programmer’s view of the hardware platform, particularly in optimizing and debugging running programs. Students solve substantial homework assignments involving programming and hardware design. A student who successfully fulfills the course requirements will have demonstrated 1) an understanding of how programs in a high-level programming language get translated into machine code; 2) a basic understanding of how a modern central processing unit can be built out of basic logic elements; 3) an understanding of how the computer hard-ware affects the execution of user-level and system-level programs; and 4) how to optimize a program in a high-level programming language to best take advantage of the computer’s architecture.
Catalogue Description: Information Representations; Program Representations; Logic Design; Processor Architecture; Memory Architecture; Program optimization. Pre-Requisite(s): CS101, Introduction to Computers and Programming Co-Requisite(s): EL203, Digital Logic Design Course Outline: I.
Introduction 1. Information representations 2. Program representations 3. Program execution on the hardware 4. The operating system
II.
Information Representations 1. Binary data in virtual memory 2. Integer representations and integer arithmetic 3. Floating point representations and floating point arithmetic
III.
Program Representations 1. IA32 instruction set architecture 2. C programs to IA32 3. x86-64 extensions 4. MIPS instruction set architecture
IV.
Logic Design 1. Review of digital logic circuits 2. Multiplexer and Demultiplexer
3. 4.
Memory circuits Arithmetic Logic Unit
V.
Processor Architecture 1. Data path 2. Control 3. Pipelining
VI.
Memory Architecture 1. Register file 2. Cache and memory organization 3. Virtual memory
VII.
Program Optimization 1. Limitations of compiler optimization 2. Measuring performance 3. Code motion 4. Loop unrolling 5. Instruction-level parallelism 6. Bottleneck analysis
Textbook & Materials Randal E. Bryant and David R. O'Hallaron: Computer Systems: A Programmer's Perspective, 2nd Edition, Prentice Hall, 2010. David A. Patterson and John L. Hennessy: Computer Organization and Design, 4th Edition Morgan Kauffman, 2008. References M.M. Mano: Computer System Architecture, 3rd Edition, Prentice Hall, 1993. C. Hamacher, Z. Vranesic and S. Zaky: Computer Organization, 5th Edition, Mc Graw Hill, 2002. Grading: Homework (10%), Project(30%) Midterm (30%), Final Exam (30%) Instructor(s): Mongkol Ekpanyapong
CS203 Operating Systems 3(3-0)
Year II Semester II
Rationale: This course is designed to give students a strong understanding of the concepts underlying modern multitasking operating systems, including processes, threads, interprocess communication, scheduling, memory management, file systems, input/output, distributed systems, and security. It covers the most important building blocks needed for the construction of complex, real-world software systems. Catalogue Description: Process Management; Memory Management; File Systems; Input/Output; Protection and Security; Distributed Systems; Future Trends. Pre-Requisite(s): CS201, Computer Systems Architecture Course outline: I.
Introduction 1. Purpose of operating systems 2. Evolution of operating systems 3. Exceptions and system calls
II.
Process Management 1. Processes 2. Threads 3. CPU scheduling 4. Synchronization 5. Deadlocks
III.
Memory Management 1. Allocation 2. Paging 3. Virtual memory
IV.
File Systems 1. The file concept 2. File and directory structure 3. File sharing 4. File system implementation
V.
Input/Output 1. I/O architecture 2. I/O protocols 3. Device drivers 4. Kernel services
VI.
Protection and Security 1. Protection domains 2. User authentication 3. Attacks 4. Contagions
VII.
Distributed Systems 1. Distributed system concepts 2. Networking technology 3. Distributed file systems 4. Process migration 5. Distributed coordination
VIII.
Future Trends
Textbook & Materials: Silberschatz, Galvin, and Gagne: Operating Systems Concepts, 8th Edition, Wiley, 2008. References: Randal E. Bryant and David R. O'Hallaron: Computer Systems: A Programmer's Perspective, 2nd Edition, Prentice Hall, 2010. Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman: Linux Device Drivers, 3rd Edition, O'Reilly, 2005. Robert Love: Linux Kernel Development, 3rd Edition, Addison-Wesley, 2010. Grading: Assignments 40%, Midterm 30%, Final Exam 30% Instructor(s): Matthew N. Dailey
CS204 Data Structures and Algorithms 3(3-0)
Year II Semester II
Rationale: This course provides an introduction to the data structures used in computer programming and to the design and mathematical analysis of algorithms to solve problems. There will be emphasis on implementation and multiple programming assignments. Catalogue Description: Fundamental Data Structures. Algorithm Analysis and O-notation. Searching and Sorting Algorithms. Recursive Algorithms. Algorithm Design Techniques. Graph Algorithms. Pre-Requisite(s): CS102, OOP & Web Programming; CS202-Discrete Mathematics Course Outline: I.
Fundamental Data Structures 1. Lists 2. Stacks 3. Queues and priority queues 4. Hash tables 5. Trees 6. Graphs
II.
Algorithm Analysis and O-Notation 1. Asymptotic Analysis 2. Recursion and Recurrences
III.
Searching and Sorting Algorithms 1. Quicksort 2. Sorting in linear time 3. Order statistics
IV.
Recursive Algorithms
V.
Algorithm Design Techniques 1. Greedy algorithms 2. Divide and conquer 3. Dynamic programming
VI.
Graph Algorithms 1. Shortest paths 2. Maximum flow
Textbook & Materials
Weiss: Data Structures and Algorithm Analysis in Java. 2nd Edition, Addison-Wesley, 2007 References: Cormen, Leiserson, Rivest and Stein: Introduction to Algorithms, 3rd Ed, MIT Press, 2009. Grading: Homework (30%), Midterm (30%), Final Exam (40%) Instructor(s): Sumanta Guha
CS301 Theory of Computation 3(3-0)
Year III Semester I
Rationale: To provide exposure to the theory of formal languages, automata, and complexity theory. Catalog Description: Finite Automata and Regular Expressions; Properties of Regular Sets; Context-Free Grammars; Pushdown Automata; Properties of Context-Free Languages; Turing Machines. Pre-requisite(s): None Course Outline: I.
Finite Automata and Regular Expressions 1. Finite state systems 2. Non-deterministic finite automata 3. Regular expressions
II.
Properties of Regular Sets 1. The pumping lemma for regular sets 2. Closure properties of regular sets 3. Decision algorithms for regular sets
III.
Context-Free Grammars, Pushdown Automata 1. Derivation trees 2. Simplication of context-free grammars 3. Normal forms 4. Pushdown automata 5. Properties of context-free languages: the pumping lemma for CFL's, closure Properties of CFL's, decision algorithms for CFL's
IV.
Turing Machines 1. Computable languages and functions 2. Church's hypothesis
Textbook & Materials: H.R. Lewis, C.H. Papadimitriou: Elements of the Theory of Computation, Prentice Hall, 2nd Edition, 1998. References: C. Calude: Theories of Computational Complexity, North Holland, 1988. M. Chandrasekaran, and K.L.P. Mishra:
Theory of Computer Science: Automata, Language and Computation, Prentice Hall, 1995. J.E. Hopcroft, J.D. Ullman: Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, Massachusetts, 1979. M. Sipser: Introduction to the Theory of Computation, Pws Pub Co, USA, 1996. Grading: Midterm (30%), Final Exam (70%). Instructor(s): Phan Minh Dung
CS303 Logic in Computer Science 3(3-0)
Year III Semester I
Rationale: This course provides an introduction to logic-based methods and their applications in programming and verification. Students develop understanding of the basics of formal methods, formal languages, and their applications in programming and verification. Catalog Description: Propositional Logic; First-Order Predicate Logic for Programming and Programming Logics. Pre-requisite(s): CS202, Discrete Mathematics Course Outline:
I. Propositional Logic 1. 2. 3. 4.
Formulas of propositional logic, boolean valuation and truth sets. Validity and inconsistency of propositional logic and normal forms. Resolution and natural deduction. Soundness and completeness in propositional logic.
II.
First-order Logic: Basics 1. Terms, formulas, free and bound variables and substitutions in first order predicate logic (FOPL). 2. Interpretations of formulas in FOPL and normal forms. 3. Natural deduction in FOPL. 4. Resolution in FOPL. 5. Soundness and completeness in FOPL.
III.
Logic for Programming and Programming Logics 1. SLD resolution and logic programming. 2. Hoare logic and program verification. 3. General structures
Textbook & Materials: M Huth and M. Ryan: Logic in Computer Science: Modelling and reasoning about Systems, Cambridge University Press, 2nd Edition, 2005. References: C.L Chang, R.C. Lee: Symbolic Logic and Mechanical Theorem Proving, Academic press, 1997. R. M. Smullyan: First-Order Logic, Dover Publication, 1995.
Grading System: Midterm (30%), Final Exam (70%). Instructor(s): Phan Minh Dung
CS304 Advanced Algorithms 3(3-0)
Year III Semester II
Rationale: In this course, students will learn the theory and design of algorithms. The course enables students to analyze the complexity of algorithms using different mathematical tools. Catalogue Description: Sorting & Order Statistics; Advanced Design Analysis and Techniques; Advanced Data Structures; Special Topics. Pre-Requisite(s): CS202, Discrete Mathematics; CS204, Data Structures and Algorithms Course Outline:
I.
Introduction 1. Growth function 2. Recurrences 3. Probabilistic analysis 4. Randomize algorithms
II.
Sorting and Order Statistics 1. Sorting in linear time 2. Medians and order statistics
III.
Advanced Design and Analysis Techniques 1. Amortized analysis
IV.
Advanced Data Structures 1. B-trees 2. Hash tables 3. Binomial heaps 4. Fibonacci heaps 5. Data structures for disjoint sets
V.
Special Topics 1. Polynomials and the FFT 2. Number-theoretic algorithms 3. String matching 4. Computational geometry 5. NP-completeness 6. Approximation algorithms
Textbook & Materials:
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein: Introduction to Algorithms, 2nd Edition, MIT Press, 2001. References: Levitin, Anany: Introduction to the Design & Analysis of Algorithms , 2nd Edition. Addison Wesley, 2007. Grading: Project + Assignments + Presentations (40%), Midterm (30%), Final exam (30%) Instructor(s): TBA
CS305 Programming Languages and Compilers 3(3-0)
Year III Semester II
Rational: To provide students with in-depth knowledge of the concepts that underlie programming languages, illustrating those concepts with examples from various languages. Language design and implementation and the ways in which they interact are explored together. Special emphasis is put on compilation and linking, as well as how data types are implemented in memory. Catalogue Description: Programming Language Syntax; Names, Scopes and Bindings; Semantic Analysis and Translation; Data Types; Control and Data Abstraction; Functional and Logic Programming Languages. Pre-Requisite(s): CS204, Data Structures and Algorithms Course Outline: I.
Introduction and an Overview 1. Compilation 2. Interpretation
II.
Programming Language Syntax 1. Regular expressions 2. Context-free grammars 3. Lexical analyzers, top-down and bottom-up parsers
III.
Names, Scopes and Bindings 1. Object lifetime 2. Scope rules 3. Overloading
IV.
Semantic Analysis and Translations 1. Symbol tables 2. Type checking 3. Language translators
V.
Data Types 1. Types systems 3. Record 4. Variants 5. Arrays 6. Strings 7. Recursive types
VI.
Control and Data Abstraction 1. Parameter passing 2. Encapsulation 3. Evaluation methods
VII.
Functional and Logic Programming Languages 1. LISP 2. Prolog 3. Java
Textbook & Materials: D. A. Watt, D. F. Brown, D. Brown, D. Watt: Programming Language Processors in Java: Compilers and Interpreters, Morgan Kaufmann Publishers, 2000. A. V. Aho, R. Sethi, J. D. Ullman: Compilers: Principles, Techniques, and Tools Reading, 2nd Edition , Addison-Wesley, 2006. References: R.W. Sebesta: Concepts of Programming Languages, 9th Edition, Addison-Wesley, 2010. A. W. Appel, J. Palsberg: Modern Compiler Implementation in Java, 2nd Edition, Cambridge University Press, 2002. T. Pittman, J. Peters, J. Peters: The Art of Compiler Design: Theory and Practice, Prentice Hall, 1991. Grading: Assignments/Projects (30%), Midterm (20%), Final Exam (50%) Instructor(s): Phan Minh Dung
PART II-B Technical Electives Course Outlines (Revised & New Courses Only)
CS411 Computer Graphics, 3(2-1)
Technical Elective
Rationale: To introduce computer graphics as a practical discipline. The underlying theory of computer graphics, as well as implementation algorithms, will be presented in the context of a modern industry-standard graphics programming language and interface. Instruction shall be in a laboratory setting with continuous hands-on implementation of concepts and emphasis on creating animated and interactive scenes. Catalogue Description: OpenGL Basics; Transformation, Animation and Viewing; Inside Animations: The Theory of Transformations; Advanced Animation Techniques; Convexity and Interpolation; Triangulation; Orientation; Modeling in 3D Space; Color and Light; Texture; Special Visual Techniques; Raster Algorithms; Special Topics. Pre-requisite(s): UG106, Calculus II; CS101, Introduction to Computers and Programming Course Outline I.
Open GL Basics 1. On to OpenGL and 3d computer graphics 2. OpenGL toolbox
II.
Transformation, Animation and Viewing 1. Modeling and Viewing transformations 2. Composite modeling transformations 3. Placing multiple objects 4. Model view matrix stack and isolating transformations 5. Animation 6. Selection and picking
III.
Inside Animations: The Theory of Transformations 1. Geometric transformations in 2-sapce 2. Geometric transformations in 3-space
IV.
Convexity and Interpolation 1. Convex combinations 2. Interpolation
V.
Triangulation 1. Steiner vertices and the quality of a triangulation 2. Triangulation in OpenGL and the trouble with non-convexity 3. OpenGL tessellation
VI.
Orientation 1. OpenGL procedure to determine front and back faces 2. Consistently oriented triangulation 3. Culling obscured faces
VII.
Modeling in 3D Space 1. Curves 2. Surfaces
VIII.
Color and Light 1. Vision and color models 2. Different lighting model 3. OpenGL light and material properties 4. Different types of lighting 5. Computing normals and lighting surfaces
IX.
Texture 1. Basics and the texture map 2. Filtering 3. Specifying texture coordinates 4. Lighting textures
X.
Special Visual Techniques 1. Blending and fog 2. Billboarding and antialiasing 3. Environment mapping
XI.
Raster Algorithms 1. Cohin-Sutherland line clipper 2. Sutherland-Hodgeman polygon clipper 3. DDA and Bresenham’s Line rasterizers 4. Scan-based polygon Rasterizer
Laboratory Sessions: Students are required to attend the lab sessions and will be assigned to do exercises, assignments and projects using OpenGL API with C++. Text book & Materials: Sumanta Guha: Computer Graphics through OpenGL: From Theory to Experiments, CRC Press, 2011. References
F.S. Hill: Computer Graphics using OpenGL, (2nd Edition), Prentice-Hall, 2001. M. Woo, J. Neider, T. Davis and D. Steiner: OpenGL Programming Guide, 3rd Edition, Addison-Wesley, 1999. E. Angel: Interactive Computer Graphics: A Top-Down Approach with OpenGL, Addison-Wesley, 2000. J.D. Foley, A. van Dam, S.K. Feiner, and J.F. Hughes: Computer Graphics Principles and Practice, 2nd Edition in C, Addison-Wesley, 1996.
Grading: Assignments/projects/presentations (40%), Midterm (30%), Final Exam (30%) Instructor(s): Sumanta Guha
CS412 Artificial Intelligence, 3(3-0)
(Final Year) Technical Elective
Rationale: Artificial intelligence (AI) is the branch of computer science that is concerned with the automation of intelligent behavior. This course provides a comprehensive exposure to the paradigms and techniques necessary for study and research in artificial intelligence. Emphasis is placed on the historical evolution and the emerging trends in technology. Catalogue Description: Knowledge Representation; Nets and Search; Reasoning and Planning; AI Programming; Knowledge Discovery; Distributed Intelligence and Agents; Turing Test and the Ontology of Intelligence; Cellular Automata. Pre-requisite(s): CS204, Data Structures and Algorithms Course Outline I.
Introduction 1. Definition of AI, historical development of AI 2. Applications of AI 3. Ai techniques
II.
Knowledge Representation 1. Semantic nets 2. State-space representation 2. Problem-reduction representation
III.
Nets and Searches 1. Blind search 2. Heuristic search 3. Optimal search 4. Adversarial search
IV.
Reasoning and Planning 1. Rules and rule chaining 2. Frames, inheritance and commonsense 3. Numeric, symbolic constraints and propagation 2. Logic and resolution proof 3. Planning
V.
AI Programming 1. LISP 2. Prolog 2. Web-programming
VI.
Knowledge Discovery, Distributed Intelligence, and Agents
VII.
Turing Test and the Ontology of Intelligence
VIII.
Cellular Automata 1. Qualitative treatment of reproducing automata 2. Artificial life 3. Application
Text book & Materials: S.J. Russell and P. Norvig: Artificial Intelligence, A Modern Approach, Prentice Hall, 3rd Edition, 2010 References: N.J. Nilsson: Artificial Intelligence, A New Synthesis, Morgan Kaufmann, 1998 S. Wolfram: A New Kind of Science, Wolfram Media, Inc, 2002. Grading: Assignments/projects (20%), Midterm (40%), Final Exam (40%) Instructor(s): TBA
CS413 Microprocessor Systems, 3(2-1)
Technical Elective
Rationale: The objective of the course is to give students an insight into architecture, programming and interfacing of microprocessors. System integration concepts through support chips are studied. Catalogue Description: Microcomputer Structure and Operations; Microprocessor and Memory; Assembly Language Programming; Bus System; Microprocessor Interfacing, Tiny Operating Systems for Microcontroller; Microcontroller Networking; Application Examples; New Development in Microprocessor Technology. Pre-requisite(s): CS201, Computer Systems Architecture Course Outline I.
Microcomputer Structure and Operations 1. Basic microcomputer elements 2. Typical microcomputer structure 2. CPU 3. Memory system 4. Input-output
II.
Microprocessors and Memory 1. Typical 8, 16 and 32-bit microprocessors 2. 68HC11 microprocessor specification and Technologies
III.
Assembly Language Programming I 1. Programming model of 68HC11 2. Fetch, execute operation of CPU 3. Instruction set
IV.
Assembly Language Programming II 1. Addressing modes 2. Basic operations 3. Microprocessor arithmetic 4. Program flow control using looping and branching 5. Interrupts
V.
Bus System 1. System bus structure 2. Bus operation 3. Timing and control 4. Address decoding
VI.
Microprocessors Interfacing I 1. Interfacing concepts 2. Parallel input output 3. Direct memory access 4. The serial subsystems
VII.
Microprocessors Interfacing II 1. Programmable timer operations 2. Analog converter subsystems
VIII.
Microcontroller Networking
Lab Sessions: Students are required to attend the lab sessions and will be assigned to do exercises according to the instruction of the instructor. Lab sessions will cover below topics: 1. Assembly languages 2. Interrupt service routine 3. Microprocessor interfaces 4. Timer / Watchdog 5. Network interfaces Text book & Materials: W. Valvano: Embedded Microcomputer Systems, 2nd Edition, CL Engineering, 2006. R.J. Tocci, F.J. Ambrosio: Microprocessors and Microcomputers; Hardware and Software, 6th Edition, Prentice Hall, 2002. Grading: Lab/Assignments (25%), Midterm (30%), Final Exam (45%). Instructor(s): TBA
CS414 Computer Security 3(3-0)
Technical Elective
Rationale: To provide students with key knowledge about the nature and challenges of computer security, especially the relationship between policy and security, the role and application of cryptography, the mechanisms used to implement policies, the methodologies and technologies for assurance, vulnerability analysis and intrusion detection and building secure systems. Catalogue Description: Cryptography; Access Control; Security Protocols; Network Security Practice; System Security; Security Management. Pre-requisite(s): CS304, Advanced Algorithms Course Outline: I.
Introduction
II.
Cryptography 1. Conventional encryption 2. public key encryption and hash functions 3. Digital signature
III.
Access Control 1. Security models and access policies 2. Access control in operating systems 3. Access control in distributed system: credentials and certificates, trust management, trust negotiations.
IV.
Security Protocols 1. Key exchange 2. Authentication 3. Authentication and key exchange 4. Electronic payment protocols: Nonrepudiation, fairness, abuse-freeness, multiparty protocols. 5. Formal analysis
V.
Network Security Practice 1. Electronic mail security 2. Ip security 3. Web application security
VI.
System Security 1. Intruder prevention, virus protection 2. Firewalls
VII.
Security Management
Textbook & Materials: Dieter Gollmann: Computer Security, 2nd Edition, Wiley, 2006. Grading: Assignment and projects (30%), Midterm (20%), Final Exam (50%) Instructor(s): TBA
CS415 Machine Learning, 3(3-0)
Technical Elective
Rationale: Intelligent systems, such as speech recognition systems, document classification systems, and character recognition systems, are concerned with the transformation of input data (e.g. speech, documents, or bitmaps) into desired output data (words, document classes, or characters, respectively). This transformation function must be carefully constructed and its parameters must be properly adjusted. Machine learning is concerned with the automatic learning of these parameters from training examples. It draws heavily on computer science, algorithms and data structures, probability, statistics, and optimization. This course covers fundamental concepts as well as state of the art algorithms in machine learning. Students put the theory to practice in homework assignments and a project. Catalog Description: Probability Methods; Linear classifiers; Support Vector Machines; Clustering and Mixture Models; Subspace Projection; Sequential Data; Graphical Models. Pre-requisite(s): UG201, Linear Algebra; UG204, Probability and Statistics Course Outline I.
Introduction 1. Examples of intelligent systems 2. Probability theory review 3. K-nearest neighbors
II.
Probabilistic Methods 1. Bayesian classifiers 2. The Gaussian model 3. Maximum likelihood estimation 4. Maximum a posteriori classification
III.
Linear Classifiers 1. Exponential family 2. Minimum squared error training 3. Ho-Kashyap algorithm 4. Perceptron algorithm 5. Multiclass classification
IV.
Support Vector Machines 1. Introduction to statistical learning theory 2. Margin of a linear classifier 3. Optimal separating hyperplane 4. Dual problem formulation
V.
Clustering and Mixture Models
1. 2. 3. 4.
Hierarchical clustering K-means clustering Mixture of Gaussians Expectation-Maximization (EM) algorithm
VI.
Subspace Projection 1. Principal component analysis (PCA) 2. Multidimensional scaling (MDS) 3. Linear discriminant analysis (LDA) 4. Nullspace LDA 5. Independent component analysis (ICA)
VII.
Sequential Data 1. Edit distance 2. Markov models 3. Hidden Markov models 4. Viterbi algorithm
VIII.
Graphical Models 1. Bayesian networks 2. Conditional independence 3. Markov random fields 4. Inference in graphical models
Textbooks: Ethem Alpaydin: Introduction to Machine Learning, 2nd Edition, The MIT Press, 2010. Richard O. Duda, Peter E. Hart, and David G. Stork: Pattern Classification, 2nd Edition, Wiley-Interscience, 2000. Grading: Assignments and project (40%), Midterm (30%), Final Exam (30%). Instructor(s): Sanparith Marukatat