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 2 nd year with subject number 02.
PART I
List of New, Revised and Approved Courses
A.
Code
CS101
Computer Science Core Courses (Required)
Title
Credits
(L-P)
Introduction to Computers and Programming
5(3-2)
CS102 OOP & Web Applications
CS201
Computer Systems
Architecture
CS203 Operating Systems
4(2-2)
3(3-0)
3(3-0)
Prerequisites
None
CS101
CS101
CS201
Syllabus
Revised
Existing
Revised
Revised
CS202 Discrete Mathematics 3(3-0) None Existing
CS204
CS301
CS303
Data Structures and
Algorithms
Theory of Computation
Logic in Computer Science
3(3-0)
3(3-0)
3(3-0)
3(3-0) CS304 Advanced Algorithms
CS305
Programming Languages and
Compilers
B.
Code
Computer Science Technical Electives
Title
3(3-0)
Credits
(L-P)
CS411 Computer Graphics 3(1-2)
CS412 Artificial Intelligence 3(3-0)
CS102, CS202
CS202
CS202
CS204, CS202
CS204
Prerequisites
UG106,CS101
CS204, CS303
Revised
New Course
New Course
New Course
New Course
Syllabus
New Course
New Course
CS413 Microprocessor Systems
CS414 Computer Security
CS415 Machine Learning
3(2-1)
3(3-0)
3(3-0)
None
CS304
UG201,
UG204
New Course
New Course
New Course
Responsible
Faculty
Matthew Dailey
Sukree
Mongkol
Ekpanyapong
Matthew Dailey
Chanathip
Namprempre
Sumanta Guha
Phan Minh Dung
Phan Minh Dung
Sumanta Guha
Phan Minh Dung
Responsible
Faculty
Sumanta Guha
Manukid
Parnichkun
Mongkol
Ekpanyapong
Phan Minh Dung
Sanparith
Marukatat
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.
3.
Cohesion and coupling
Method design
4. Scope
VII.
Interfaces and Polymorphism
1.
2.
3.
Interfaces in Java
Interface polymorphism
Using polymorphic frameworks
VIII.
Inheritance
1. Class hierarchies
2.
3.
Subclass design and implementation
Inheritance polymorphism
IX.
Input/Output and Exceptions
1.
2.
3.
File input and output
Exception types
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, 4 th (International) Edition, Wiley, 2010.
References
Jaime Niño and Frederick A. Hosch:
Introduction to Programming and Object-Oriented Design Using Java, 3 rd 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.
Memory circuits
4.
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, 2 nd Edition, Prentice Hall, 2010.
David A. Patterson and John L. Hennessy:
Computer Organization and Design, 4 th Edition Morgan Kauffman, 2008.
References
M.M. Mano:
Computer System Architecture, 3 rd Edition, Prentice Hall, 1993.
C. Hamacher, Z. Vranesic and S. Zaky:
Computer Organization, 5 th 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, 8 th Edition, Wiley, 2008.
References:
Randal E. Bryant and David R. O'Hallaron:
Computer Systems: A Programmer's Perspective, 2 nd Edition, Prentice Hall, 2010.
Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman:
Linux Device Drivers, 3 rd Edition, O'Reilly, 2005.
Robert Love:
Linux Kernel Development, 3 rd 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. 2 nd Edition, Addison-Wesley, 2007
References:
Cormen, Leiserson, Rivest and Stein:
Introduction to Algorithms, 3 rd 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.
3.
Non-deterministic finite automata
Regular expressions
II.
Properties of Regular Sets
1.
2.
The pumping lemma for regular sets
Closure properties of regular sets
3. Decision algorithms for regular sets
III.
Context-Free Grammars, Pushdown Automata
1. Derivation trees
2.
3.
4.
5.
Simplication of context-free grammars
Normal forms
Pushdown automata
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.
2.
Computable languages and functions
Church's hypothesis
Textbook & Materials:
H.R. Lewis, C.H. Papadimitriou:
Elements of the Theory of Computation, Prentice Hall, 2 nd 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, 2 nd 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.
2.
3.
4.
Growth function
Recurrences
Probabilistic analysis
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.
2.
3.
4.
5.
B-trees
Hash tables
Binomial heaps
Fibonacci heaps
Data structures for disjoint sets
V.
Special Topics
1.
2.
3.
4.
5.
6.
Polynomials and the FFT
Number-theoretic algorithms
String matching
Computational geometry
NP-completeness
Approximation algorithms
Textbook & Materials:
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein:
Introduction to Algorithms, 2 nd Edition, MIT Press, 2001.
References:
Levitin, Anany:
Introduction to the Design & Analysis of Algorithms , 2 nd 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
Interpretation 2.
II.
Programming Language Syntax
1. Regular expressions
2.
3.
Context-free grammars
Lexical analyzers, top-down and bottom-up parsers
III.
Names, Scopes and Bindings
1.
2.
Object lifetime
Scope rules
3. Overloading
IV.
Semantic Analysis and Translations
1. Symbol tables
2.
3.
Type checking
Language translators
V.
Data Types
1.
3.
Types systems
Record
4.
5.
6.
7.
Variants
Arrays
Strings
Recursive types
VI.
Control and Data Abstraction
1. Parameter passing
2.
3.
Encapsulation
Evaluation methods
VII.
Functional and Logic Programming Languages
1. LISP
Prolog
Java
2.
3.
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, 2 nd Edition , Addison-Wesley,
2006.
References:
R.W. Sebesta:
Concepts of Programming Languages, 9 th Edition, Addison-Wesley, 2010.
A. W. Appel, J. Palsberg:
Modern Compiler Implementation in Java, 2 nd 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, 3 rd 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, 2 nd 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, 3 rd 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.
5.
Program flow control using looping and branching
Interrupts
V.
Bus System
1.
System bus structure
2.
Bus operation
3.
4.
Timing and control
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, 2 nd Edition, CL Engineering, 2006.
R.J. Tocci, F.J. Ambrosio:
Microprocessors and Microcomputers; Hardware and Software, 6 th 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.
2.
3.
Security models and access policies
Access control in operating systems
Access control in distributed system: credentials and certificates, trust management, trust negotiations.
IV.
Security Protocols
1.
2.
Key exchange
Authentication
3.
4.
5.
Authentication and key exchange
Electronic payment protocols: Nonrepudiation, fairness, abuse-freeness, multiparty protocols.
Formal analysis
V.
Network Security Practice
1. Electronic mail security
2.
3.
Ip security
Web application security
VI.
System Security
1. Intruder prevention, virus protection
2. Firewalls
VII.
Security Management
Textbook & Materials:
Dieter Gollmann:
Computer Security, 2 nd 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.
Hierarchical clustering
2.
K-means clustering
3.
Mixture of Gaussians
4.
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, 2 nd Edition, The MIT Press, 2010.
Richard O. Duda, Peter E. Hart, and David G. Stork:
Pattern Classification, 2 nd Edition, Wiley-Interscience, 2000.
Grading: Assignments and project (40%), Midterm (30%), Final Exam (30%).
Instructor(s): Sanparith Marukatat