Bachelor of Engineering in Software Engineering
What is Software Engineering?
Software engineering (SE) is an engineering discipline concerning all aspects of software production, including software analysis, design, development, testing, and deployment. SE requires profound abstract and logical thinking and the application of mathematics, logic, and computer science in order to produce efficient and reliable software with the available resources.
Why study Software Engineering?
It is hard to overstate the ubiquity of software nowadays. Every computer system is governed by software. Almost every human activity involves software in some form. Undoubtedly software industry is one of the largest and fastest growing industries in the world. Consequently, skilled software engineers are in high demand worldwide. As software becomes more and more complex, the programming skills and the rudimentary knowledge of software engineering that students obtained from traditional computer science and computer engineering curriculums are insufficient. The development of real-world software applications requires the skills in analysing the problem domain and the customer's requirement and the skills in designing the software from the topmost level down to the implementation level. Moreover, a software engineer must be able to use proper tools, techniques, and methodologies in order to produce the software in an efficient manner.
Careers in Software Engineering
There are abundant career opportunities for graduates from the software engineering program.
- Software engineers, software architects, and software developers on various platforms, including enterprise software, web applications, mobile applications, games, embedded applications, etc.
- Analysts and designers of IT systems, IT consultants
- Software enterpreneurs
With strong foundation in computer science, mathematics, and software engineering principles, graduates of the SE program may continue their studies at postgraduate level in various software engineering or computing related fields in universities worldwide.
B.Eng. in Software Engineering Program
The B.Eng. in Software Engineering Program is a 4-year undergraduate program aiming at producing graduates who are capable of working confidently in the international software industry as well as pursuing postgraduate study and research in leading universities worldwide. The curriculum of the program is designed in accordance with the recent ACM/IEEE guideline for undergraduate curriculum in software engineering.
Program Structure
In the first two years, the students will study basic courses in mathematics, computer science, and software engineering and develop their programming skills using various programming languages (including Python, C, C++, Java, etc.). Also, the students will be trained to communicate correctly and effectively. At the end of Year 2, every student is required to undertake an internship in a software company for 8 - 10 weeks. All the courses in the first two years will be held at the International College in the Bangkok Campus of KMITL.
In Year 3 and Year 4, the students will learn advanced topics in software engineering and important software development methodologies that are used in practice. The students will have opportunities to the apply the knowledge and skills they have acquired to conduct a team software project in Year 3 and a one-year research project in Year 4. Students entering Year 3 are required to take one of the following specializations:
- Enterprise Software Engineering - Specializing in large and complex software for enterprises and distributed systems
- Internet of Things - Specializing in the Internet of Things, including embedded and mobile systems
- Intelligent Systems - Specializing in applications of artificial intelligence and data science, including machine learning and Big Data
The study plans for these three specializations differ in some required courses. Also the students are recommended to toe work on their senior projects that utilize the knowledge of their respective specializations.
The students joining the KMITL-Glasgow Double-Degree Program will take courses in Years 3 and 4 in the Software Engineering program at the School of Computing Science, University of Glasgow.
Related documents
- Program Specification (TQF2) - B.Eng. in Software Engineering (2017 Revision)
- Program Specification (TQF2) - B.Eng. in Software Engineering (2011 Revision)
KMITL-Glasgow Double-Degree Program in Software Engineering
The KMITL-Glasgow Double-Degree Program in Software Engineering is a collaboration between KMITL and the University of Glasgow, UK. The program enables qualified students who have completed Year 2 in the SE program at the International College to enter Years 3 and 4 of the Software Engineering program at the University of Glasgow's School of Computing Science. At Glasgow, the student will have an opportunity to study with world-renowned academics, as well as working on team projects with multi-national talents. This is an excellent opportunity for the students who wish to gain studying and living experience in the UK.
Founded in 1451, the University of Glasgow (Glasgow, United Kingdom) is one of the oldest universities in the world, and has been ranked as one of the world's top 100 universities. With its long history in advanced research, the University of Glasgow has been home to six Nobel-prize winners. The University's School of Computing Science has consistently been ranked in the UK's top 10 in computing. Glasgow's Software Engineering program is one of the first programs in the world that specialize in software engineering and is highly respected by software industry.
Requirements for the students who wish to join this double-degree program:
- Completed Year 2 of the B.Eng. in Software Engineering program with GPA of 3.0 or more
- IELTS score of 6.5 or more, with no subtest below 6.0
Students who have completed Year 4 of this double-degree program will be awarded a BSc Honours degree in Software Engineering from the University of Glasgow and a B.Eng. degree in Software Engineering from KMITL. Students who maintain good academic records during their studies at the University of Glasgow will be eligible to transfer to a one-year Master program in Software Engineering at the end of Year 4 and graduate with the Master of Science degree in Software Engineering awarded by University of Glasgow at the end of Year 5.
The tuition fee rates are as follows*:
- 2 years at KMITL, Tuition fee : THB 180,000 per year
- 2 years at Glasgow, Tuition fee with scholarship : GBP 17,536 per year
* Rates as of Academic Year 2020. Every student joining the double-degree program is entitled to the KMITL - Glasgow Undergraduate Scholarship which provides 20% reduction from the full tuition-fee rate for international students at Glasgow University.
Applications for KMITL-Glasgow Double-Degree Program in Software Engineering are made when students finish the second semester of Year 2 of their study in the SE program. Second-year SE students who meet the requirements above and wish to apply need to inform the SE program director before the end of Year 2 Semester 2 and submit their applications on the UCAS system no later than 30 June (of the year they are planning to enter UoG) at https://www.ucas.com/students.
Application Guidance
- On the UCAS website above, choose Undergraduate 20xx entry, where 20xx is the year you are planning to enter UoG, and then select "Apply". This should lead you to the application system. You first need to register. Make sure you provide an email address that you check regularly (could be @kmitl.ac.th address or your personal email address). Your given names and your last name that you enter when registering should be spelled exactly as written in your passport. If there is any field in the registration form that is unclear, click on ? or "Help" to see an explanation. After you have registered, you will receive an email from UCAS asking you to verify your email address. You should follow the instruction in the email.
- After you have registered, you can then login to start filling in your application. When asked how you are applying, you should specify that you apply as "individual" (thus a "buzzword" is not required).
- When asked which program to apply, choose BSc (Hons) Software Engineering program at the University of Glasgow (UCAS G430) for entry into Year 3 of the program.
- You must include a short personal statement. The statement should include your reason for choosing software engineering as your program of study, your reason for choosing the KMITL-Glasgow Double-Degree Program in Software Engineering, and your future plan after your graduate.
- Reference letters are not needed.
- When you submit your application, you will be asked to pay the application fee using a credit card. You can ask someone else to pay for you using their credit card. If the credit card you use does not work, try another one.
- After you have submitted your UCAS application, notify the SE program director that your have done so within 30 June. Also send a copy of your IELTS score report to the program director. The program director will forward your IELTS score report together with your transcript to the admissions office at UoG. There is no need to send us your transcript as we can obtain it by ourselves.
- If you satisfy all the requirements, UoG will notify you with an unconditional offer via email. If not, UoG will send you a conditional offer via email, detailing the conditions that you need to satisfy and the deadline (e.g. IELTS score or final GPA for Year 2 at KMITL). You must accept the offer within the deadline stated in your offer.
- Once you have been given and accepted an unconditional offer, UoG will start preparing a CAS statement for you. UoG will send you a draft of your CAS statement for you to check for correctness. Your CAS statement is a summary of your personal information, educational records, and your program of study in the UK. The CAS statement will be stored in an online server accessible by UK universities and the UK immigration department (called the Home Office). Your CAS statement will be read by the visa staff when you apply for a visa. You should check that all the information is correct and, in particular, the tuition fee listed in the statement is the 20%-discounted rate. Inform UoG if any correction is needed.
- Once you have confirmed that the draft of your CAS statement is correct, UoG will email you a copy of your final CAS statement. You should print it out and later include it with your visa application.
- During the same time after you accepted the unconditional offer, you will receive some information from UoG's student services regarding the registration, student accommodation, internet account, etc via email. You can just response to their request. When you are asked to register for courses in the upcoming semester, you can ignore that. You are to do the course registration when you are in the UK. Your advisor at UoG will help you with the course registration when you arrive at UoG.
- Regarding the accommodation, UoG will send you an application form for applying for a university accommodation. There is a wide range of options. You can also apply for a private student accommodation. For the latter, you can do so by yourself on the web any time (even before you receive an offer). You can consult the SE students currently studying at Glasgow for advice accommodations. For a private accommodation, you could apply even before you receive an offer from UoG.
- After your have received a copy of your final CAS statement in Step 10 above, you can start applying for your UK visa. See below for the visa application guidance.
- You should plan to arrive at Glasgow at the beginning of the orientation week, which is typically on the Monday in the middle of September, or before that.
If you have any question or problem on the KMITL-Glasgow Double-Degree Program in Software Engineering, please contact the SE program director, Asst.Prof.Dr. Visit Hirankitti (visit.hi@kmitl.ac.th).
UK Visa Guidance
The type of the visa that you should apply is called "General student visa (Tier 4)". You can apply for the visa only after you have received your final CAS statement from UoG. But there are some necessities that you should prepare even before starting your visa application process.
- Make sure you have your passport that is valid for 3 more years or longer.
- Prepare a sufficient amount of money in your parents' bank account. The money must be in the account for at least 28 days when you apply for a visa. Bank accounts belonging to someone else other than yourself or your parents are unacceptable. Only a bank account where the money can be readily withdrawn at any time can be used to support your application. The minimum amount of money required in the bank account is "Annual tuition fee listed on CAS statement in GBP" + ("Monthly living cost of 1,015 GBP/month" x 9 months).
- Have a Tuberculosis test at an approved testing center to obtain a medical certificate. See https://www.gov.uk/government/publications/tuberculosis-test-for-a-uk-visa-clinics-in-thailand/tuberculosis-testing-in-thailand
- Obtain the address of your accommodation in the UK.
Note that you need not purchase your flight ticket before applying for your visa, but you should have a travel plan, i.e. which day your plan to arrive in the UK.
Guidance on how to apply for this type of visa can be found at https://www.gov.uk/tier-4-general-visa. Below is an overview of the UK visa application procedure.
- Fill in and submit the online application form.
- Upload all the required supporting documents. Upload the original copies. Translations are not needed.
- Pay the visa application fee.
- Print out the completed application form.
- Make a reservation for a visit to the UK visa application center.
- Bring your application form, your current passport and all the old ones, your medical certificate, and the original version of all your supporting documents and go to the visa application center.
- At the UK visa application center, have your documents checked and your fingerprints recorded.
- Obtain the visa collection slip and the expected visa collection date.
If there is no problem with your application, the processing time for General student visa (Tier 4) is normally 2-3 weeks after your visit to the UK visa application center.
SE Years 1 and 2
Credits: 3 (3-0-6)
Description:
This course trains the students’ skills of English language for academic purposes, covering all essential skills for studying at university (reading, writing, listening, and speaking). The students taking this course are expected to have their English language proficiency at the level equivalent to the IELTS (Academic) score of 5.5. By the end of the course, they are expected to be at the level equivalent to IELTS (Academic) score of 6.0 or higher.
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (2-2-5)
Description:
This course teaches the students to understand basic principles of electricity and electronics. Topics studied include basic concepts of electric circuits, resisters, capacitors, inductors, solid-state devices, diode and rectifiers, and transistors.
Prerequisite: None
Lecturer: Dr.Montri Phothisonothai
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This is an introductory course in computer programming using the C language. Emphasis is placed on developing the students’ abilities in the design and implementation of algorithms. The course describes the fundamentals of program design and implementation in C, variables and data types, input and output statements, conditional statements, loop statements, modularity, parameter passing, pointers, arrays and complex arrays, strings, user-defined types, file processing, and program testing and debugging techniques.
Prerequisite: None
Lecturer: Dr. Ukrit Watchareeruetai
Moodle Link: None
Credits: 1 (0-3-2)
Description:
Laboratory exercises supplementing 13016235 C Programming
Prerequisite: None
Lecturer: Dr. Ukrit Watchareeruetai
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Prerequisite: None
Lecturer: Asst.Prof.Dr. Ronnachai Tiyarattanachai
Moodle Link: None
Credits: 4 (3-2-7)
Description:
This course provides an introduction to basic components of a computer and computer operation, the history and the evolution of computers, an introduction to a programming language, basics of computer programming using structured and object-oriented approaches, and some examples of computer programming to serve various purposes.
Prerequisite: None
Lecturer: Assoc.Prof.Dr. Veera Boonjing Asst.Prof.Dr. Visit Hirankitti
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a study of the nature of logic and logical reasoning, covering the following topics: arguments, syntax and semantics of propositional logic, validity and equivalence in propositional logic, truth tables, basic proof theory for propositional logic, syntax and semantics of first-order logic, validity and equivalence in first-order logic, basic proof theory for first-order logic, limitations of first-order logic, and applications of logic for problem solving.
Prerequisite: None
Lecturer: Asst.Prof.Dr. Pratoom Angurarohita Dr. Natthapong Jungteerapanich
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course trains the students’ skills of English language for academic purposes, covering all essential skills for studying at university (reading, writing, listening, and speaking). The students taking this course are expected to have their English language proficiency at the level equivalent to the IELTS (Academic) score of 6.0. By the end of the course, they are expected to be at the level equivalent to IELTS (Academic) score of 6.5 or higher.
Prerequisite: Academic English 1
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Prerequisite: None
Lecturer: Dr. Prakash Chanchana
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers the following topics: basic theory of switching circuit, Boolean algebra, truth table, Boolean equation reduction by Karnaugh mapping and Quine–McCluskey method, Venn diagram, logic gates, flip-flops, counters, shift registers, and combinational and sequential circuit design.
Prerequisite: None
Lecturer: Asst.Prof.Dr. Chaiwat Nuthong
Moodle Link: None
Credits: 1 (0-3-2)
Description:
Practical study related to 13016204 Digital Circuit and Logic Design
Prerequisite: None
Lecturer: Asst.Prof.Dr. Chaiwat Nuthong Dr.Churirat Boonkhun
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This is an introductory course in discrete mathematics, covering the following topics: basic set theory, theory and techniques of counting, properties of integers, mathematical induction, recursive definitions, recurrent equations, sequences and summations, relations, graphs, and trees.
Prerequisite: None
Lecturer: Assoc.Prof.Dr. Veera Boonjing
Moodle Link: None
Credits: 3 (3-0-6)
Description:
An elective course in Humanity
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces object-oriented concepts and methodology and studies object-oriented programming using C++. Topics covered include objects, classes, encapsulation, inheritance, multiple inheritance, polymorphism, abstract classes, static class members, object construction and destruction, namespaces, function overloading, function overriding, exception handling, template classes, and container classes. This course also covers basic techniques for testing and debugging object-oriented programs.
Prerequisite: C Programming
Lecturer: Dr. Ukrit Watchareeruetai
Moodle Link: None
Credits: 1 (0-3-2)
Description:
Practical study related to 13016209 Object-Oriented Concepts and Programming
Prerequisite: C Programming
Lecturer: Dr. Ukrit Watchareeruetai
Moodle Link: None
Credits: 3 (3-2-7)
Description:
This course covers advanced concepts of object-oriented programming, with emphasis on principles and practices for the design and implementation of large and complex programs. The course covers the following topics: design and implementation principles to support software reuse, basic design patterns, exception handling, event-driven programming, development of programs with graphical user interface, multithread programming, and the use of tools to assist debugging and testing programs. Students are encouraged to learn to utilize classes from standard or third-party libraries by studying from the documentation of those libraries.
Prerequisite: Object-Oriented Concepts and Programming
Lecturer: Assoc.Prof.Dr. Veera Boonjing
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies the basics of microcomputer architectures and instruction execution. The topics covered include microprocessor structures, registers, bus technology, memory hierarchy, main memory, cache memory, storage devices, and peripheral devices. The course also covers assembly language programming, including instruction sets, addressing modes, and instruction decoding.
Prerequisite: Digital Circuit and Logic Design
Lecturer: Asst.Prof.Dr. Surin Kittitornkun
Moodle Link: None
Credits: 1 (0-3-2)
Description:
Practical study related to 13016207 Computer Organization and Assembly Language
Prerequisite: Digital Circuit and Logic Design
Lecturer: Asst.Prof.Dr. Chaiwat Nuthong Asst.Prof.Dr. Surin Kittitornkun
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course studies basic data structures and their related operations as well as an introduction to the analysis of algorithms. Topics include arrays, stacks, queues, lists, hash tables, trees, heaps, graphs, time and space complexity analysis of algorithms, asymptotic notations, iterative and recursive algorithms, and algorithms for sorting and searching and their complexity.
Prerequisite: Object-Oriented Concepts and Programming
Lecturer: Asst.Prof.Dr. Kulwadee Somboonviwat
Moodle Link: None
Credits: 1 (0-3-2)
Description:
Practical study related to 13016212 Data Structures and Algorithms
Prerequisite: Object-Oriented Concepts and Programming
Lecturer: Asst.Prof.Dr. Kulwadee Somboonviwat Dr. Natthapong Jungteerapanich
Moodle Link: None
Credits: 3 (3-0-6)
Description:
An elective course in Social Study
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Prerequisite: None
Lecturer: Dr. Prakash Chanchana
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a study and practice of academic writing skills in English language. By the end of the course, the students are expected to be able to compose clear and effective technical writings, including technical essays, reports, and articles, with correct and appropriate usage of the language.
Prerequisite: Academic English 2
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a study of theories and techniques of algorithm design and analysis. For algorithm design, students will study a wide range of algorithmic solutions to problems from various application areas, including searching, sorting, optimization, and important problems in graph theory. In addition, important design paradigms will be covered including greedy methods, divide-and-conquer methods, dynamic programming, backtracking, and branch-and-bound methods. For algorithm analysis, students will practice analyzing the execution time and the resource consumption of algorithms, and related mathematical techniques.
Prerequisite: Data Structures and Algorithms
Lecturer: Dr. Natthapong Jungteerapanich
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides an overview of computer networks and communications, covering the following topics: computer network reference models such as OSI and TCP/IP, basics of wired and wireless digital communications, concepts of peer-to-peer communications, LAN and WAN (such as Ethernet and ATM), network layer design issues, routing algorithms, congestion control methodologies, standards and examples of network protocols, transport layer design issues, quality of services, standards and examples of transport protocols (such as TCP and UDP), network security, and computer network applications (such as the Internet, emails, World Wide Web, and the voice and video communications over computer networks).
Prerequisite: Data Structures and Algorithms
Lecturer: Dr. Pipat Sookavatana
Moodle Link: None
Credits: 1 (0-3-2)
Description:
Practical experiments related to 13016241 Computer Networks and Communications
Prerequisite: Data Structures and Algorithms
Lecturer: Dr. Pipat Sookavatana
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies basic concepts of information systems and database systems, with emphasis on the study of relational database systems. Topics include basic concepts of information systems and database systems, types of data models, relational database design, entity-relationship models, normal forms of relational databases, and database query languages.
Prerequisite: Data Structures and Algorithms
Lecturer: Assoc.Prof.Dr. Suphamit Chittayasothorn
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Prerequisite: Calculus 1
Lecturer: Asst.Prof.Dr. Chivalai Temiyasathit Asst.Prof.Dr. Lily Ingsrisawang
Moodle Link: None
Credits: 0 (0-3-0)
Description:
This course requires the students to attend seminars, lectures, and/or talks, given by invited speakers who are well-known in the software industry or in research and development in computing-related areas. The students are required to submit a written report summarizing what they have learned from each seminar.
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies important principles and concepts of software engineering, as well as an overview of software development processes. Topics include software development processes, requirements and specifications of software, structured and object-oriented software design, software verification and validation, software project management, software evolution and maintenance, and computer-aided software engineering (CASE) tools.
Prerequisite: Data Structures and Algorithms
Lecturer: Asst.Prof.Dr. Visit Hirankitti
Moodle Link: None
Credits: 1 (0-3-2)
Description:
Practical study related to 13016214 Software Engineering Principle
Prerequisite: Data Structures and Algorithms
Lecturer: Asst.Prof.Dr. Visit Hirankitti
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a study and practice of technical communication and presentation skills in English. The course studies how to communicate and make a presentation clearly and effectively, with correct and appropriate usage of the language. The students are trained to communicate on technical topics through conversations and written correspondence (such as letters or emails), give public speeches and lectures on technical topics, and discuss in a seminar. The course will also study techniques in creating and delivering effective presentations.
Prerequisite: Academic English 2
Lecturer: None
Moodle Link: None
Credits: 0 (0-45-0)
Description:
This course demands the student to complete at least 320 hours of software industrial training in a software company before graduation. The objectives of software industrial training are for the students to gain work experience in the software industry and to understand the role of a software engineer. Each student is required to submit a report and present an official statement from the employer confirming their satisfactory in the software industrial training. Each student is required to formally enroll in this course in a summer semester.
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers basic theory and concepts of cultural studies, evolution and relations of world cultures, and study in detail of selected cultures in present days.
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
A philosophical study of “the good life”: What constitutes a good life: “How ought one to live?” Examination and critical analysis of a variety of ethical theories from classical through the present and their practical application to contemporary issues.
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Basic introduction to humanities. Focuses on central concepts, historical development and fundamental nature of philosophy, architecture, music, religion and art.
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Information literacy concept, Information needs and sources, Access of information, Evaluation of information, Communication and presentation of information
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a study of the nature of logic and logical reasoning, covering the following topics: arguments, syntax and semantics of propositional logic, validity and equivalence in propositional logic, truth tables, basic proof theory for propositional logic, syntax and semantics of first-order logic, validity and equivalence in first-order logic, basic proof theory for first-order logic, limitations of first-order logic, and applications of logic for problem solving.
Prerequisite: None
Lecturer: Asst.Prof.Dr. Pratoom Angurarohita Dr. Natthapong Jungteerapanich
Moodle Link: None
Credits: 3 (3-0-6)
Description:
An introduction to philosophy through ancient, medieval, modern, and contemporary sources. The course includes main areas such as ethics, metaphysics, epistemology, aesthetics, and philosophy of religion.
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course provides a study of the thing we call “science”, together with its nature and methodology. The topics cover the meaning of science, reality, the nature of scientific observations, scientific theories and their discovery and formation, scientific explanations and predictions, the problem of induction, scientific rationality, the nature of scientific knowledge, concepts of truth, hypothesis testing, hypothesis confirmation, hypothesis falsification, logic of scientific method, and scientific progress.
Prerequisite: None
Lecturer: Dr. Jochen Amrehn
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers basic theory and concepts of cultural studies, evolution and relations of world cultures, and study in detail of selected cultures in present days.
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces concepts, principles, and processes in business administration. The topics of study include objectives and types of business organizations, planning, organization structures, motivation, leadership, communication, controlling of operations, marketing, and personnel management.
Prerequisite: None
Lecturer: Mr. Xavier Boegly
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a study of social, legal and moral issues raised by the development of information technology. The course examines the relationship between law, policy and technology related to current issues, including intellectual property, privacy, computer crime and various risks which may cause damages associated with computer usage.
Prerequisite: None
Lecturer: Dr. Vorapranee Khu-smith
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a study of production management, the scope and various activities of production management, organization structures, planning and development of new products, forecasting of production, production planning, production layouts and operation standards, production scheduling, factory location, purchasing and inventory control, quality control, industrial finance, personnel management, labor relations, personnel motivation, production maintenance, and safety management.
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course gives an overview of economics, covering basic concepts and theories of microeconomics and macroeconomics. Topics in microeconomics studied include demand and supply, price elasticities, consumer behavior theory, production and cost theory, and perfect and imperfect competitions. Macroeconomics topics studied include aggregate demand and supply, macroeconomic data (e.g. gross domestic product, national income, etc.), management of economic growth, inflation problems, unemployment problems, money and banking systems, fiscal and monetary policy, taxation, international trades, and exchange rates.
Prerequisite: None
Lecturer: Assoc.Prof.Dr. Tatre Jantarakolica
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Survey of environmental studies examining ecological, socioeconomic, aesthetic, and technological influences determining quality of life on earth.
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
An eclectic approach to a social and behavioral survey of major topics in psychology, including learning, motivation, intelligence, personality, mental illness, and social relations.
Prerequisite: None
Lecturer: None
Moodle Link: None
SE Years 3 and 4 @ KMITL - Specialized in Enterprise Software Engineering
Credits: 3 (3-0-6)
Description:
The course covers the following topics: meanings of artificial intelligence, various knowledge representations (including semantic networks, frames, rules, logic, etc.), problem solving by search (including uninformed search and heuristic search), playing games using search, elementary logic, logical reasoning, knowledge-based systems, rule-based systems, expert systems, machine learning, planning, intelligent agents, and programming languages for artificial intelligence.
Prerequisite: Data Structures and Algorithms
Lecturer: Asst.Prof.Dr. Visit Hirankitti
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies the structures and mechanisms of database management systems, physical structures of databases, access mechanisms, query processing, transaction processing, database recovery, concurrency control, distributed database systems, and object-oriented database systems.
Prerequisite: Information Systems and Databases
Lecturer: Asst.Prof.Dr. Kulwadee Somboonviwat
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers the principles and methodology of object-oriented analysis and design, with emphasis on the use of the Unified Modeling Language (UML), and also the object-oriented development methodology under the unified process. Students will study how to utilize various UML diagrams as well as several design patterns in software analysis and design processes.
Prerequisite: Software Engineering Principle
Lecturer: Asst.Prof.Dr. Isara Anantavrasilp
Moodle Link: None
Credits: 1 (0-3-2)
Description:
Practical study related to 13016219 Object-Oriented Analysis and Design
Prerequisite: Software Engineering Principle
Lecturer: Asst.Prof.Dr. Isara Anantavrasilp
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies basic principles and concepts of operating systems. Topics include structures of operating systems, process management, processor scheduling, process synchronization, inter-process communication, semaphores and monitors, mutual exclusion, deadlock detection and prevention, memory management, virtual memory, file systems, I/O systems, secondary storage management, user account management, and operating system security. The course also studies and compares among important operating systems.
Prerequisite: Data Structures and Algorithms
Lecturer: Assoc.Prof.Dr. Boontee Kruatrachue
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides an introduction to the theory of computation, covering the following topics: strings and languages, finite automata, equivalence of deterministic finite automata and nondeterministic finite automata, regular languages, regular expressions, regular grammars, relations between regular languages and regular grammars, properties of regular languages, pumping lemma for regular languages, context-free grammar, pushdown automata, relations between pushdown automata and context-free languages, properties of context-free languages, pumping lemma for context-free languages, Turing machines, equivalence of nondeterministic Turing machines and deterministic Turing machines, undecidable problems, computational complexity, important complexity classes (such as P, NP, and EXPTIME), reduction, and complete complexity classes.
Prerequisite: Discrete Mathematics
Lecturer: Dr. Natthapong Jungteerapanich
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a foundation of current and future web technologies, which include the development of web applications and services, web components, and network protocols necessary for web programming. The course begins with the basics such as markup languages HTML and XML, HTTP protocol and the mechanism of how a web server handles requests, web programming languages, cookies, session management, database integration, performance tuning, and security issues concerning the web applications. This course emphasizes on both client-side programming using JavaScript and server-side programming using Python. Finally this course introduces web service development and semantic web technology.
Prerequisite: Computer Networks and Communications
Lecturer: Asst.Prof.Dr. Todsanai Chumwatana
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies theories and concepts for constructing computer language translators. The topics include lexical analysis, syntax analysis, parser construction, syntax-directed translation, type checking, run-time environment handling, intermediate and machine code generation and code optimization, interpreter construction, together with case studies of compiler design and construction for some computer languages.
Prerequisite: Data Structures and Algorithms, Theory of Computation
Lecturer: Asst.Prof.Dr. Kulwadee Somboonviwat
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course emphasizes on distributed computing from a system software perspective. The topics include distributed system architectures, distributed programming, message passing, remote procedure calls, group communication, naming and membership problems, logical time, consistency, fault-tolerance, and recovery. It also covers concepts and architectures for distributed processing and distributed transaction processing, process synchronization and concurrency control, quality of service, security, and various middleware (e.g. CORBA, DCE and DCOM).
Prerequisite: Computer Networks and Communications
Lecturer: Dr. Yunyong Teng-amnuay
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies the design and development of large-scale software for enterprises. The students will learn important design considerations and some important architectures (including enterprise architecture) for enterprise software, learn how to interoperate between the software sub-systems, e.g. via web services and some standard of data interchange, and make this interoperability secure, and also learn how to utilize software frameworks and technologies to support the development of enterprise software.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides an introduction to software design with emphasis on architectural design and models of software architectures. Software architectures studied include: data flow architectures, procedure-based architectures, middleware architectures, object-oriented architectures, event-driven architectures, virtual machine architectures, component-based architectures, shared information system architectures, client-server architectures, distributed architectures, enterprise architectures, web-based architectures, service-oriented architectures, grid architectures, and mixed architectures. For each architectural style studied, the course discusses the technological background of its evolution, its advantages and disadvantages, and its uses in the software development.
Prerequisite: Software Engineering Principle
Lecturer: Assoc.Prof.Dr. Veera Boonjing
Moodle Link: None
Credits: 3 (3-0-6)
Description:
A software development process is a set of activities, methods, and practices that are used in the production and maintenance process of software. This course is concerned with improving the processes used to develop and maintain high-quality software in a timely and economical manner. It covers the evolutions of different software development models and the currently popular and successful process models, including iterative software development (e.g. spiral models and the Rational Unified Process (RUP)), agile software development (e.g. Extreme Programming (XP), Agile Modeling (AM), Scrum, Crystal, Feature Driven Development (FDD), and Incremental Funding Method (IFM)), software maturity frameworks and software process improvement (e.g. the Capability Maturity Model (CMM) and the Personal Software Process (PSP)).
Prerequisite: Software Engineering Principle
Lecturer: Asst.Prof.Dr. Isara Anantavrasilp
Moodle Link: None
Credits: 3 (0-9-5)
Description:
This is a software project course in which the students work in group to develop software according to the requirements provided by the users. The students will learn to integrate their knowledge and skills to perform each phase of software development, including requirement analysis, modeling, design, implementation, and testing, in order to obtain the required software, whose topic is decided by the advisor(s) or by the students themselves.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Any course offered at the International College
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies fundamental concepts of human perception, ergonomics, cognition, and psychology of the interaction between human and computer systems, and also covers the following topics on the design of interactive software: requirement analysis for interactive software, principles and techniques of user interface design, types of input devices, choosing appropriate input devices, and validation and usability evaluation of interactive software.
Prerequisite: Software Engineering Principle
Lecturer: Dr.Montri Phothisonothai
Moodle Link: None
Credits: 3 (x-x-x)
Description:
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (0-9-5)
Description:
In this course, the students will conduct their independent study, research and development of computer software using software engineering methodology. The students will be guided by their project supervisor to conduct research and software development with the aim that they can develop their own original work with their creativity and problem solving skills. The required project report must be submitted and presented to the examination committee at the end of the semester.
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies three important methods for software verification and validation: testing, peer reviews, and formal verification, with emphasis on testing. Topics on testing include the necessity and limitations of testing, an overview of test processes, testing throughout the software development life cycle, unit testing, test design techniques, test automation, tool support for testing, and test management. The course will study how software peer reviews, which can help detect and prevent software defects, are carried out in practice and study the inspection processes throughout the software development life cycle, including the inspection of requirement documents, design documents, code, and test plans. The course will also provide a basic understanding of formal verification, including how to prove the correctness of a simple program using Hoare logic.
Prerequisite: Software Engineering Principle
Lecturer: Dr. Natthapong Jungteerapanich
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a study of social, legal and moral issues raised by the development of information technology. The course examines the relationship between law, policy and technology related to current issues, including intellectual property, privacy, computer crime and various risks which may cause damages associated with computer usage.
Prerequisite: None
Lecturer: Dr. Vorapranee Khu-smith
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Any course offered at the International College
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (x-x-x)
Description:
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (0-9-5)
Description:
In this course, the students will conduct their independent study, research and development of computer software using software engineering methodology. The students will be guided by their project supervisor to conduct research and software development with the aim that they can develop their own original work with their creativity and problem solving skills. The required project thesis must be submitted together with the developed software and presented to the examination committee at the end of the semester.
Prerequisite: Software Project 1
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of selected advanced topics in computer networks which are important at present
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of selected advanced topics in database systems which are important at present
Prerequisite: Database Systems
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of selected advanced topics in software architecture which are important at present
Prerequisite: Software Design and Architecture
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of selected advanced topics in software engineering which are important at present
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers applications of logic in artificial intelligence, communication of multi-agents, intelligent search, advanced planning, advanced learning, natural language understanding, applications of artificial neural networks and genetic algorithms, and recent techniques in artificial intelligence. The course also studies applications of artificial intelligence in related computing areas.
Prerequisite: Artificial Intelligence
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course provides an overview of the challenges of big data and existing solutions. Covered in this course include an introduction to the following topics: data capturing, storage, processing, retrieval, analysis, and visualization. The students will also learn some useful software tools or libraries for processing or analyzing big data.
Prerequisite: Information Systems and Databases
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides an introduction to the concepts of business intelligence (BI) as components and functionality of information systems. It explores how business problems can be solved effectively by using operational data to create data warehouses, and then applying data mining tools and analytics to gain new insights into organizational operations. Detailed discussion of the analysis, design and implementation of systems for BI, including: the differences between types of reporting and analytics, enterprise data warehousing, data management systems, decision support systems, knowledge management systems, big data and data/text mining. Case studies are used to explore the use of application software, web tools, success and limitations of BI as well as technical and social issues.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of concepts, algorithms, and theories related to computational intelligence. The subject covers the following topics: neural networks, fuzzy logic, evolutionary computation, swarm intelligence, other natured-inspired algorithms, and applications of computational intelligence.
Prerequisite: Data Structures and Algorithms, Linear Algebra
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a foundation of computer and network security. It covers security policy design, information classification and access control, security infrastructure design, software application security, network partitioning, risk analysis, virtual private networks, platform hardening, vulnerability assessment, basic cryptography (both symmetric key and asymmetric key), digital signature, authentication, personal identifier, certificate and key management. This course also emphasizes on mail security, IP security, web security, network intrusion, signatures of attacks, as well as intrusion detection and prevention using firewalls and other security software.
Prerequisite: Computer Networks and Communications
Lecturer: Dr. Pipat Sookavatana Dr. Vorapranee Khu-smith
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course provides an overview of graphic systems, including input-output devices, sean conversion, two-dimensional transformations, translation, sealing, rotation, reflection, shearing, windowing concepts, clipping algorithms, window-to-viewport transformation, three-dimensional concepts, three-dimensional representations, three-dimensional transformations, three-dimensional viewing, hidden-surface and hidden-line removal, shading and color models, and applications of computer graphics to the development of graphical user interface and output display for computer software.
Prerequisite: Data Structures and Algorithms, Mathematics 2
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
With very limited memory and processing power as well as low energy consumption of IoT (Internet of Things) devices, their communication networks are so designed and developed to meet these constraints. This course will focus on the emerging industrial standard of computer networks and communications technologies developed specifically for IoT devices, including network architectures and protocols layers.
Another important topic covered by this course is network security for IoT communication. It is the study how to make secure communications between IoT devices by incorporating encryption into the communication protocol. Widely use encryption techniques are also studied.
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies concepts and applications of computer vision. It covers the following topics: image operations, geometry, feature detection, color space, corner and interest point detection, texture analysis, shape recognition, object recognition, 3D-vision, and motion analysis.
Prerequisite: Digital Image Processing
Lecturer: Dr. Ukrit Watchareeruetai
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides an introduction to data mining. Students will learn the basics of data mining algorithms with an emphasis on their real world applications. Students will learn user data types, data mining methodology, measuring the effectiveness of data mining, overview of data mining techniques, market basket analysis, memory-based reasoning, automatic cluster detection, link analysis, and artificial neural networks and genetic algorithms for data mining and data warehouse.
Prerequisite: Information Systems and Databases, Probability and Statistics
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course intends to develop the student’s software engineering and database administration skills required for designing, creating, running and developing a relational database application and its associated application software suite and the student’s understanding of how conventional programming languages interact with databases, teaches the student the fundamental concepts, theories and methods of the relational data model, and introduces Information Retrieval concepts and techniques.
Prerequisite: Data Structures and Algorithms
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces fundamental concepts of digital image processing. It covers the following topics: digital image, representation, digitization, histogram, point-processing, convolution, filtering, edge detection, frequency domains, image enhancement, image segmentation, and applications of digital image processing.
Prerequisite: Linear Algebra
Lecturer: Dr. Ukrit Watchareeruetai
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This is a basic course in digital signal processing, covering the following topics: discrete-time signals and systems, z-transform, sampling of continuous-time signals, transform analysis of linear time-invariant systems, structures for discrete-time systems, filter design techniques, discrete Fourier transform, and the applications of digital signal processing.
Prerequisite: Mathematics 3
Lecturer: Dr.Montri Phothisonothai
Moodle Link: None
Credits: 3 (3-0-6)
Description:
In this course, the students will study the principles and learn to develop programs for digital signal processors. Topics covered in this course are fundamentals of digital signal processing, digital signal processing systems and development tools, architectures of digital signal processors and instruction sets, code optimization, implementation of finite impulse response filters and infinite impulse response filters, fast Fourier transform, and real-time digital signal processing.
Prerequisite: Digital Signal Processing and Applications
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course emphasizes on distributed computing from a system software perspective. The topics include distributed system architectures, distributed programming, message passing, remote procedure calls, group communication, naming and membership problems, logical time, consistency, fault-tolerance, and recovery. It also covers concepts and architectures for distributed processing and distributed transaction processing, process synchronization and concurrency control, quality of service, security, and various middleware (e.g. CORBA, DCE and DCOM).
Prerequisite: Computer Networks and Communications
Lecturer: Dr. Yunyong Teng-amnuay
Moodle Link: None
Credits: 3 (3-0-6)
Description:
In this course, the students will learn how to apply control theory to embedded systems. The course will introduce basic control theory with practical insight into the tools for modeling and simulating dynamic physical systems, and the methods for designing the software for embedded microcontrollers to control them. This course covers the following topics: fundamentals of control systems, PID control, plant models, classical control system design, pole placement, optimal control, and discrete time systems and fixed point mathematics. The students will be guided to develop corresponding software to control physical systems using the studied control algorithms.
Prerequisite: Mathematics 3
Lecturer: None
Moodle Link: None
Credits: 3 (2-2-5)
Description:
This course covers the following topics: basic structures of the hardware and the software on embedded systems for various applications, design considerations for software on embedded systems (including resource constraints, energy consumption, time constraints, reliability, and fault tolerance), requirement specifications for software on embedded systems, methodologies and tools for the design and development of embedded software, operating systems for embedded systems, device drivers, and verification and validation techniques for software on embedded systems.
Prerequisite: Microprocessors and Interfacing
Lecturer: Dr. Rutchanee Gullayanon
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies the design and development of large-scale software for enterprises. The students will learn important design considerations and some important architectures (including enterprise architecture) for enterprise software, learn how to interoperate between the software sub-systems, e.g. via web services and some standard of data interchange, and make this interoperability secure, and also learn how to utilize software frameworks and technologies to support the development of enterprise software.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a study of technology, science, and art involved in the development of computer games. Students will study a variety of software technologies relevant to computer game design and development, including programming languages, scripting languages, operating systems, file systems, networks, simulation engines, and multimedia design systems. Lectures and discussion topics will be taken from several areas of computer science: simulation and modeling, computer graphics, artificial intelligence, real-time processing, game theory, software engineering, human-computer interaction, graphic design, and game aesthetics.
Prerequisite: Data Structures and Algorithms
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a foundation of geographic information systems (GIS). The topics include meaning and applications of GIS, digital representation, map projection, coordinate systems, spatial data modeling, spatial databases, geometry functions, data input and editing, remote sensing, GPS, GIS data quality, GIS data visualization, GIS requirement analysis, design, and development, GIS applications, Web-based GIS, Mobile GIS, software tools for GIS development, and GIS technology and its future.
Prerequisite: Information Systems and Databases
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies fundamental theory and techniques of information retrieval, focusing on text-based information and the Web. The main components of the course include models for information retrieval (including Boolean models, vectorspace models, and probabilistic models), retrieval evaluation, query languages and processing, indexing and searching, classification, clustering, link analysis, and web crawling and searching.
Prerequisite: Data Structures and Algorithms, Probability and Statistics
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Intelligent agents are software programs that can sense their environments, choose rational actions based on their percepts, and execute these actions. Often, agents interact with other agents, either by cooperating or competing with each other; such environments are called multi-agent systems. The course covers the underlying theory of agents, the common agent architectures, methods of communication and cooperation, and the potential applications of agents. Specific topics include fundamental techniques for developing intelligent agents and multi-agent systems, including cognitive, logic-based, and belief- desire-intention architectures, inter-agent communication languages and protocols, distributed problem solving, planning, and constraint satisfaction methods, distributed models of rational behaviors, and learning and adaptation in multi-agent systems.
Prerequisite: Artificial Intelligence
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course provides an introduction to parallel computing and parallel programming, covering the following topics: concepts of parallel computing, architectures of parallel computing systems, SIMD and MIMD, shared-memory and distributed-memory systems, parallel algorithms, data dependencies and parallelism, synchronization, performance analysis of parallel programs, and programming in parallel programming languages.
Prerequisite: Operating Systems
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces fundamental concepts of robotics. The topics covered include forward and inverse kinematics, DH parameters, the Jacobian, trajectory planning, basics of robot control systems, including actuators and sensors for robots.
Prerequisite: Mathematics 2
Lecturer: Asst.Prof.Dr. Chaiwat Nuthong
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a comprehensive study of contemporary techniques and languages for knowledge representation and reasoning about knowledge. The course covers semantic modeling, e.g. semantic networks, conceptual graphs, ontology representation in Semantic Web, frame representation, rule-based representation, and logical representation, e.g. first-order logic, description logic, logic of actions and beliefs. For the reasoning about knowledge, the topics include abduction, deduction, induction, as well as reasoning about time, state, events, actions, and beliefs.
Prerequisite: Artificial Intelligence
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study fundamental concepts of learning and well-known machine learning algorithms. The subject covers the following topics: fundamental probability theory; learning theory; bias/variance trade-off; Vapnik-Chervonenkis theory; supervised/unsupervised learning; generative/discriminative learning; parametric/non-parametric learning; reinforcement learning; applications of machine learning.
Prerequisite: Data Structures and Algorithms, Probability and Statistics
Lecturer: None
Moodle Link: None
Credits: 3 (2-2-5)
Description:
This course studies some architectures of the microprocessors and microcontrollers, which are widely used in embedded systems, as well as peripherals interfacing, and software development on those architectures. The topics include the architectures of microprocessors and microcontrollers in embedded systems, memory interfacing, buses, interrupts, interfacing with input/output devices, the conversion between analog signals and digital signals, interfacing with sensors and actuators, and data communication through ports (such as RS-232 ports, USB ports, and parallel ports).
Prerequisite: Digital Circuit and Logic Design
Lecturer: Asst.Prof.Dr. Kasin Vichienchom
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces fundamental concepts of mobile computing. These include an overview of hardware architectures of mobile devices, wireless communications and networking technologies for mobile devices, sensors and peripherals, location awareness, mobile operating systems and software architectures, software development for mobile devices, and applications of mobile devices.
Prerequisite: Data Structures and Algorithms
Lecturer: Dr. Pipat Sookavatana
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces the field of Natural Language Processing. It includes relevant background material in linguistics, mathematics, probabilities, and computer science. Some of the topics covered in the class are text similarity, part of speech tagging, parsing, semantics, question answering, sentiment analysis, and text summarization.
Prerequisite: Data Structures and Algorithms
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides the students with a study of network application development, networking protocol usage, and performance of network applications. The students will gain understanding and practical skills in developing programs which communicate using protocols in different layers of the Internet protocol suite, including application-layer protocols (such as HTTP, FTP, DNS, SMTP, etc.), transport-layer and network-layer protocols (such as TCP, UDP, IP, ICMP, etc.), as well as secured protocols (such as HTTPS, IPSec, and various authentication protocols). The students will learn to use networking services provided by the operating system or support libraries, as well as techniques and tools which facilitate the testing and debugging of network applications.
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course provides an introduction to operation research methods, including linear programming, dynamic programming, game theory, queuing theory, CPM and PERT, and operation research techniques applied to industrial control planning and management.
Prerequisite: Mathematics 2
Lecturer: Dr.Churirat Boonkhun
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies basic concepts and methodologies of pattern recognition. The techniques include supervised and unsupervised learning, handling and scaling of multidimensional data, dimension reduction methods, feature selection and feature extraction, and validation of algorithms.
Prerequisite: Probability and Statistics
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies the evoluation of programming languages and their relationship. It covers important concepts and issues in programming language design, including syntax and semantics of programming languages, data types, abstraction, polymorphism, and program decomposition. The course also studies important programming language paradigms, such as object-oriented programming, functional programming, and logic programming, by referring to case studies of contemporary programming languages, such as C, C++, Java, Lisp, Prolog, ML, and Python.
Prerequisite: Object-Oriented Concepts and Programming
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Selected topics of current interest in software engineering for enterprises
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Selected topics of current interest related to intelligent systems
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Selected topics of current interest related to the Internet of Things
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The Semantic Web has been envisioned by many to be a next generation of the current web. The Semantic Web makes it easy for anyone to publish, and access to, distributed semantic information on the Internet; this information allows computers and software agents on the Internet to communicate with each other and work together automatically. The course covers mark-up languages of web contents, that is, HTML and XML. For XML, it covers XML DTDs, XML Schemas, XPaths, XLinks and XPointers, including how to process an XML document with DOM. For the Semantic Web mark-up languages, the course covers RDF, RDFS, OWL, and rule mark-up languages. Finally, the course also includes different approaches of knowledge representation of Semantic Web contents, such as First-order Logic, Description Logic, and Conceptual Graphs, as well as reasoning and communication of Semantic Web information by intelligent agents.
Prerequisite: Artificial Intelligence
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Service-Oriented Architecture (SOA) is a way to organize and use distributed services that may be controlled by different owners. SOA provides a uniform means to offer, discover, interact with, and use services to produce desired effects consistent with the specified preconditions and requirements. This course describes SOA concepts and design principles, interoperability standards, security considerations, runtime infrastructure and web services for the implementation of SOA.
Prerequisite: Object-Oriented Analysis and Design
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers the architectures of operating systems on current mobile platforms, computer languages and software tools for developing software on mobile devices, GUI design, interfacing with various hardware devices, such as sensors, GPS receivers, and various input devices, and the use of software APIs for software development on mobile devices.
Prerequisite: Data Structures and Algorithms
Lecturer: Asst.Prof.Dr. Visit Hirankitti
Moodle Link: None
Credits: 3 (3-0-6)
Description:
In this course, the students will work in teams to study and practice skills in software entrepreneurship, through setting up and running virtual software development companies. The students will study how to find prospective commercial opportunities for a technological idea, how to acquire resources including talent and capital, and how to market the idea, as well as manage the growth. The emphasis will be on how small software companies are created and managed, the financial and legal frameworks within which such companies operate, and the management of the companies for successful operations. Topics include market studies, feasibility studies, cost analysis, intellectual property, contract negotiation, resource management, business planning, finance, and marketing. The final outcome of each group of students will be a business plan for commercializing their software products.
Prerequisite: None
Lecturer: Dr. Teerawet Titseesang
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers a step-by-step study of software metrics. It includes an introduction to foundations of measurement theory, models of software engineering measurement, software product metrics, software process metrics and measuring management. The course comprises of the following basic modules: measurement theory (overview of software metrics, basics of measurement theory, goal-based framework for software measurement, empirical investigation in software engineering), software product and process measurements (measuring internal product attributes: size and structure, measuring external product attributes: quality, measuring cost and effort, measuring software reliability, software test metrics, and object-oriented metrics), and measurement management.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces concepts, metrics, and models in software quality assurance. The course covers components of software quality assurance systems before, during, and after software development. It also discusses metrics and models for software quality as a product, in process, and in maintenance. The Capability Maturity Model (CMM) will be introduced, as well as related ISO and IEEE standards. Students will gain an understanding of software quality and approaches to assure software quality.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course describes TCP/IP networks, the topics of study are TCP/IP layers, Internet addresses, domain name systems, TCP/IP protocol suites: IPv4, IPv6, ARP, ICMP, TCP and UDP, Internet routing and routing protocols. It also describes various application protocols, including IGMP, DNS, FTP, TELNET, SMTP, and studies Internet security and the development of software to run on TCT/IP networks.
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a foundation of current and future web technologies, which include the development of web applications and services, web components, and network protocols necessary for web programming. The course begins with the basics such as markup languages HTML and XML, HTTP protocol and the mechanism of how a web server handles requests, web programming languages, cookies, session management, database integration, performance tuning, and security issues concerning the web applications. This course emphasizes on both client-side programming using JavaScript and server-side programming using Python. Finally this course introduces web service development and semantic web technology.
Prerequisite: Computer Networks and Communications
Lecturer: Asst.Prof.Dr. Todsanai Chumwatana
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course is an introduction to fundamental concepts of wireless networks of embedded systems and wireless sensor networks. Topics include: wireless communication and networking technologies, i.e. Bluetooth, ZigBee, LoRa, network architecture, wireless communication protocols, and software design and programming for the wireless networks.
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
SE Years 3 and 4 @ KMITL - Specialized in Intelligent Systems
Credits: 3 (3-0-6)
Description:
The course covers the following topics: meanings of artificial intelligence, various knowledge representations (including semantic networks, frames, rules, logic, etc.), problem solving by search (including uninformed search and heuristic search), playing games using search, elementary logic, logical reasoning, knowledge-based systems, rule-based systems, expert systems, machine learning, planning, intelligent agents, and programming languages for artificial intelligence.
Prerequisite: Data Structures and Algorithms
Lecturer: Asst.Prof.Dr. Visit Hirankitti
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course provides an overview of the challenges of big data and existing solutions. Covered in this course include an introduction to the following topics: data capturing, storage, processing, retrieval, analysis, and visualization. The students will also learn some useful software tools or libraries for processing or analyzing big data.
Prerequisite: Information Systems and Databases
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study fundamental concepts of learning and well-known machine learning algorithms. The subject covers the following topics: fundamental probability theory; learning theory; bias/variance trade-off; Vapnik-Chervonenkis theory; supervised/unsupervised learning; generative/discriminative learning; parametric/non-parametric learning; reinforcement learning; applications of machine learning.
Prerequisite: Data Structures and Algorithms, Probability and Statistics
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers the principles and methodology of object-oriented analysis and design, with emphasis on the use of the Unified Modeling Language (UML), and also the object-oriented development methodology under the unified process. Students will study how to utilize various UML diagrams as well as several design patterns in software analysis and design processes.
Prerequisite: Software Engineering Principle
Lecturer: Asst.Prof.Dr. Isara Anantavrasilp
Moodle Link: None
Credits: 1 (0-3-2)
Description:
Practical study related to 13016219 Object-Oriented Analysis and Design
Prerequisite: Software Engineering Principle
Lecturer: Asst.Prof.Dr. Isara Anantavrasilp
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies basic principles and concepts of operating systems. Topics include structures of operating systems, process management, processor scheduling, process synchronization, inter-process communication, semaphores and monitors, mutual exclusion, deadlock detection and prevention, memory management, virtual memory, file systems, I/O systems, secondary storage management, user account management, and operating system security. The course also studies and compares among important operating systems.
Prerequisite: Data Structures and Algorithms
Lecturer: Assoc.Prof.Dr. Boontee Kruatrachue
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides an introduction to the theory of computation, covering the following topics: strings and languages, finite automata, equivalence of deterministic finite automata and nondeterministic finite automata, regular languages, regular expressions, regular grammars, relations between regular languages and regular grammars, properties of regular languages, pumping lemma for regular languages, context-free grammar, pushdown automata, relations between pushdown automata and context-free languages, properties of context-free languages, pumping lemma for context-free languages, Turing machines, equivalence of nondeterministic Turing machines and deterministic Turing machines, undecidable problems, computational complexity, important complexity classes (such as P, NP, and EXPTIME), reduction, and complete complexity classes.
Prerequisite: Discrete Mathematics
Lecturer: Dr. Natthapong Jungteerapanich
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies theories and concepts for constructing computer language translators. The topics include lexical analysis, syntax analysis, parser construction, syntax-directed translation, type checking, run-time environment handling, intermediate and machine code generation and code optimization, interpreter construction, together with case studies of compiler design and construction for some computer languages.
Prerequisite: Data Structures and Algorithms, Theory of Computation
Lecturer: Asst.Prof.Dr. Kulwadee Somboonviwat
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of concepts, algorithms, and theories related to computational intelligence. The subject covers the following topics: neural networks, fuzzy logic, evolutionary computation, swarm intelligence, other natured-inspired algorithms, and applications of computational intelligence.
Prerequisite: Data Structures and Algorithms, Linear Algebra
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a comprehensive study of contemporary techniques and languages for knowledge representation and reasoning about knowledge. The course covers semantic modeling, e.g. semantic networks, conceptual graphs, ontology representation in Semantic Web, frame representation, rule-based representation, and logical representation, e.g. first-order logic, description logic, logic of actions and beliefs. For the reasoning about knowledge, the topics include abduction, deduction, induction, as well as reasoning about time, state, events, actions, and beliefs.
Prerequisite: Artificial Intelligence
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides an introduction to software design with emphasis on architectural design and models of software architectures. Software architectures studied include: data flow architectures, procedure-based architectures, middleware architectures, object-oriented architectures, event-driven architectures, virtual machine architectures, component-based architectures, shared information system architectures, client-server architectures, distributed architectures, enterprise architectures, web-based architectures, service-oriented architectures, grid architectures, and mixed architectures. For each architectural style studied, the course discusses the technological background of its evolution, its advantages and disadvantages, and its uses in the software development.
Prerequisite: Software Engineering Principle
Lecturer: Assoc.Prof.Dr. Veera Boonjing
Moodle Link: None
Credits: 3 (3-0-6)
Description:
A software development process is a set of activities, methods, and practices that are used in the production and maintenance process of software. This course is concerned with improving the processes used to develop and maintain high-quality software in a timely and economical manner. It covers the evolutions of different software development models and the currently popular and successful process models, including iterative software development (e.g. spiral models and the Rational Unified Process (RUP)), agile software development (e.g. Extreme Programming (XP), Agile Modeling (AM), Scrum, Crystal, Feature Driven Development (FDD), and Incremental Funding Method (IFM)), software maturity frameworks and software process improvement (e.g. the Capability Maturity Model (CMM) and the Personal Software Process (PSP)).
Prerequisite: Software Engineering Principle
Lecturer: Asst.Prof.Dr. Isara Anantavrasilp
Moodle Link: None
Credits: 3 (0-9-5)
Description:
This is a software project course in which the students work in group to develop software according to the requirements provided by the users. The students will learn to integrate their knowledge and skills to perform each phase of software development, including requirement analysis, modeling, design, implementation, and testing, in order to obtain the required software, whose topic is decided by the advisor(s) or by the students themselves.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Any course offered at the International College
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies fundamental concepts of human perception, ergonomics, cognition, and psychology of the interaction between human and computer systems, and also covers the following topics on the design of interactive software: requirement analysis for interactive software, principles and techniques of user interface design, types of input devices, choosing appropriate input devices, and validation and usability evaluation of interactive software.
Prerequisite: Software Engineering Principle
Lecturer: Dr.Montri Phothisonothai
Moodle Link: None
Credits: 3 (x-x-x)
Description:
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (0-9-5)
Description:
In this course, the students will conduct their independent study, research and development of computer software using software engineering methodology. The students will be guided by their project supervisor to conduct research and software development with the aim that they can develop their own original work with their creativity and problem solving skills. The required project report must be submitted and presented to the examination committee at the end of the semester.
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies three important methods for software verification and validation: testing, peer reviews, and formal verification, with emphasis on testing. Topics on testing include the necessity and limitations of testing, an overview of test processes, testing throughout the software development life cycle, unit testing, test design techniques, test automation, tool support for testing, and test management. The course will study how software peer reviews, which can help detect and prevent software defects, are carried out in practice and study the inspection processes throughout the software development life cycle, including the inspection of requirement documents, design documents, code, and test plans. The course will also provide a basic understanding of formal verification, including how to prove the correctness of a simple program using Hoare logic.
Prerequisite: Software Engineering Principle
Lecturer: Dr. Natthapong Jungteerapanich
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a study of social, legal and moral issues raised by the development of information technology. The course examines the relationship between law, policy and technology related to current issues, including intellectual property, privacy, computer crime and various risks which may cause damages associated with computer usage.
Prerequisite: None
Lecturer: Dr. Vorapranee Khu-smith
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Any course offered at the International College
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (x-x-x)
Description:
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (0-9-5)
Description:
In this course, the students will conduct their independent study, research and development of computer software using software engineering methodology. The students will be guided by their project supervisor to conduct research and software development with the aim that they can develop their own original work with their creativity and problem solving skills. The required project thesis must be submitted together with the developed software and presented to the examination committee at the end of the semester.
Prerequisite: Software Project 1
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of selected advanced topics in computer networks which are important at present
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of selected advanced topics in database systems which are important at present
Prerequisite: Database Systems
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of selected advanced topics in software architecture which are important at present
Prerequisite: Software Design and Architecture
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of selected advanced topics in software engineering which are important at present
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers applications of logic in artificial intelligence, communication of multi-agents, intelligent search, advanced planning, advanced learning, natural language understanding, applications of artificial neural networks and genetic algorithms, and recent techniques in artificial intelligence. The course also studies applications of artificial intelligence in related computing areas.
Prerequisite: Artificial Intelligence
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course provides an overview of the challenges of big data and existing solutions. Covered in this course include an introduction to the following topics: data capturing, storage, processing, retrieval, analysis, and visualization. The students will also learn some useful software tools or libraries for processing or analyzing big data.
Prerequisite: Information Systems and Databases
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides an introduction to the concepts of business intelligence (BI) as components and functionality of information systems. It explores how business problems can be solved effectively by using operational data to create data warehouses, and then applying data mining tools and analytics to gain new insights into organizational operations. Detailed discussion of the analysis, design and implementation of systems for BI, including: the differences between types of reporting and analytics, enterprise data warehousing, data management systems, decision support systems, knowledge management systems, big data and data/text mining. Case studies are used to explore the use of application software, web tools, success and limitations of BI as well as technical and social issues.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of concepts, algorithms, and theories related to computational intelligence. The subject covers the following topics: neural networks, fuzzy logic, evolutionary computation, swarm intelligence, other natured-inspired algorithms, and applications of computational intelligence.
Prerequisite: Data Structures and Algorithms, Linear Algebra
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a foundation of computer and network security. It covers security policy design, information classification and access control, security infrastructure design, software application security, network partitioning, risk analysis, virtual private networks, platform hardening, vulnerability assessment, basic cryptography (both symmetric key and asymmetric key), digital signature, authentication, personal identifier, certificate and key management. This course also emphasizes on mail security, IP security, web security, network intrusion, signatures of attacks, as well as intrusion detection and prevention using firewalls and other security software.
Prerequisite: Computer Networks and Communications
Lecturer: Dr. Pipat Sookavatana Dr. Vorapranee Khu-smith
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course provides an overview of graphic systems, including input-output devices, sean conversion, two-dimensional transformations, translation, sealing, rotation, reflection, shearing, windowing concepts, clipping algorithms, window-to-viewport transformation, three-dimensional concepts, three-dimensional representations, three-dimensional transformations, three-dimensional viewing, hidden-surface and hidden-line removal, shading and color models, and applications of computer graphics to the development of graphical user interface and output display for computer software.
Prerequisite: Data Structures and Algorithms, Mathematics 2
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
With very limited memory and processing power as well as low energy consumption of IoT (Internet of Things) devices, their communication networks are so designed and developed to meet these constraints. This course will focus on the emerging industrial standard of computer networks and communications technologies developed specifically for IoT devices, including network architectures and protocols layers.
Another important topic covered by this course is network security for IoT communication. It is the study how to make secure communications between IoT devices by incorporating encryption into the communication protocol. Widely use encryption techniques are also studied.
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies concepts and applications of computer vision. It covers the following topics: image operations, geometry, feature detection, color space, corner and interest point detection, texture analysis, shape recognition, object recognition, 3D-vision, and motion analysis.
Prerequisite: Digital Image Processing
Lecturer: Dr. Ukrit Watchareeruetai
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides an introduction to data mining. Students will learn the basics of data mining algorithms with an emphasis on their real world applications. Students will learn user data types, data mining methodology, measuring the effectiveness of data mining, overview of data mining techniques, market basket analysis, memory-based reasoning, automatic cluster detection, link analysis, and artificial neural networks and genetic algorithms for data mining and data warehouse.
Prerequisite: Information Systems and Databases, Probability and Statistics
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course intends to develop the student’s software engineering and database administration skills required for designing, creating, running and developing a relational database application and its associated application software suite and the student’s understanding of how conventional programming languages interact with databases, teaches the student the fundamental concepts, theories and methods of the relational data model, and introduces Information Retrieval concepts and techniques.
Prerequisite: Data Structures and Algorithms
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces fundamental concepts of digital image processing. It covers the following topics: digital image, representation, digitization, histogram, point-processing, convolution, filtering, edge detection, frequency domains, image enhancement, image segmentation, and applications of digital image processing.
Prerequisite: Linear Algebra
Lecturer: Dr. Ukrit Watchareeruetai
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This is a basic course in digital signal processing, covering the following topics: discrete-time signals and systems, z-transform, sampling of continuous-time signals, transform analysis of linear time-invariant systems, structures for discrete-time systems, filter design techniques, discrete Fourier transform, and the applications of digital signal processing.
Prerequisite: Mathematics 3
Lecturer: Dr.Montri Phothisonothai
Moodle Link: None
Credits: 3 (3-0-6)
Description:
In this course, the students will study the principles and learn to develop programs for digital signal processors. Topics covered in this course are fundamentals of digital signal processing, digital signal processing systems and development tools, architectures of digital signal processors and instruction sets, code optimization, implementation of finite impulse response filters and infinite impulse response filters, fast Fourier transform, and real-time digital signal processing.
Prerequisite: Digital Signal Processing and Applications
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course emphasizes on distributed computing from a system software perspective. The topics include distributed system architectures, distributed programming, message passing, remote procedure calls, group communication, naming and membership problems, logical time, consistency, fault-tolerance, and recovery. It also covers concepts and architectures for distributed processing and distributed transaction processing, process synchronization and concurrency control, quality of service, security, and various middleware (e.g. CORBA, DCE and DCOM).
Prerequisite: Computer Networks and Communications
Lecturer: Dr. Yunyong Teng-amnuay
Moodle Link: None
Credits: 3 (3-0-6)
Description:
In this course, the students will learn how to apply control theory to embedded systems. The course will introduce basic control theory with practical insight into the tools for modeling and simulating dynamic physical systems, and the methods for designing the software for embedded microcontrollers to control them. This course covers the following topics: fundamentals of control systems, PID control, plant models, classical control system design, pole placement, optimal control, and discrete time systems and fixed point mathematics. The students will be guided to develop corresponding software to control physical systems using the studied control algorithms.
Prerequisite: Mathematics 3
Lecturer: None
Moodle Link: None
Credits: 3 (2-2-5)
Description:
This course covers the following topics: basic structures of the hardware and the software on embedded systems for various applications, design considerations for software on embedded systems (including resource constraints, energy consumption, time constraints, reliability, and fault tolerance), requirement specifications for software on embedded systems, methodologies and tools for the design and development of embedded software, operating systems for embedded systems, device drivers, and verification and validation techniques for software on embedded systems.
Prerequisite: Microprocessors and Interfacing
Lecturer: Dr. Rutchanee Gullayanon
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies the design and development of large-scale software for enterprises. The students will learn important design considerations and some important architectures (including enterprise architecture) for enterprise software, learn how to interoperate between the software sub-systems, e.g. via web services and some standard of data interchange, and make this interoperability secure, and also learn how to utilize software frameworks and technologies to support the development of enterprise software.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a study of technology, science, and art involved in the development of computer games. Students will study a variety of software technologies relevant to computer game design and development, including programming languages, scripting languages, operating systems, file systems, networks, simulation engines, and multimedia design systems. Lectures and discussion topics will be taken from several areas of computer science: simulation and modeling, computer graphics, artificial intelligence, real-time processing, game theory, software engineering, human-computer interaction, graphic design, and game aesthetics.
Prerequisite: Data Structures and Algorithms
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a foundation of geographic information systems (GIS). The topics include meaning and applications of GIS, digital representation, map projection, coordinate systems, spatial data modeling, spatial databases, geometry functions, data input and editing, remote sensing, GPS, GIS data quality, GIS data visualization, GIS requirement analysis, design, and development, GIS applications, Web-based GIS, Mobile GIS, software tools for GIS development, and GIS technology and its future.
Prerequisite: Information Systems and Databases
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies fundamental theory and techniques of information retrieval, focusing on text-based information and the Web. The main components of the course include models for information retrieval (including Boolean models, vectorspace models, and probabilistic models), retrieval evaluation, query languages and processing, indexing and searching, classification, clustering, link analysis, and web crawling and searching.
Prerequisite: Data Structures and Algorithms, Probability and Statistics
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Intelligent agents are software programs that can sense their environments, choose rational actions based on their percepts, and execute these actions. Often, agents interact with other agents, either by cooperating or competing with each other; such environments are called multi-agent systems. The course covers the underlying theory of agents, the common agent architectures, methods of communication and cooperation, and the potential applications of agents. Specific topics include fundamental techniques for developing intelligent agents and multi-agent systems, including cognitive, logic-based, and belief- desire-intention architectures, inter-agent communication languages and protocols, distributed problem solving, planning, and constraint satisfaction methods, distributed models of rational behaviors, and learning and adaptation in multi-agent systems.
Prerequisite: Artificial Intelligence
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course provides an introduction to parallel computing and parallel programming, covering the following topics: concepts of parallel computing, architectures of parallel computing systems, SIMD and MIMD, shared-memory and distributed-memory systems, parallel algorithms, data dependencies and parallelism, synchronization, performance analysis of parallel programs, and programming in parallel programming languages.
Prerequisite: Operating Systems
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces fundamental concepts of robotics. The topics covered include forward and inverse kinematics, DH parameters, the Jacobian, trajectory planning, basics of robot control systems, including actuators and sensors for robots.
Prerequisite: Mathematics 2
Lecturer: Asst.Prof.Dr. Chaiwat Nuthong
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a comprehensive study of contemporary techniques and languages for knowledge representation and reasoning about knowledge. The course covers semantic modeling, e.g. semantic networks, conceptual graphs, ontology representation in Semantic Web, frame representation, rule-based representation, and logical representation, e.g. first-order logic, description logic, logic of actions and beliefs. For the reasoning about knowledge, the topics include abduction, deduction, induction, as well as reasoning about time, state, events, actions, and beliefs.
Prerequisite: Artificial Intelligence
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study fundamental concepts of learning and well-known machine learning algorithms. The subject covers the following topics: fundamental probability theory; learning theory; bias/variance trade-off; Vapnik-Chervonenkis theory; supervised/unsupervised learning; generative/discriminative learning; parametric/non-parametric learning; reinforcement learning; applications of machine learning.
Prerequisite: Data Structures and Algorithms, Probability and Statistics
Lecturer: None
Moodle Link: None
Credits: 3 (2-2-5)
Description:
This course studies some architectures of the microprocessors and microcontrollers, which are widely used in embedded systems, as well as peripherals interfacing, and software development on those architectures. The topics include the architectures of microprocessors and microcontrollers in embedded systems, memory interfacing, buses, interrupts, interfacing with input/output devices, the conversion between analog signals and digital signals, interfacing with sensors and actuators, and data communication through ports (such as RS-232 ports, USB ports, and parallel ports).
Prerequisite: Digital Circuit and Logic Design
Lecturer: Asst.Prof.Dr. Kasin Vichienchom
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces fundamental concepts of mobile computing. These include an overview of hardware architectures of mobile devices, wireless communications and networking technologies for mobile devices, sensors and peripherals, location awareness, mobile operating systems and software architectures, software development for mobile devices, and applications of mobile devices.
Prerequisite: Data Structures and Algorithms
Lecturer: Dr. Pipat Sookavatana
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces the field of Natural Language Processing. It includes relevant background material in linguistics, mathematics, probabilities, and computer science. Some of the topics covered in the class are text similarity, part of speech tagging, parsing, semantics, question answering, sentiment analysis, and text summarization.
Prerequisite: Data Structures and Algorithms
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides the students with a study of network application development, networking protocol usage, and performance of network applications. The students will gain understanding and practical skills in developing programs which communicate using protocols in different layers of the Internet protocol suite, including application-layer protocols (such as HTTP, FTP, DNS, SMTP, etc.), transport-layer and network-layer protocols (such as TCP, UDP, IP, ICMP, etc.), as well as secured protocols (such as HTTPS, IPSec, and various authentication protocols). The students will learn to use networking services provided by the operating system or support libraries, as well as techniques and tools which facilitate the testing and debugging of network applications.
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course provides an introduction to operation research methods, including linear programming, dynamic programming, game theory, queuing theory, CPM and PERT, and operation research techniques applied to industrial control planning and management.
Prerequisite: Mathematics 2
Lecturer: Dr.Churirat Boonkhun
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies basic concepts and methodologies of pattern recognition. The techniques include supervised and unsupervised learning, handling and scaling of multidimensional data, dimension reduction methods, feature selection and feature extraction, and validation of algorithms.
Prerequisite: Probability and Statistics
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies the evoluation of programming languages and their relationship. It covers important concepts and issues in programming language design, including syntax and semantics of programming languages, data types, abstraction, polymorphism, and program decomposition. The course also studies important programming language paradigms, such as object-oriented programming, functional programming, and logic programming, by referring to case studies of contemporary programming languages, such as C, C++, Java, Lisp, Prolog, ML, and Python.
Prerequisite: Object-Oriented Concepts and Programming
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Selected topics of current interest in software engineering for enterprises
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Selected topics of current interest related to intelligent systems
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Selected topics of current interest related to the Internet of Things
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The Semantic Web has been envisioned by many to be a next generation of the current web. The Semantic Web makes it easy for anyone to publish, and access to, distributed semantic information on the Internet; this information allows computers and software agents on the Internet to communicate with each other and work together automatically. The course covers mark-up languages of web contents, that is, HTML and XML. For XML, it covers XML DTDs, XML Schemas, XPaths, XLinks and XPointers, including how to process an XML document with DOM. For the Semantic Web mark-up languages, the course covers RDF, RDFS, OWL, and rule mark-up languages. Finally, the course also includes different approaches of knowledge representation of Semantic Web contents, such as First-order Logic, Description Logic, and Conceptual Graphs, as well as reasoning and communication of Semantic Web information by intelligent agents.
Prerequisite: Artificial Intelligence
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Service-Oriented Architecture (SOA) is a way to organize and use distributed services that may be controlled by different owners. SOA provides a uniform means to offer, discover, interact with, and use services to produce desired effects consistent with the specified preconditions and requirements. This course describes SOA concepts and design principles, interoperability standards, security considerations, runtime infrastructure and web services for the implementation of SOA.
Prerequisite: Object-Oriented Analysis and Design
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers the architectures of operating systems on current mobile platforms, computer languages and software tools for developing software on mobile devices, GUI design, interfacing with various hardware devices, such as sensors, GPS receivers, and various input devices, and the use of software APIs for software development on mobile devices.
Prerequisite: Data Structures and Algorithms
Lecturer: Asst.Prof.Dr. Visit Hirankitti
Moodle Link: None
Credits: 3 (3-0-6)
Description:
In this course, the students will work in teams to study and practice skills in software entrepreneurship, through setting up and running virtual software development companies. The students will study how to find prospective commercial opportunities for a technological idea, how to acquire resources including talent and capital, and how to market the idea, as well as manage the growth. The emphasis will be on how small software companies are created and managed, the financial and legal frameworks within which such companies operate, and the management of the companies for successful operations. Topics include market studies, feasibility studies, cost analysis, intellectual property, contract negotiation, resource management, business planning, finance, and marketing. The final outcome of each group of students will be a business plan for commercializing their software products.
Prerequisite: None
Lecturer: Dr. Teerawet Titseesang
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers a step-by-step study of software metrics. It includes an introduction to foundations of measurement theory, models of software engineering measurement, software product metrics, software process metrics and measuring management. The course comprises of the following basic modules: measurement theory (overview of software metrics, basics of measurement theory, goal-based framework for software measurement, empirical investigation in software engineering), software product and process measurements (measuring internal product attributes: size and structure, measuring external product attributes: quality, measuring cost and effort, measuring software reliability, software test metrics, and object-oriented metrics), and measurement management.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces concepts, metrics, and models in software quality assurance. The course covers components of software quality assurance systems before, during, and after software development. It also discusses metrics and models for software quality as a product, in process, and in maintenance. The Capability Maturity Model (CMM) will be introduced, as well as related ISO and IEEE standards. Students will gain an understanding of software quality and approaches to assure software quality.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course describes TCP/IP networks, the topics of study are TCP/IP layers, Internet addresses, domain name systems, TCP/IP protocol suites: IPv4, IPv6, ARP, ICMP, TCP and UDP, Internet routing and routing protocols. It also describes various application protocols, including IGMP, DNS, FTP, TELNET, SMTP, and studies Internet security and the development of software to run on TCT/IP networks.
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a foundation of current and future web technologies, which include the development of web applications and services, web components, and network protocols necessary for web programming. The course begins with the basics such as markup languages HTML and XML, HTTP protocol and the mechanism of how a web server handles requests, web programming languages, cookies, session management, database integration, performance tuning, and security issues concerning the web applications. This course emphasizes on both client-side programming using JavaScript and server-side programming using Python. Finally this course introduces web service development and semantic web technology.
Prerequisite: Computer Networks and Communications
Lecturer: Asst.Prof.Dr. Todsanai Chumwatana
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course is an introduction to fundamental concepts of wireless networks of embedded systems and wireless sensor networks. Topics include: wireless communication and networking technologies, i.e. Bluetooth, ZigBee, LoRa, network architecture, wireless communication protocols, and software design and programming for the wireless networks.
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
SE Years 3 and 4 @ KMITL - Specialized in the Internet of Things
Credits: 3 (3-0-6)
Description:
The course covers the following topics: meanings of artificial intelligence, various knowledge representations (including semantic networks, frames, rules, logic, etc.), problem solving by search (including uninformed search and heuristic search), playing games using search, elementary logic, logical reasoning, knowledge-based systems, rule-based systems, expert systems, machine learning, planning, intelligent agents, and programming languages for artificial intelligence.
Prerequisite: Data Structures and Algorithms
Lecturer: Asst.Prof.Dr. Visit Hirankitti
Moodle Link: None
Credits: 3 (2-2-5)
Description:
This course studies some architectures of the microprocessors and microcontrollers, which are widely used in embedded systems, as well as peripherals interfacing, and software development on those architectures. The topics include the architectures of microprocessors and microcontrollers in embedded systems, memory interfacing, buses, interrupts, interfacing with input/output devices, the conversion between analog signals and digital signals, interfacing with sensors and actuators, and data communication through ports (such as RS-232 ports, USB ports, and parallel ports).
Prerequisite: Digital Circuit and Logic Design
Lecturer: Asst.Prof.Dr. Kasin Vichienchom
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers the principles and methodology of object-oriented analysis and design, with emphasis on the use of the Unified Modeling Language (UML), and also the object-oriented development methodology under the unified process. Students will study how to utilize various UML diagrams as well as several design patterns in software analysis and design processes.
Prerequisite: Software Engineering Principle
Lecturer: Asst.Prof.Dr. Isara Anantavrasilp
Moodle Link: None
Credits: 1 (0-3-2)
Description:
Practical study related to 13016219 Object-Oriented Analysis and Design
Prerequisite: Software Engineering Principle
Lecturer: Asst.Prof.Dr. Isara Anantavrasilp
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies basic principles and concepts of operating systems. Topics include structures of operating systems, process management, processor scheduling, process synchronization, inter-process communication, semaphores and monitors, mutual exclusion, deadlock detection and prevention, memory management, virtual memory, file systems, I/O systems, secondary storage management, user account management, and operating system security. The course also studies and compares among important operating systems.
Prerequisite: Data Structures and Algorithms
Lecturer: Assoc.Prof.Dr. Boontee Kruatrachue
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides an introduction to the theory of computation, covering the following topics: strings and languages, finite automata, equivalence of deterministic finite automata and nondeterministic finite automata, regular languages, regular expressions, regular grammars, relations between regular languages and regular grammars, properties of regular languages, pumping lemma for regular languages, context-free grammar, pushdown automata, relations between pushdown automata and context-free languages, properties of context-free languages, pumping lemma for context-free languages, Turing machines, equivalence of nondeterministic Turing machines and deterministic Turing machines, undecidable problems, computational complexity, important complexity classes (such as P, NP, and EXPTIME), reduction, and complete complexity classes.
Prerequisite: Discrete Mathematics
Lecturer: Dr. Natthapong Jungteerapanich
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a foundation of current and future web technologies, which include the development of web applications and services, web components, and network protocols necessary for web programming. The course begins with the basics such as markup languages HTML and XML, HTTP protocol and the mechanism of how a web server handles requests, web programming languages, cookies, session management, database integration, performance tuning, and security issues concerning the web applications. This course emphasizes on both client-side programming using JavaScript and server-side programming using Python. Finally this course introduces web service development and semantic web technology.
Prerequisite: Computer Networks and Communications
Lecturer: Asst.Prof.Dr. Todsanai Chumwatana
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies theories and concepts for constructing computer language translators. The topics include lexical analysis, syntax analysis, parser construction, syntax-directed translation, type checking, run-time environment handling, intermediate and machine code generation and code optimization, interpreter construction, together with case studies of compiler design and construction for some computer languages.
Prerequisite: Data Structures and Algorithms, Theory of Computation
Lecturer: Asst.Prof.Dr. Kulwadee Somboonviwat
Moodle Link: None
Credits: 3 (3-0-6)
Description:
With very limited memory and processing power as well as low energy consumption of IoT (Internet of Things) devices, their communication networks are so designed and developed to meet these constraints. This course will focus on the emerging industrial standard of computer networks and communications technologies developed specifically for IoT devices, including network architectures and protocols layers.
Another important topic covered by this course is network security for IoT communication. It is the study how to make secure communications between IoT devices by incorporating encryption into the communication protocol. Widely use encryption techniques are also studied.
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
Credits: 3 (2-2-5)
Description:
This course covers the following topics: basic structures of the hardware and the software on embedded systems for various applications, design considerations for software on embedded systems (including resource constraints, energy consumption, time constraints, reliability, and fault tolerance), requirement specifications for software on embedded systems, methodologies and tools for the design and development of embedded software, operating systems for embedded systems, device drivers, and verification and validation techniques for software on embedded systems.
Prerequisite: Microprocessors and Interfacing
Lecturer: Dr. Rutchanee Gullayanon
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides an introduction to software design with emphasis on architectural design and models of software architectures. Software architectures studied include: data flow architectures, procedure-based architectures, middleware architectures, object-oriented architectures, event-driven architectures, virtual machine architectures, component-based architectures, shared information system architectures, client-server architectures, distributed architectures, enterprise architectures, web-based architectures, service-oriented architectures, grid architectures, and mixed architectures. For each architectural style studied, the course discusses the technological background of its evolution, its advantages and disadvantages, and its uses in the software development.
Prerequisite: Software Engineering Principle
Lecturer: Assoc.Prof.Dr. Veera Boonjing
Moodle Link: None
Credits: 3 (3-0-6)
Description:
A software development process is a set of activities, methods, and practices that are used in the production and maintenance process of software. This course is concerned with improving the processes used to develop and maintain high-quality software in a timely and economical manner. It covers the evolutions of different software development models and the currently popular and successful process models, including iterative software development (e.g. spiral models and the Rational Unified Process (RUP)), agile software development (e.g. Extreme Programming (XP), Agile Modeling (AM), Scrum, Crystal, Feature Driven Development (FDD), and Incremental Funding Method (IFM)), software maturity frameworks and software process improvement (e.g. the Capability Maturity Model (CMM) and the Personal Software Process (PSP)).
Prerequisite: Software Engineering Principle
Lecturer: Asst.Prof.Dr. Isara Anantavrasilp
Moodle Link: None
Credits: 3 (0-9-5)
Description:
This is a software project course in which the students work in group to develop software according to the requirements provided by the users. The students will learn to integrate their knowledge and skills to perform each phase of software development, including requirement analysis, modeling, design, implementation, and testing, in order to obtain the required software, whose topic is decided by the advisor(s) or by the students themselves.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Any course offered at the International College
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies fundamental concepts of human perception, ergonomics, cognition, and psychology of the interaction between human and computer systems, and also covers the following topics on the design of interactive software: requirement analysis for interactive software, principles and techniques of user interface design, types of input devices, choosing appropriate input devices, and validation and usability evaluation of interactive software.
Prerequisite: Software Engineering Principle
Lecturer: Dr.Montri Phothisonothai
Moodle Link: None
Credits: 3 (x-x-x)
Description:
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (0-9-5)
Description:
In this course, the students will conduct their independent study, research and development of computer software using software engineering methodology. The students will be guided by their project supervisor to conduct research and software development with the aim that they can develop their own original work with their creativity and problem solving skills. The required project report must be submitted and presented to the examination committee at the end of the semester.
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies three important methods for software verification and validation: testing, peer reviews, and formal verification, with emphasis on testing. Topics on testing include the necessity and limitations of testing, an overview of test processes, testing throughout the software development life cycle, unit testing, test design techniques, test automation, tool support for testing, and test management. The course will study how software peer reviews, which can help detect and prevent software defects, are carried out in practice and study the inspection processes throughout the software development life cycle, including the inspection of requirement documents, design documents, code, and test plans. The course will also provide a basic understanding of formal verification, including how to prove the correctness of a simple program using Hoare logic.
Prerequisite: Software Engineering Principle
Lecturer: Dr. Natthapong Jungteerapanich
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a study of social, legal and moral issues raised by the development of information technology. The course examines the relationship between law, policy and technology related to current issues, including intellectual property, privacy, computer crime and various risks which may cause damages associated with computer usage.
Prerequisite: None
Lecturer: Dr. Vorapranee Khu-smith
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Any course offered at the International College
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (x-x-x)
Description:
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (0-9-5)
Description:
In this course, the students will conduct their independent study, research and development of computer software using software engineering methodology. The students will be guided by their project supervisor to conduct research and software development with the aim that they can develop their own original work with their creativity and problem solving skills. The required project thesis must be submitted together with the developed software and presented to the examination committee at the end of the semester.
Prerequisite: Software Project 1
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of selected advanced topics in computer networks which are important at present
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of selected advanced topics in database systems which are important at present
Prerequisite: Database Systems
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of selected advanced topics in software architecture which are important at present
Prerequisite: Software Design and Architecture
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of selected advanced topics in software engineering which are important at present
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers applications of logic in artificial intelligence, communication of multi-agents, intelligent search, advanced planning, advanced learning, natural language understanding, applications of artificial neural networks and genetic algorithms, and recent techniques in artificial intelligence. The course also studies applications of artificial intelligence in related computing areas.
Prerequisite: Artificial Intelligence
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course provides an overview of the challenges of big data and existing solutions. Covered in this course include an introduction to the following topics: data capturing, storage, processing, retrieval, analysis, and visualization. The students will also learn some useful software tools or libraries for processing or analyzing big data.
Prerequisite: Information Systems and Databases
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides an introduction to the concepts of business intelligence (BI) as components and functionality of information systems. It explores how business problems can be solved effectively by using operational data to create data warehouses, and then applying data mining tools and analytics to gain new insights into organizational operations. Detailed discussion of the analysis, design and implementation of systems for BI, including: the differences between types of reporting and analytics, enterprise data warehousing, data management systems, decision support systems, knowledge management systems, big data and data/text mining. Case studies are used to explore the use of application software, web tools, success and limitations of BI as well as technical and social issues.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study of concepts, algorithms, and theories related to computational intelligence. The subject covers the following topics: neural networks, fuzzy logic, evolutionary computation, swarm intelligence, other natured-inspired algorithms, and applications of computational intelligence.
Prerequisite: Data Structures and Algorithms, Linear Algebra
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a foundation of computer and network security. It covers security policy design, information classification and access control, security infrastructure design, software application security, network partitioning, risk analysis, virtual private networks, platform hardening, vulnerability assessment, basic cryptography (both symmetric key and asymmetric key), digital signature, authentication, personal identifier, certificate and key management. This course also emphasizes on mail security, IP security, web security, network intrusion, signatures of attacks, as well as intrusion detection and prevention using firewalls and other security software.
Prerequisite: Computer Networks and Communications
Lecturer: Dr. Pipat Sookavatana Dr. Vorapranee Khu-smith
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course provides an overview of graphic systems, including input-output devices, sean conversion, two-dimensional transformations, translation, sealing, rotation, reflection, shearing, windowing concepts, clipping algorithms, window-to-viewport transformation, three-dimensional concepts, three-dimensional representations, three-dimensional transformations, three-dimensional viewing, hidden-surface and hidden-line removal, shading and color models, and applications of computer graphics to the development of graphical user interface and output display for computer software.
Prerequisite: Data Structures and Algorithms, Mathematics 2
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
With very limited memory and processing power as well as low energy consumption of IoT (Internet of Things) devices, their communication networks are so designed and developed to meet these constraints. This course will focus on the emerging industrial standard of computer networks and communications technologies developed specifically for IoT devices, including network architectures and protocols layers.
Another important topic covered by this course is network security for IoT communication. It is the study how to make secure communications between IoT devices by incorporating encryption into the communication protocol. Widely use encryption techniques are also studied.
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies concepts and applications of computer vision. It covers the following topics: image operations, geometry, feature detection, color space, corner and interest point detection, texture analysis, shape recognition, object recognition, 3D-vision, and motion analysis.
Prerequisite: Digital Image Processing
Lecturer: Dr. Ukrit Watchareeruetai
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides an introduction to data mining. Students will learn the basics of data mining algorithms with an emphasis on their real world applications. Students will learn user data types, data mining methodology, measuring the effectiveness of data mining, overview of data mining techniques, market basket analysis, memory-based reasoning, automatic cluster detection, link analysis, and artificial neural networks and genetic algorithms for data mining and data warehouse.
Prerequisite: Information Systems and Databases, Probability and Statistics
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course intends to develop the student’s software engineering and database administration skills required for designing, creating, running and developing a relational database application and its associated application software suite and the student’s understanding of how conventional programming languages interact with databases, teaches the student the fundamental concepts, theories and methods of the relational data model, and introduces Information Retrieval concepts and techniques.
Prerequisite: Data Structures and Algorithms
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces fundamental concepts of digital image processing. It covers the following topics: digital image, representation, digitization, histogram, point-processing, convolution, filtering, edge detection, frequency domains, image enhancement, image segmentation, and applications of digital image processing.
Prerequisite: Linear Algebra
Lecturer: Dr. Ukrit Watchareeruetai
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This is a basic course in digital signal processing, covering the following topics: discrete-time signals and systems, z-transform, sampling of continuous-time signals, transform analysis of linear time-invariant systems, structures for discrete-time systems, filter design techniques, discrete Fourier transform, and the applications of digital signal processing.
Prerequisite: Mathematics 3
Lecturer: Dr.Montri Phothisonothai
Moodle Link: None
Credits: 3 (3-0-6)
Description:
In this course, the students will study the principles and learn to develop programs for digital signal processors. Topics covered in this course are fundamentals of digital signal processing, digital signal processing systems and development tools, architectures of digital signal processors and instruction sets, code optimization, implementation of finite impulse response filters and infinite impulse response filters, fast Fourier transform, and real-time digital signal processing.
Prerequisite: Digital Signal Processing and Applications
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course emphasizes on distributed computing from a system software perspective. The topics include distributed system architectures, distributed programming, message passing, remote procedure calls, group communication, naming and membership problems, logical time, consistency, fault-tolerance, and recovery. It also covers concepts and architectures for distributed processing and distributed transaction processing, process synchronization and concurrency control, quality of service, security, and various middleware (e.g. CORBA, DCE and DCOM).
Prerequisite: Computer Networks and Communications
Lecturer: Dr. Yunyong Teng-amnuay
Moodle Link: None
Credits: 3 (3-0-6)
Description:
In this course, the students will learn how to apply control theory to embedded systems. The course will introduce basic control theory with practical insight into the tools for modeling and simulating dynamic physical systems, and the methods for designing the software for embedded microcontrollers to control them. This course covers the following topics: fundamentals of control systems, PID control, plant models, classical control system design, pole placement, optimal control, and discrete time systems and fixed point mathematics. The students will be guided to develop corresponding software to control physical systems using the studied control algorithms.
Prerequisite: Mathematics 3
Lecturer: None
Moodle Link: None
Credits: 3 (2-2-5)
Description:
This course covers the following topics: basic structures of the hardware and the software on embedded systems for various applications, design considerations for software on embedded systems (including resource constraints, energy consumption, time constraints, reliability, and fault tolerance), requirement specifications for software on embedded systems, methodologies and tools for the design and development of embedded software, operating systems for embedded systems, device drivers, and verification and validation techniques for software on embedded systems.
Prerequisite: Microprocessors and Interfacing
Lecturer: Dr. Rutchanee Gullayanon
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies the design and development of large-scale software for enterprises. The students will learn important design considerations and some important architectures (including enterprise architecture) for enterprise software, learn how to interoperate between the software sub-systems, e.g. via web services and some standard of data interchange, and make this interoperability secure, and also learn how to utilize software frameworks and technologies to support the development of enterprise software.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a study of technology, science, and art involved in the development of computer games. Students will study a variety of software technologies relevant to computer game design and development, including programming languages, scripting languages, operating systems, file systems, networks, simulation engines, and multimedia design systems. Lectures and discussion topics will be taken from several areas of computer science: simulation and modeling, computer graphics, artificial intelligence, real-time processing, game theory, software engineering, human-computer interaction, graphic design, and game aesthetics.
Prerequisite: Data Structures and Algorithms
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a foundation of geographic information systems (GIS). The topics include meaning and applications of GIS, digital representation, map projection, coordinate systems, spatial data modeling, spatial databases, geometry functions, data input and editing, remote sensing, GPS, GIS data quality, GIS data visualization, GIS requirement analysis, design, and development, GIS applications, Web-based GIS, Mobile GIS, software tools for GIS development, and GIS technology and its future.
Prerequisite: Information Systems and Databases
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies fundamental theory and techniques of information retrieval, focusing on text-based information and the Web. The main components of the course include models for information retrieval (including Boolean models, vectorspace models, and probabilistic models), retrieval evaluation, query languages and processing, indexing and searching, classification, clustering, link analysis, and web crawling and searching.
Prerequisite: Data Structures and Algorithms, Probability and Statistics
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Intelligent agents are software programs that can sense their environments, choose rational actions based on their percepts, and execute these actions. Often, agents interact with other agents, either by cooperating or competing with each other; such environments are called multi-agent systems. The course covers the underlying theory of agents, the common agent architectures, methods of communication and cooperation, and the potential applications of agents. Specific topics include fundamental techniques for developing intelligent agents and multi-agent systems, including cognitive, logic-based, and belief- desire-intention architectures, inter-agent communication languages and protocols, distributed problem solving, planning, and constraint satisfaction methods, distributed models of rational behaviors, and learning and adaptation in multi-agent systems.
Prerequisite: Artificial Intelligence
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course provides an introduction to parallel computing and parallel programming, covering the following topics: concepts of parallel computing, architectures of parallel computing systems, SIMD and MIMD, shared-memory and distributed-memory systems, parallel algorithms, data dependencies and parallelism, synchronization, performance analysis of parallel programs, and programming in parallel programming languages.
Prerequisite: Operating Systems
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces fundamental concepts of robotics. The topics covered include forward and inverse kinematics, DH parameters, the Jacobian, trajectory planning, basics of robot control systems, including actuators and sensors for robots.
Prerequisite: Mathematics 2
Lecturer: Asst.Prof.Dr. Chaiwat Nuthong
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a comprehensive study of contemporary techniques and languages for knowledge representation and reasoning about knowledge. The course covers semantic modeling, e.g. semantic networks, conceptual graphs, ontology representation in Semantic Web, frame representation, rule-based representation, and logical representation, e.g. first-order logic, description logic, logic of actions and beliefs. For the reasoning about knowledge, the topics include abduction, deduction, induction, as well as reasoning about time, state, events, actions, and beliefs.
Prerequisite: Artificial Intelligence
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Study fundamental concepts of learning and well-known machine learning algorithms. The subject covers the following topics: fundamental probability theory; learning theory; bias/variance trade-off; Vapnik-Chervonenkis theory; supervised/unsupervised learning; generative/discriminative learning; parametric/non-parametric learning; reinforcement learning; applications of machine learning.
Prerequisite: Data Structures and Algorithms, Probability and Statistics
Lecturer: None
Moodle Link: None
Credits: 3 (2-2-5)
Description:
This course studies some architectures of the microprocessors and microcontrollers, which are widely used in embedded systems, as well as peripherals interfacing, and software development on those architectures. The topics include the architectures of microprocessors and microcontrollers in embedded systems, memory interfacing, buses, interrupts, interfacing with input/output devices, the conversion between analog signals and digital signals, interfacing with sensors and actuators, and data communication through ports (such as RS-232 ports, USB ports, and parallel ports).
Prerequisite: Digital Circuit and Logic Design
Lecturer: Asst.Prof.Dr. Kasin Vichienchom
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces fundamental concepts of mobile computing. These include an overview of hardware architectures of mobile devices, wireless communications and networking technologies for mobile devices, sensors and peripherals, location awareness, mobile operating systems and software architectures, software development for mobile devices, and applications of mobile devices.
Prerequisite: Data Structures and Algorithms
Lecturer: Dr. Pipat Sookavatana
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces the field of Natural Language Processing. It includes relevant background material in linguistics, mathematics, probabilities, and computer science. Some of the topics covered in the class are text similarity, part of speech tagging, parsing, semantics, question answering, sentiment analysis, and text summarization.
Prerequisite: Data Structures and Algorithms
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides the students with a study of network application development, networking protocol usage, and performance of network applications. The students will gain understanding and practical skills in developing programs which communicate using protocols in different layers of the Internet protocol suite, including application-layer protocols (such as HTTP, FTP, DNS, SMTP, etc.), transport-layer and network-layer protocols (such as TCP, UDP, IP, ICMP, etc.), as well as secured protocols (such as HTTPS, IPSec, and various authentication protocols). The students will learn to use networking services provided by the operating system or support libraries, as well as techniques and tools which facilitate the testing and debugging of network applications.
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course provides an introduction to operation research methods, including linear programming, dynamic programming, game theory, queuing theory, CPM and PERT, and operation research techniques applied to industrial control planning and management.
Prerequisite: Mathematics 2
Lecturer: Dr.Churirat Boonkhun
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies basic concepts and methodologies of pattern recognition. The techniques include supervised and unsupervised learning, handling and scaling of multidimensional data, dimension reduction methods, feature selection and feature extraction, and validation of algorithms.
Prerequisite: Probability and Statistics
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course studies the evoluation of programming languages and their relationship. It covers important concepts and issues in programming language design, including syntax and semantics of programming languages, data types, abstraction, polymorphism, and program decomposition. The course also studies important programming language paradigms, such as object-oriented programming, functional programming, and logic programming, by referring to case studies of contemporary programming languages, such as C, C++, Java, Lisp, Prolog, ML, and Python.
Prerequisite: Object-Oriented Concepts and Programming
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Selected topics of current interest in software engineering for enterprises
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Selected topics of current interest related to intelligent systems
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Selected topics of current interest related to the Internet of Things
Prerequisite: None
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The Semantic Web has been envisioned by many to be a next generation of the current web. The Semantic Web makes it easy for anyone to publish, and access to, distributed semantic information on the Internet; this information allows computers and software agents on the Internet to communicate with each other and work together automatically. The course covers mark-up languages of web contents, that is, HTML and XML. For XML, it covers XML DTDs, XML Schemas, XPaths, XLinks and XPointers, including how to process an XML document with DOM. For the Semantic Web mark-up languages, the course covers RDF, RDFS, OWL, and rule mark-up languages. Finally, the course also includes different approaches of knowledge representation of Semantic Web contents, such as First-order Logic, Description Logic, and Conceptual Graphs, as well as reasoning and communication of Semantic Web information by intelligent agents.
Prerequisite: Artificial Intelligence
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Service-Oriented Architecture (SOA) is a way to organize and use distributed services that may be controlled by different owners. SOA provides a uniform means to offer, discover, interact with, and use services to produce desired effects consistent with the specified preconditions and requirements. This course describes SOA concepts and design principles, interoperability standards, security considerations, runtime infrastructure and web services for the implementation of SOA.
Prerequisite: Object-Oriented Analysis and Design
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers the architectures of operating systems on current mobile platforms, computer languages and software tools for developing software on mobile devices, GUI design, interfacing with various hardware devices, such as sensors, GPS receivers, and various input devices, and the use of software APIs for software development on mobile devices.
Prerequisite: Data Structures and Algorithms
Lecturer: Asst.Prof.Dr. Visit Hirankitti
Moodle Link: None
Credits: 3 (3-0-6)
Description:
In this course, the students will work in teams to study and practice skills in software entrepreneurship, through setting up and running virtual software development companies. The students will study how to find prospective commercial opportunities for a technological idea, how to acquire resources including talent and capital, and how to market the idea, as well as manage the growth. The emphasis will be on how small software companies are created and managed, the financial and legal frameworks within which such companies operate, and the management of the companies for successful operations. Topics include market studies, feasibility studies, cost analysis, intellectual property, contract negotiation, resource management, business planning, finance, and marketing. The final outcome of each group of students will be a business plan for commercializing their software products.
Prerequisite: None
Lecturer: Dr. Teerawet Titseesang
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers a step-by-step study of software metrics. It includes an introduction to foundations of measurement theory, models of software engineering measurement, software product metrics, software process metrics and measuring management. The course comprises of the following basic modules: measurement theory (overview of software metrics, basics of measurement theory, goal-based framework for software measurement, empirical investigation in software engineering), software product and process measurements (measuring internal product attributes: size and structure, measuring external product attributes: quality, measuring cost and effort, measuring software reliability, software test metrics, and object-oriented metrics), and measurement management.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces concepts, metrics, and models in software quality assurance. The course covers components of software quality assurance systems before, during, and after software development. It also discusses metrics and models for software quality as a product, in process, and in maintenance. The Capability Maturity Model (CMM) will be introduced, as well as related ISO and IEEE standards. Students will gain an understanding of software quality and approaches to assure software quality.
Prerequisite: Software Engineering Principle
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course describes TCP/IP networks, the topics of study are TCP/IP layers, Internet addresses, domain name systems, TCP/IP protocol suites: IPv4, IPv6, ARP, ICMP, TCP and UDP, Internet routing and routing protocols. It also describes various application protocols, including IGMP, DNS, FTP, TELNET, SMTP, and studies Internet security and the development of software to run on TCT/IP networks.
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides a foundation of current and future web technologies, which include the development of web applications and services, web components, and network protocols necessary for web programming. The course begins with the basics such as markup languages HTML and XML, HTTP protocol and the mechanism of how a web server handles requests, web programming languages, cookies, session management, database integration, performance tuning, and security issues concerning the web applications. This course emphasizes on both client-side programming using JavaScript and server-side programming using Python. Finally this course introduces web service development and semantic web technology.
Prerequisite: Computer Networks and Communications
Lecturer: Asst.Prof.Dr. Todsanai Chumwatana
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course is an introduction to fundamental concepts of wireless networks of embedded systems and wireless sensor networks. Topics include: wireless communication and networking technologies, i.e. Bluetooth, ZigBee, LoRa, network architecture, wireless communication protocols, and software design and programming for the wireless networks.
Prerequisite: Computer Networks and Communications
Lecturer: None
Moodle Link: None
SE Years 3 and 4 @ University of Glasgow
Credits: 3 (3-0-6)
Description:
This course intends to teach the student to develop practical expertise in, and understanding of, concurrent programming in Java; to explore a variety of different concurrency control mechanisms; to substantially develop the knowledge of C gained during summer preparatory reading; to develop the students' experience and understanding of programming in a low-level language; to develop the ability to craft efficient and effective code in a pointer-rich language; to introduce concurrent programming in C using the PThreads library; to further develop the ability to select and re-use existing software components and libraries; and to enhance the students' skills in engineering software as interacting sub-systems, using interfaces and libraries to manage medium sized software development projects.
Prerequisite: Data Structures and Algorithms
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course intends to develop the student's skills in the design and analysis of algorithms; to study algorithms for a range of important standard problems; to introduce the student to the theory of NP-completeness together with its practical implications; and to make the student aware of fundamental concepts of computability.
Prerequisite: Data Structures and Algorithms
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course intends to develop the student’s software engineering and database administration skills required for designing, creating, running and developing a relational database application and its associated application software suite and the student’s understanding of how conventional programming languages interact with databases, teaches the student the fundamental concepts, theories and methods of the relational data model, and introduces Information Retrieval concepts and techniques.
Prerequisite: Data Structures and Algorithms
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course aims at offering students the opportunity to become familiar with one of the most important interaction paradigms; enabling students to become skilled in the use of techniques and tools for modelling, implementing and evaluating interactive systems; and enabling students to apply the theories, techniques and tools presented in the course via challenging exercises which combine design, implementation and evaluation.
Prerequisite: Software Engineering Principle
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course intends to introduce the fundamental concepts and theory of communications, provide a solid understanding of the technologies that support modern networked computer systems, introduce low-level network programming concepts, and give students practice with systems programming in C, and provide our students with the ability to evaluate and advise industry on the use and deployment of networked systems.
Prerequisite: Data Structures and Algorithms
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course intends to introduce the students to the styles of coding required with an OS, to give a thorough presentation of the contents of a traditional OS, including the key abstractions, to show the range of algorithms and techniques available for specific OS problems, and the implications of selection specific algorithms for application behavior, to develop an integrated understanding of what the computer is doing, from a non-naive view of hardware to the behaviour of multi-threaded application processes, and present the alternatives and clarify the trade-offs that drive OS and hardware design.
Prerequisite: Data Structures and Algorithms
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces the social, ethical, legal, and professional issues involved in the widespread deployment of information technology. It teaches students to develop their own, well-argued positions on many of these issues.
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (2-2-5)
Description:
This course intends to introduce students to modern software development methods and techniques for building and maintaining large systems, prepare students to apply these methods and techniques presented to them in the context of an extended group-based software development exercise, make the students aware of the professional, social and ethical dimensions of software development, and instill in the students a professional attitude towards software development.
Prerequisite: Software Engineering Principle
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course intends to provide a conceptual framework that will enable students to understand familiar programming languages more deeply and learn new languages more efficiently, show how the syntax of a programming language can be formalized, explain the functions of compilers and interpreters, how they interact, and how they work, and show how to implement a compiler using compiler-generation tools.
Prerequisite: Data Structures and Algorithms
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 9 (0-18-9)
Description:
This course gives students the experience of working on a substantial team based software project. The course provides the opportunity to apply the principles, practices and tools learned during the associated Professional Software Development course.
Prerequisite: Software Engineering Principle
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (0-45-0)
Description:
This course demands the student to undertake a summer placement of at least 10 weeks to gain relevant practical experience. The objectives are to give students the experience of a real software development environment, to embed the software engineering theory, principles and tools studied through practical experience, and to develop a student's ability to evaluate and enhance their personal software process.
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 12 (0-24-12)
Description:
This course requires the students to undertake a substantial piece of individual work, involving planning, specification, design, execution, evaluation, presentation and report-writing.
Prerequisite: Software Engineering Principle
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (x-x-x)
Description:
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (x-x-x)
Description:
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (x-x-x)
Description:
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (x-x-x)
Description:
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (x-x-x)
Description:
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (x-x-x)
Description:
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (x-x-x)
Description:
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (x-x-x)
Description:
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course adds depth and some breadth to the material covered in Networked Systems. The student will learn how fundamental principles of communications theory underpin the structures of the global telecommunications network and the Internet and determine the logic of how these networks interact.
Prerequisite: Networked Systems
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course will review research literature on systems programming techniques and operating systems design, discuss the limitations of deployed systems, and show how the operating system infrastructure might evolve to address the challenges of supporting modern computing systems.
Prerequisite: Operating Systems
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course gives students the opportunity to learn and practice advanced principles, methods and tools in Software Engineering. The course is intended for students who have experience of software development through a summer internship or similar. The course covers technical and management skills that are needed for mentoring and leading teams of software developers. The course is delivered in collaboration with an established software industry partner.
Prerequisite: Professional Software Development
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Advanced topics of current interest on database systems and technology
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Advanced topics of current interest in Software Engineering
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The aims of the course are to present a broad range of algorithm design methods, with examples chosen to reflect practical applications, to enable students to make educated choices between strategies for algorithmic problem-solving, and to convey the significance of computational complexity, and to present a range of methods for dealing with it in practice.
Prerequisite: Algorithmics I
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This is an introductory course on Artificial Intelligence, giving the students an overview of intelligent agent design.
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Big Data is nowadays manifested in a very large number of environments and application fields pertaining to our education, entertainment, health, public governance, enterprising, etc. The course will endow students with the understanding of the new challenges big data introduces and the currently available solutions. These include (i) challenges pertaining to the modelling, accessing, and storing of big data, (ii) an understanding of the fundamentals of systems designed to store and access big data, and (iii) programming paradigms for efficient scalable access to big data.
Prerequisite: Database Systems
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The course explains in depth how a computer works, by developing a digital circuit that implements an instruction set architecture. The memory system, including cache and virtual memory, and support by the architecture for the operating system, are also covered.
Prerequisite: Operating Systems
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course is intended to equip students with the necessary theoretical and practical understanding of image processing and computer vision techniques to enable them to meet the challenges of building advanced image-based applications. Examples of potential vision-based applications include: image understanding in mobile devices (cameras, phones, tablet computers etc.), robot vision systems, autonomous vehicle guidance and road monitoring, driver attention monitoring, image database query systems, creative media production tools, interactive gaming, augmented reality and visual biometrics, forensic image analysis, security and surveillance, and medical imaging. The course will focus on the application of recent advances in Computer Vision techniques that underpin a wide variety of systems and products based on methods such as: face detection, object recognition, tracking, segmentation and 3D imaging.
Prerequisite: Linear Algebra
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course aims to develop in students a better understanding of and confidence in Computing Science/Software Engineering as a subject; provide students with an awareness and experience of operating as a teacher and facilitator in a school environment; enable students to develop a set of key transferable skills such as reflecting on critical incidents, analysis, developing coherent arguments, communication, planning and so on; promote better relations between schools and university computing; heighten pupils' awareness of the many forms of computing, including its forms as academic discipline (computing science), distinctive profession (software engineering) and as a ubiquitous family of skills (ICT).
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides an introduction to the foundational aspects of computer security, such as algorithms and protocols. It also covers ways in which these systems can be attacked and techniques for thwarting these attacks.
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The aim of this course is to introduce students to the concepts of information management by way of databases, including relational databases and other data management solutions. The course will provide students with the opportunity to develop skills which will assist them to manage information in the current digital age.
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Distributed systems are ubiquitous in commerce and industry, from the international banking network to process control in large industrial sites. This course builds on the introductions to operating systems and networked systems in Year 3, specifically focusing on the software engineering issues raised by distributed systems and algorithms for use in distributed systems. The key feature of this course will be the assumption that a distributed system is one in which: partial failure is to be expected; local and remote operations differ greatly in cost; and an element of message passing is required for communication.
Prerequisite: Networked Systems, Operating Systems
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course intends to give students an understanding of the practical challenges associated with embedded software development, experience with multiple development environments for mobile/embedded software development (e.g. Symbian, Windows Mobile), and ability to develop and deploy and debug software on mobile devices.
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course will focus on cyber security management within an organisation. It will ensure that students will know how to satisfy legislation related to securing personal and sensitive information and how to manage data correctly.
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Functional programming is introduced using Haskell. The standard programming techniques, as well as some advanced topics, are covered and applied to realistic programming problems.
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course provides an introduction to the human side of information security.
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The aim of this course is to introduce students to advanced topics in Human-Computer Interaction. It focuses on multimodal interaction, novel forms in interaction, users with different abilities and social media.
Prerequisite: Interactive Systems
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The aim of this course is to present students with an in-depth examination of the theoretical and practical issues involved in providing tools to access large collections of documents, especially in the context of the World Wide Web and the practical engineering issues raised by the design and implementation of an information retrieval system.
Prerequisite: Database Systems
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
The aim of this course is to provide students with a comprehensive overview of web application development. It will provide students with the skills to design and develop distributed web applications in a disciplined manner, using a range of tools and technologies. It will also strengthen their understanding of the context and rationale of distributed systems.
Prerequisite: Database Systems
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
IT Architecture's key role is to design and maintain system integrity of large heterogenous enterprise systems. Such systems may involve integrating disparate systems such as legacy systems, new web-based externally facing systems, systems developed externally or in collaboration with other organisations. IT Architects may also be faced with strategic problems caused by enterprise mergers or acquisitions. Within this context, this course aims to give students: (1) an appreciation of the need for IT Architecture and the role of the IT architect; (2) an understanding of the foundations of IT architecture and the best practice in applying architectural principles.
Prerequisite: Professional Software Development
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
A practical introduction to the foundations of machine learning
Prerequisite: Linear Algebra
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course gives students an overview of the fields of mobile HCI and ubiquitous computing, and an understanding of the practical challenges associated with embedded software development for mobile interactive systems, and associated services.
Prerequisite: Interactive Systems
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Modelling of concurrent, communicating systems using non-probabilistic and probabilistic techniques, and verification using the SPIN and PRISM model checkers.
Prerequisite: Discrete Mathematics
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Multimedia has become an indispensable part of modern computer technology. It is part of everyday life be it broadcasting material, educational or entertainment materials and/or personal videos or images. Better solutions are needed due to the growth and proliferation of multimedia in our daily life. The course will focus on advances in the development of multimedia systems and will be delivered with an emphasis on the practical side. It will introduce the theoretical and practical skills needed in handling multimedia data.
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course covers the fundamental principles, of the scientific method. Students will learn the core skills of planning, designing, executing, evaluating and presenting research.
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course encourages students to apply engineering techniques to support the development of safety-critical applications. It also encourages students to consider the particular methodological and professional issues that surround the development of safety-critical systems.
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Selected topics of current interest on software engineering for enterprises
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Selected topics of current interest related to intelligent systems
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
Selected topics of current interest related to the Internet of Things
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
Credits: 3 (3-0-6)
Description:
This course introduces different approaches to software project management, and a variety of tools are available to support effective management of software development projects.
Prerequisite: None
Lecturer: University of Glasgow Staff
Moodle Link: None
The B.Eng. in Software Engineering program welcomes both Thai and international applicants. For 2021 Admissions, the program accepts new students through 2 admission channels:
In both channels, there are a number of application rounds. International applicants residing outside Thailand are recommended to apply through direct admissions. Please see below for the admission requirements and schedules for each round of each admission channel.
TCAS Admissions
TCAS admissions are open to Thai and non-Thai nationals who graduated or about to graduate from schools in Thailand. Currently, TCAS Round 1 is open. There are many application tracks for applicants of the Software Engineering program in TCAS Round 1. See below for the admissions requirements and schedule for each track.
- การรับแบบ Portfolio โครงการเรียนดี ช้างเผือก กลุ่มโรงเรียนสายสามัญ
- การรับแบบ Portfolio โครงการรางวัลและประกาศนียบัตรทางวิชาการ
- การรับแบบ Portfolio โครงการเพชรยอดมงกุฎ
- การรับแบบ Portfolio โครงการโรงเรียนวิทยาศาสตร์
- โควตานักเรียน มูลนิธิส่งเสริมโอลิมปิกวิชาการและพัฒนามาตรฐานวิทยาศาสตร์ศึกษา ในพระอุปถัมภ์สมเด็จพระเจ้าพี่นางเธอ เจ้าฟ้ากัลยาณิวัฒนา กรมหลวงนราธิวาสราชนครินทร์ (สอวน.)
Applications for TCAS Round 1 can be submitted on KMITL's TCAS admissions website until 21 December 2020 at
Direct Admissions
Thai and non-Thai candidates both in Thailand and abroad may apply for admissions directly with the Faculty of Engineering, KMITL. Selection of successful candidates through the direct admissions is based on the submitted academic records, standardized test scores, and an interview. There is no paper examination.
Note that, even though the direct admissions are done through the Faculty of Engineering directly, all accepted candidates who are Thai nationals are still required to confirm the acceptance of their admission offers on the national TCAS website during the period specified by the Council of University Presidents of Thailand (CUPT).
Please see the application procedure and criteria below.
1. Eligibility requirements
To be eligible for consideration, you must satisfy the requirements set out in 1.1, 1.2, 1.3, and 1.4 below.
1.1 Educational qualifications
You must have obtained or be expected to obtain prior to the start of Academic Year 2021 an educational qualification equivalent to (or higher than) a high school diploma in Thailand. Please see https://bit.ly/2Eax5aL for the criteria for high school equivalency endorsed by the Council of University Presidents of Thailand.
1.2 General academic requirement
You are expected to demonstrate good academic competence. Specifically, you must be able to provide at least one of the following:
- SAT general test score of 1020 or higher
- GSAT score of 1020 or higher
- ACT composite score of 19 or higher
- IB Diploma score of 29 or higher
- Cumulative GPA in high school (5 semesters) in the 75th percentile
- National higher education board exam or university entrance exam (such as A-Level, Gaokao, GAT/PAT) that the admission committee considers equivalent to one of the above qualifications
1.3 Subject specific requirement
You are expected to demonstrate an excellent level of knowledge and skills of mathematics. Specifically, you must be able to provide at least one of the following:
- SAT Math score of 600 or higher
- GSAT Math score of 600 or higher
- SAT subject test Mathematics Level 1 or Mathematics Level 2 score of 600 or higher
- ACT mathematics score of 23 or higher
- IB Diploma score for a mathematics subject with a score of 5 or higher
- AP test for a mathematics subject with a score of 4 or higher
- A-Level or AS-Level for a mathematics subject with grade B or higher
- PAT 1 (mathematics) score of 90 or higher
- Overall average of the grades for all mathematics subjects taken in high school at least 3 out 4 (or equivalent)
- Test score or qualification that the admission committee considers equivalent to one of the above
1.4 English language proficiency
You are expected to demonstrate excellent skills of English language for academic purposes. Specifically, you are expected to provide at least one of the following:
- TOEFL (iBT) score of 79 or higher
- TOEFL (ITP or paper-based test) score of 550 or higher
- IELTS score of 6.0 or higher
- Cambridge English Exams (FCE/CAE/CPE) score of 170 or higher
- IB - English A1 or A2 score of 4 or higher
- IB - English B (HL) score of 5 or higher
- KMITL-TEP score of B2 or higher
Note: The applicant who marginally fails the above requirement on English language proficiency may be admitted upon the condition that the applicant enrolls and passes English as a Second Language (ESL) courses offered by the Faculty of Engineering before or during the first year of study at KMITL. Additional fees may apply.
2. Application procedure and schedule
The application procedure and schedule are as shown in the following table.
Activities |
Dates |
---|---|
1) Application submission and application fee payment
|
4 Jan 2021 |
2) Interview candidate notification
|
11 Jan 2021 |
3) Interview
|
17 Jan 2021 |
4) Admission decision
|
27 Jan 2021 |
5) Offer acceptance through TCAS Clearing-house (for Thai nationals only)
|
22-23 Feb 2021 |
6) Enrollment confirmation and tuition fee payment
|
4-9 Mar 2021 |
7) Start of Semester 1/2021 |
Aug 2021 |
Supporting documents
The following documents should be uploaded with your application.
- Photocopy of your national identification card or passport (only the page with your photo)
- Latest high school transcript
- Examination results - SAT, GSAT, ACT, IB etc.
- English proficiency test results - IELTS, TOEFL etc.
- (Optional) Certificate of excellence in academic performance issued by the Faculty of Engineering, KMITL
The following documents can either be uploaded with your application or be brought with you on the day of the interview.
- (Optional) Portfolio of your past activities and achievements. In case you have an online portfolio, no need to print it out - just include the URL link to your online portfolio on your application.
- (Optional) Two recommendation letters from your teachers or supervisors. Preferably in sealed envelopes.
3. Tuition fees
The tuition fee rates (as of Academic Year 2021) for this program are as follows:
- Tuition fee rate in Years 1-2 at KMITL: 90,000 THB per semester (180,000 THB per year)
- Tuition fee rate in Years 3-4 at KMITL: 90,000 THB per semester (180,000 THB per year)
- Tuition fee rate in Years 3-4 at University of Glasgow: approx. 18,000 GBP per year
4. Scholarships
The Academic Excellence Scholarship for Freshmen is offered to selected applicants with excellent academic performance. Only the applicants who apply for admissions in the early round and the first round may apply for this scholarship. The applicant who wishes to be considered for this scholarship must indicate on their online application form that they would like to apply for this scholarship. The minimum requirements for applying for the scholarship are as follows:
- SAT general test composite score of at least 85 world percentiles and
- TOEFL score of at least 550 (paper) or 213 (CBT) or 79 (iBT) or IELTS score of at least 6.0.
Due to the limited number of scholarship awards, the admissions committee reserves the rights to select the applicants with highest academic achievements to be awarded this scholarship.
5. Contact
For all enquiries regarding the admission and applications, please contact the admission team by phone at 02-329-8397, 099-496-1526 or 081-751-4994 or by email at ic@kmitl.ac.th. The applicant is advised to follow the announcements regarding the admission on the website http://www.reg.kmitl.ac.th/TCAS/.
Exchange Study at Frankfurt University of Applied Sciences
Qualified students in the SE program have an opportunity to join an exchange study for one semester in Year 3 Semester 2 at Frankfurt University of Applied Sciences (FRA-UAS), our partner university in Germany. The students joining the exchange program will be taking courses in the Bachelor Program in Computer Science at FRA-UAS and the results and credits of the study be transferred back to their study in the SE program.
This article provides an overview of the exchange program for the current SE students who wish to undertake an exchange study at FRA-UAS.



Frankfurt University of Applied Sciences (abbreviated as FRA-UAS) is a large practice-oriented higher-education institute specializing in science and technology. The University is located near the center of Frankfurt am Main, a city which is considered a multicultural city and the largest financial center in Continental Europe. It has a highly international student body, with over 10,000 students from more than 100 countries. The University has more than 650 academic staff and 220 administrative staff. There are four faculties:
- Architecture and construction
- Informatics and engineering
- Business and law
- Social work and health
The degree programs in the University adopts a bi-semester system. Each semester is 19-week long, with 15 weeks of teaching. The semester times are as follows:
- Winter Semester : October – February
- Summer Semester : Mid March – July
FRA-UAS has been offering many postgraduate programs in English and, recently, has started to teach a number of undergraduate courses in English, including the courses in the second year in its Bachelor Program in Computer Science.
By joining this exchange program, you are to take the following four mandatory courses in the Bachelor Program in Computer Science at FRA-UAS. The results of the study will be transferred back as the results of the equivalent courses in the SE program (see the table below).
Courses at FRA-UAS | ECTS | Courses at KMITL | Credit |
---|---|---|---|
Software Engineering - Design | 5 | Software Design and Architecture | 3 |
Realtime Systems | 5 |
Advanced Topics in Software Engineering (SE Track) |
3 |
IT Security | 5 | Computer Security | 3 |
Distributed Systems | 5 | Distributed Computing | 3 |
Programming Exercises | 5 | Team Software Project | 3 |
Additionally, in each year, there are 1 - 3 courses in the M.Sc. in High Integrity Systems program at FRA-UAS with transferable credits which you may take. The list of the courses is to be announced a few months before the exchange begins.
The following courses are the courses in the SE program in Year 3 Semester 2 which have no equivalent counterpart at FRA-UAS. You are to take these courses in Year 4 Semester 2 instead:
- Science & Technology for the Modern World
- Software Verification and Validation (unless the M.Sc. course "Advanced Testing Techniques" is taken at FRA-UAS)
- Software Development Process
- Compiler Construction (for students in the SE track only)
In accordance with the university's regulation, you are required to pay the normal tuition fee for Year 3 Semester 1 to KMITL as usual. FRA-UAS does not collect additional tuition fee for your study there. You are still required to prepare for other expenses during your period of study at Frankfurt. The following table provides a rough estimate of the essential expenses (not including leisure activities, souvenirs and other unnecessary items):
Expense | Estimated cost / semester (5 months) |
---|---|
Round-trip flight ticket | 47,000 THB |
Semester ticket (covering public transport) | 330 € |
Health insurance (80 €/month) | 400 € |
Accommodation (280 – 380 €/month) | 1,900 € |
Food (200 - 400 €/month) | 2,000 € |
Communication - Internet, cell phone (40 €/month) | 200 € |
Total per semester (5 months) | ≈ 250,000 Baht |
The following is the minimum requirement for joining the exchange program at FRA-UAS.
- Studying in Year 3 Semester 1 of the SE program.
- GPA at the end of Year 2 is 2.7 or higher.
- Excellent English language skills
Those who do not satisfy these requirements may be accepted at the discretion of the International College and FRA-UAS.
The application procedure is as follows:
- The candidate fills in the International College study abroad application form:
- IC evaluates and selects the candidates and announces the result of the selection.
- IC nominates the selected candidates to FRA-UAS.
- The selected candidates complete the application on FRA-UAS website
- FRA-UAS emails each candidate an acceptance letter and an application form for accommodations.
- Accepted candidates start applying for a student visa.
Activity | Date |
---|---|
Submit an intent to apply | 22 October 2018, 1pm |
Application deadline on FRA-UAS webseite (strict) | 1 November 2018 |
Arrival at Frankfurt | 4 March 2019, 9am |
Orientation activities | 4-9 March 2019 |
German language course | 18 March - 10 April 2019 |
Teaching begins | 15 April 2019 |
Teaching ends | 19 July 2019 |
End of exam period | 31 July 2019 |
Start of Academic Year 2019 at KMITL | Early August 2019 |
Contact
For all enquiries regarding the exchange study at FRA-UAS, contact
- Dr. Jochen Amrehn
- Dr. Natthapong Jungteerapanich
Useful links:
Software Industrial Internships
The Software Industrial Internship is a required component of the B.Eng. in Software Engineering program. The objectives are for the students to gain work experience in the software industry and to understand the role of a software engineer in business and the society. Every student is expected to undertake an internship position related to software development in a company in Thailand or abroad during the summer semester at the end of the second year of their study.
1. Requirements
1.1 Duration and Timing
The internship takes place in the summer semester of Year 2 of the program (late May - late July). The internship must consist of at least 7 weeks of full-time work. It may be longer if you wish.
1.2 Type of Work
An internship provides a excellent opportunity for you to apply your software engineering skills in the real world. The internship should be practical software engineering work, either as an individual project or as part of a larger project. You are expected to be involved in the coding of a software application or a dynamic website. Work consisting entirely of routine testing, internal support, development of a static website, or data entry would not be suitable.
As a guideline, you are expected to carry out at least the following amount of coding:
Type of Programming Languages | Amout of coding (not including comment) |
---|---|
High-level languages, such as Python, Visual Basic, ActionScript | 480 lines |
HTML + Mark-up/Scripting languages, such as PHP, JavaScript | 840 lines (not including the content of the web pages) |
Lower-level languages, such as C, C++, C#, Objective-C, Java | 840 lines |
At the beginning of the internship, you and your employer should agree on a clearly defined set of objectives of your work. It is acceptable for the internship to change direction as time goes on, provided that new objectives are identified and agreed.
The following examples illustrate opposite ends of the spectrum of suitable work:
- At the one end of the spectrum, a student working for a large company undertakes small clearly-defined pieces of work within a large project. The student must first make a significant effort to understand the existing framework, before going on to implementation of software components that will fit into that framework.
- At the other end of the spectrum, a student working for a small company develops a complete software package. The student first identifies the requirements, including a user interface design, and continues development through to a prototype implementation.
1.3 Supervision
Normally, the host company of your internship will assign a member of the company to be your supervisor. The supervisor will oversee the progress of your work and give you advice. The International College will also nominate one or more lecturers to be your internship advisors who will be available for consultation to both you and the company.
2. Assessment
The internship is an assessed component of your study. During the internship, the company will monitor your performance and then submit their assessment to the International College. The company's assessment will cover various aspects of your internship, including:
- the quality and quantity of your work
- your attendance record
- other attributes a good software engineer should possess, such as punctuality, responsibility, human relations, creativity, etc.
After your internship, you are required to submit an internship report and give a presentation of your work and your internship experience to the internship assessment committee. The committee will then evaluate your internship and give you either grade S (Satisfactory) or U (Unsatisfactory).
2.1 Internship report
An internship report is a short report (1,500 words or more) detailing:
- a brief outline of the company (its size, its main activities, the division or project in which you were employed, etc.);
- the original placement description and objectives (and any later changes to these);
- what you actually did;
- an honest evaluation of how successfully you achieved your objectives;
- a summary of what you learned from working in an industrial environment (for example, tools, techniques, processes, group working, deadlines);
- a reflection on the value of the placement, and how it could have been better.
The report should not just be a detailed technical description of what you did. The assessment committee is looking for a coherent, literate report in order to understand how your project fitted into the company you were working for, what you achieved, and your reflections on how the internship fitted into your educational experience.
Here are some hints on preparing a good report. Make sure that your report has a clear logical structure – it should not be just an unstructured flow of words telling a story. Avoid simply quoting PR material about the organisation you worked for – think about what the reader needs to know about the organisation in order to understand the context of your work. Do not focus on minute technical detail describing intricate pieces of code that you wrote.
The biggest problem for most students seems to be reflecting on the internship experience. Here are some questions you might like to think about in developing this part of the report:
- What new skills did you learn?
- What existing skills did you exercise or improve during the internship?
- Did your internship experience reinforce your existing knowledge? (Did you observe techniques taught at the International College actually used in practice?)
- Were there any techniques that you would like to have known before undertaking the internship?
- How could the internship experience have been improved?
- What knowledge and experience will you take forward as the most important lessons from your internship?
Both the content of the report and the quality of writing will be taken into account.
2.2 Presentation
After your internship, you are required to present your work and your experience during the internship to the assessment committee and your colleagues. You should plan for a 20-minute presentation, which will be followed by a 10-minute QA session.
2.3 Absence during internship
If, for any reason, you need to take a leave during the internship, you must ask for permission from the company. You must also submit a document supporting the request for your leave to your supervisor in the company (or a person who makes a record of your attendance). Absence without notice will result in failing the internship.
3. Procedure and Timetable
Activities | Dates |
---|---|
1) Apply for internship |
Until |
2) Registration (on-line) |
3-5 June 2020 |
3) Pre-internship meeting |
TBA |
4) Internship |
Late May - Early August 2020 |
5) Presentation and assessment |
Fri 14 August 2020 |
4. Contact
Should you have any problem or question, please contact:
Internship advisor : | Dr. Natthapong Jungteerapanich |
5. Download
- Template of the internship report (version 6)
- Examples of internship reports: 1, 2
Internship is an integral part of the KMITL - Glasgow 2+2 joint study program. Every student joining the 2+2 program is required to undertake an internship to order to simultaneously fulfill the requirements for the following courses:
- Industrial Placement, a required component of every student aiming for a bachelor degree in software engineering from the School of Computing Science, University of Glasgow (UoG);
- Software Industrial Training in Summer, a required course in KMITL's B.Eng. in Software Engineering program.
1. Requirements
1.1 Duration and Timing
The internship takes place in the summer semester of Year 2 of the program (late May - early August). The internship must consist of a full-time work related to software development, lasting at least 10 weeks.
1.2 Type of Work
An internship provides a excellent opportunity for you to apply your software engineering skills in the real world. The internship should be practical software engineering work, either as an individual project or as part of a larger project. You are expected to be involved in the coding of a software application or a dynamic website. Work consisting entirely of routine testing, internal support, development of a static website, or data entry would not be suitable.
As a guideline, you are expected to carry out at least the following amount of coding:
Type of Programming Languages | Amount of coding (not including comment) |
---|---|
High-level languages, such as Python, Visual Basic, ActionScript | 480 lines |
HTML + Mark-up/Scripting languages, such as PHP, JavaScript | 840 lines (not including the content of the web pages) |
Lower-level languages, such as C, C++, C#, Objective-C, Java | 840 lines |
At the beginning of the internship, you and your employer should agree on a clearly defined set of objectives of your work. It is acceptable for the internship to change direction as time goes on, provided that new objectives are identified and agreed.
The following examples illustrate opposite ends of the spectrum of suitable work:
- At the one end of the spectrum, a student working for a large company undertakes small clearly-defined pieces of work within a large project. The student must first make a significant effort to understand the existing framework, before going on to implementation of software components that will fit into that framework.
- At the other end of the spectrum, a student working for a small company develops a complete software package. The student first identifies the requirements, including a user interface design, and continues development through to a prototype implementation.
1.3 Supervision
Normally, the host company of your internship will assign a member of the company to be your supervisor. The supervisor will oversee the progress of your work and give you advice. The International College will also nominate one or more lecturers to be your internship advisors who will be available for consultation to both you and the company.
2. Assessment
The internship is an assessed component of your study. During the internship, the company will monitor your performance and then submit their assessment to the International College. The company's assessment will cover various aspects of your internship, including:
- the quality and quantity of your work
- your attendance record
- other attributes a good software engineer should possess, such as punctuality, responsibility, human relations, creativity, etc.
After the internship, you are required to submit an internship report to the internship assessment committee at KMITL. Your internship will be assessed first by the International College, KMITL, and then by the School of Computing Science, University of Glasgow.
2.1 Internship report
An internship report is a short report (2,500 - 4,000 words) detailing:
- a brief outline of the company (its size, its main activities, the division or project in which you were employed, etc.);
- the original placement description and objectives (and any later changes to these);
- what you actually did;
- an honest evaluation of how successfully you achieved your objectives;
- a summary of what you learned from working in an industrial environment (for example, tools, techniques, processes, group working, deadlines);
- a reflection on the value of the placement, and how it could have been better.
The report should not just be a detailed technical description of what you did. The assessment committee is looking for a coherent, literate report in order to understand how your project fitted into the company you were working for, what you achieved, and your reflections on how the internship fitted into your educational experience.
Here are some hints on preparing a good report. Make sure that your report has a clear logical structure – it should not be just an unstructured flow of words telling a story. Avoid simply quoting PR material about the organisation you worked for – think about what the reader needs to know about the organisation in order to understand the context of your work. Do not focus on minute technical detail describing intricate pieces of code that you wrote.
The biggest problem for most students seems to be reflecting on the internship experience. Here are some questions you might like to think about in developing this part of the report:
- What new skills did you learn?
- What existing skills did you exercise or improve during the internship?
- Did your internship experience reinforce your existing knowledge? (Did you observe techniques taught at the International College actually used in practice?)
- Were there any techniques that you would like to have known before undertaking the internship?
- How could the internship experience have been improved?
- What knowledge and experience will you take forward as the most important lessons from your internship?
Both the content of the report and the quality of writing will be taken into account.
2.2 Examinations
After submitting your internship report, you will be examined first by the internship assessment committee at the International College and then by another committee at UoG:
- At the International College, you will be asked to give a presentation of your work and your experience during the internship to the assessment committee. You should plan for a 20-minute presentation, followed by a 10-minute QA session. You will be given either grade S (Satisfactory) or U (Unsatisfactory). The International College will then forward their assessment report and your internship report to UoG.
- At the beginning of Year 3 at UoG, there will be an interview examination by UoG's internship assessment committee to assess your internship. The committee will assess your performance and the outcome of your internship based on the interview and your report.
2.3 Absence during internship
If, for any reason, you need to take a leave during the internship, you must ask for permission from the company. You must also submit a document supporting the request for your leave to your supervisor in the company (or a person who makes a record of your attendance). Absence without notice will result in failing the internship.
3. Procedure and Timetable
Activities | Dates |
---|---|
1) Apply for internship For detail on how to apply, please visit the internships course page on Moodle. |
Until |
2) Registration (on-line) |
3-5 June 2020 |
3) Pre-internship meeting |
TBA |
4) Internship |
Late May - August 2020 (tentative) |
5) Presentation at the International College |
TBA |
6) Interview at the School of Computing Science, UoG |
TBA |
4. Contact
Should you have any problem or question, please contact:
Internship advisors: | Dr. Natthapong Jungteerapanich |
5. Download
- Template of the internship report (KMITL-Glasgow 2+2 Program)
- Examples of internship reports: 1, 2
1. Requirements
1.1 Duration and Timing
The internship takes place in the summer semester of Year 2 of the program. The student is expected to work full-time for 7 - 10 weeks during late May to early August.
1.2 Type of Work
Every internship should make use of the student’s software engineering skills. The internship should be practical software engineering work either as an individual project or as part of a larger project. Students are expected to be involved in the coding of a software application or a dynamic website. Work consisting entirely of routine testing, internal support, development of a static website, or data entry would not be suitable work.
As a guideline, each student is expected to carry out at least the following amount of coding:
Type of Programming Languages | Amout of coding (not including comment) |
---|---|
High-level languages, such as Python, Visual Basic, ActionScript | 480 lines |
HTML + Mark-up/Scripting languages, such as PHP, JavaScript | 840 lines (only the code, not including the content of the web pages) |
Lower-level languages, such as C, C++, C#, Objective-C, Java | 840 lines |
The work the student is assigned to carry out during the internship should have clearly defined objectives which are mutually agreed upon by both the student and the employer. It is acceptable for the internship to change direction as time goes on, provided that new objectives are identified and agreed.
The following examples illustrate opposite ends of the spectrum of suitable work:
- At the one end of the spectrum, a student working for a large company undertakes small clearly-defined pieces of work within a large project. The student must first make a significant effort to understand the existing framework, before going on to implementation of software components that will fit into that framework.
- At the other end of the spectrum, a student working for a small company develops a complete software package. The student first identifies the requirements, including a user interface design, and continues development through to a prototype implementation.
1.3 Supervision
Since the student is likely to be inexperienced and cannot be expected to work without supervision, the company should assign a supervisor to offer advice to the student and monitor the student's progress. The International College will also nominate an internship supervisor who is available for consultation to both the student and the company throughout the internship.
2. Assessment
To assess the student's internship, we kindly ask the company to monitor the student's performance during their internship and complete the internship assessment form. The internship assessment form is a confidential document and should be returned directly to the International College after the student has completed their internship. The assessment by the company is a crucial component which will be used to assess the student.
3. Contact
Should the company have any problem, question, or suggestion regarding the internship or would like to recruit our students for internships, please contact the people below:
Internship advisors: | Dr. Natthapong Jungteerapanich |
4. Download
* This article is adapted from "Guide to Software Engineering Placement" and "How to Write Your Software Engineering Placement Report" by Prof. David Watt, School of Computing Science, University of Glasgow.
Internal Lecturers
Dr. Ukrit Watchareeruetai
Asst.Prof.Dr. Ronnachai Tiyarattanachai
Assoc.Prof.Dr. Veera Boonjing
Dr. Natthapong Jungteerapanich
Asst.Prof.Dr. Chaiwat Nuthong
Dr.Churirat Boonkhun
Asst.Prof.Dr. Kulwadee Somboonviwat
Dr. Pipat Sookavatana
Asst.Prof.Dr. Chivalai Temiyasathit
Dr. Jochen Amrehn
Mr. Xavier Boegly
Asst.Prof.Dr. Isara Anantavrasilp
External Lecturers
Asst.Prof.Dr. Pratoom Angurarohita
Dr. Prakash Chanchana
Asst.Prof.Dr. Surin Kittitornkun
Assoc.Prof.Dr. Suphamit Chittayasothorn
Asst.Prof.Dr. Lily Ingsrisawang
Dr. Vorapranee Khu-smith
Assoc.Prof.Dr. Tatre Jantarakolica
Assoc.Prof.Dr. Boontee Kruatrachue
Asst.Prof.Dr. Todsanai Chumwatana
Dr. Yunyong Teng-amnuay
University of Glasgow Staff
Dr. Rutchanee Gullayanon
Asst.Prof.Dr. Kasin Vichienchom
Dr. Teerawet Titseesang