General:
The Computer Science curriculum is designed to provide the students with the technical knowledge and skills necessary to specify, evaluate, and manage computer system design; to provide technical guidance in applications ranging from data processing to tactical embedded systems; to perform analysis and design methodologies appropriate for hardware, software, and firmware; and provide practical experience in applying modern computer equipment and research techniques to solve daily problems. The curriculum also provides for concrete experience in computing practices — the skills and ways of thinking that mark a computing professional. These include programming, engineering of systems, modeling, and innovating.
The two dimensions —great principles and practices— define the space in which the core technologies of computing exist and serve application domains: Algorithms, architecture, artificial intelligence, database, networking, operating systems, security, and more.
Mission:
The mission of the Computer Science Program is to educate the students to gain an understanding of the fundamentals of computers so that they can develop solutions to IT problems and enhance their computing, communication, and research skills. It is aimed to especially emphasize teamwork, independent and innovative thinking and leadership qualities. In particular, the Computer Science Program aims to:
Program:
The first two years of the undergraduate program is dedicated to the study of basic sciences and mathematics which provide the student with IT and programming fundamentals. The study of materials which are basic to Computer Science begins in the second year. The third and fourth years involve the study and application of Computer Networks & Protocols, Computer Architecture, Database Management Systems, Programming Languages, Human-Computer Interaction, Multimedia Technologies, Foundations of Artificial Intelligence, Machine Learning and Neural Networks, Introduction to Computer Security, Information Security Management, Elements of User Interface Design, Compiler Design, Database Design, E-Commerce.
Job opportunities:
Graduates of the department qualify for a responsible position in the IT industry, public and private sectors. Prospective employers include, but are not limited to, database administrators, IT security management, computer gaming sector, and various government agencies.
What can you do after graduating from our Computer Science major?
Curriculum of Department of Computer Science
1st Year: Freshman
Semester 1 - Core Courses
Remarks: (*) BS students must take MATH131 or MATH120, depending on MPT results. BA Students may take MATH 100, MATH 160 or equivalent.
(**) All students must take BUS 110 or ECON 100 as NE
(***) Students must take ACAD or equivalent ENGL course.
Courses | Name | Credit |
---|---|---|
KHM 101 | Khmer Studies I | 3 |
MATH 120 | College Algebra | 4 |
ECON 120 | Development of Economic Thought | 3 |
ENGL 101 | Academic English I | 4 |
CS 151 | Introduction to Programming | 3 |
Semester 2 - Core Courses
Remarks: (*) BS students must take MATH102. BA Students may take MATH 100, MATH 160 or equivalent.
(**) All students must take BUS 112 or ECON 120 as NE.
(***) Students must take ACAD or equivalent ENGL course.
Courses | Name | Credit |
---|---|---|
KHM 102 | Khmer Studies II | 3 |
MATH 131 | Calculus I | 4 |
ECON 122 | Principles of Economics | 3 |
ENGL 102 | Academic English II | 4 |
CS 241 | Programming in C & C++ | 3 |
2nd Year: Sophomore
Semester 3 - Core Courses
Remarks: (*) All students must take a non-Departmental Elective.
(**) BA Students may take another Elective instead of MATH 201.
Courses | Name | Credit |
---|---|---|
CS 201 | Data Structures and Algorithms | 3 |
CS 230 | Computer Networks | 3 |
CS 260 | Web Design & Development | 3 |
CS 331 | Computer Graphics | 3 |
MATH 201 | Linear Algebra and Its Applications | 4 |
Semester 4 - Core Courses
Remarks: (*) BA Students may take an elective instead of MATH 250.
Courses | Name | Credit |
---|---|---|
CS 211 | Software Design | 3 |
CS 240 | Supervised Project in a Programming System | 3 |
CS 250 | Operating Systems | 3 |
CS 262 | Advanced Concepts in Web Development | 3 |
MATH 250 | Probability and Statistics | 3 |
CS 152 | Introduction to Java Programming | 3 |
3rd Year: Junior
Semester 5 - Core Courses
Remarks: (*) All students must take a Faculty Elective.
(**) All students must take Non-Faculty Elective.
(***) Students will take CS 331 instead of CS 221 (Fall 2017)
(****) All students will take CS 331 instead of CS 221
Courses | Name | Credit |
---|---|---|
CS 301 | Systems Programming | 3 |
CS 221 | Media Computation | 3 |
CS 380 | Human-Computer Interaction: UI Design | 3 |
CS 321 | Database Management | 3 |
FE | Faculty Elective | 3 |
NE | Non-Faculty Elective (**) | 3 |
Semester 6 - Core Courses
Remarks: (*) All students must take an elective course.
Courses | Name | Credit |
---|---|---|
CS 311 | Discrete Mathematics | 3 |
CS 340 | Self Study in a Programming System | 3 |
CS 342 | Artificial Intelligence | 3 |
CS 360 | Developing Mobile Applications for Android | 3 |
CS 312 | Computer Security | 3 |
4th Year: Senior
Semester 7 - Core Courses
Courses | Name | Credit |
---|---|---|
CS 401 | Final Year Project I | 3 |
CS 451 | Introduction to Data Mining | 3 |
CS 427 | Selected Topics in CS | 3 |
CS 432 | Software Testing | 3 |
CS 455 | Numerical Transmissions I | 4 |
Semester 8 - Core Courses
Courses | Name | Credit |
---|---|---|
CS 402 | Final Year Project II | 3 |
CS 480 | Professionalism in Computing | 3 |
CS 426 | Cloud Computing | 3 |
CS 468 | IT Project Management | 3 |
CS 456 | Numerical Transmissions II | 4 |
Departmental Elective Courses
Courses | Name | Credit |
---|---|---|
CS 382 | Search Engines and Information Retrieval | 3 |
CS 411 | Comparative Languages | 3 |
CS 421 | Advanced Database Systems | 3 |
CS 441 | Parallel Computations | 3 |
CS 426 | Cloud Computing | 3 |
CS 451 | Introduction to Data Mining | 3 |
CS 427 | Selected Topics in CS | 3 |
CS 428 | Selected Topics in CS II | 3 |
CS 432 | Software Testing | 3 |
CS 470 | Social and Information Network Analysis | 3 |
CS 468 | IT Project Management | 3 |
CS 461 | Developing Mobile Applications for iPhone/iPad | 3 |
CS 455 | Numerical Transmissions I | 4 |
CS 456 | Numerical Transmissions II | 4 |
The following table shows the courses required towards Bachelor's degree.
DE = Department Elective (a course offered by CS department)
FE = Faculty elective (a course offered by other departments at the faculty of ICT)
NE = Non-faculty elective (a course offered by faculties other than ICT)
Some MIS courses have content and curriculum equivalent to their CS counterparts. Such are not counted as FE.