UG-CS-Outline - Asian Institute of Technology

advertisement

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 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

Download