Mở đầu. Bài toán đếm. Bài toán tồn tại. Bài toán liệt kê.
Bài toán tối ưu tổ hợp. Lý thuyết đồ thị: Các khái niệm cơ bản của lý thuyết đồ thị. Biểu diễn đồ thị trên máy tính. Tìm kiếm trên đồ thị.
Đồ thị Euler và đồ thị Hamilton. Cây và liệt kê cây. Các bài toán tối ưu trên đồ thị. IT3070 Hệ điều hành 3(3-1-0-6) Học phần học trước: Mục tiêu: Mục tiêu học phần này là trang bị cho sinh viên các khái niệm chính của hệ điều hành, không tập trung vào một hệ điều hành hay phần cứng cụ thể nào.
Học phần này tập trung vào các giải thuật và cấu trúc dữ liệu được sử dụng bên trong các hệ điều hành, các đặc tính, ưu và nhược điểm của chúng. Sau khi học xong môn học này sinh viên sẽ : - Nắm được các khái niệm cơ bản: hệ điều hành là gì, hệ điều hành thực hiện công việc gì và chức năng của hệ điều hành là gì. - Hiểu được được các thành phần và mối quan hệ giữa các thành phần của hệ điều hành. - Vận dụng được các giải thuật và cấu trúc dữ liệu được sử dụng bên trong hệ điều hành, ưu nhược điểm của chúng.
Nội dung: Chức năng và kiến trúc hệ điều hành. Giới thiệu về tầng vật lý và lập trình các cơ chế ở mức thấp. Tiến trình, lập trình các tiến trình song song, đồng bộ và truyền thông giữa các tiến trình, quản lý tiến trình. Điều độ hệ thống tiến trình.
Hệ thống đa chương trình, đa người sử dụng. Quản lý bộ nhớ. Hệ thống quản lý file. Quản lý hệ thống vào/ra.
Tổ chức hệ thống bảo vệ an toàn thông tin. Giới thiệu một số hệ điều hành thông dụng (tuỳ chọn): Windows, UNIX, LINUX. IT3090 Cơ sở dữ liệu 3(3-1-0-6) Học phần học trước: IT3010 Mục tiêu: Sinh viên nắm được các khái niệm cơ bản về hệ cơ sở dữ liệu và những vấn đề mang tính nguyên lý của các hệ cơ sở dữ liệu, biết cách thiết kế và xây dựng một hệ cơ sở dữ liệu cụ thể. Nội dung: Đại cương về các hệ cơ sở dữ liệu, Các mô hình dữ liệu, Ngôn ngữ định nghĩa và thao tác dữ liệu đối với mô hình quan hệ, Lý thuyết thiết kế cơ sở dữ liệu quan hệ, Tổ chức dữ liệu vật lý, Tối ưu hoá câu hỏi, An toàn và toàn vẹn dữ liệu.
Sinh viên sử dụng được một hệ quản trị cơ sở dữ liệu để xây dựng một ứng dụng cơ sở dữ liệu và/hoặc khai thác các tiện ích quản trị cơ sở dữ liệu trong thiết kế và xây dựng một hệ cơ sở dữ liệu cụ thể. IT3120 Phân tích và thiết kế hệ thống thông tin 2(2-1-0-4) Học phần học trước: IT3090, IT3100 Muc tiêu: Học phần này giúp sinh viên nắm bắt được các khái niệm cơ bản về mô hình hóa hướng đối tượng. Sinh viên được giới thiệu một quy trình phân tích, thiết kế hướng đối tượng cụ thể áp dụng cho các dự án phát triển phần mềm. Bên cạnh đó sinh viên cũng được giới thiệu một ngôn ngữ mô hình hóa hướng đối tượng (UML) và được làm quen với các công cụ hỗ trợ mô hình hóa.
Nội dung: Tổng quan về phân tích thiết kế hướng đối tượng và ngôn ngữ mô hình hóa UML. Phân tích hệ thống: mô hình hóa yêu cầu hệ thống, mô hình hóa cấu trúc, mô hình hóa hành vi với các biểu đồ UML. Thiết kế hệ thống: thiết kế lớp, ca sử dụng, thiết kế gói và hệ thống con, mô hình hóa cài đặt hệ thông IT3030 Kiến trúc máy tính 3(3-1-0-6) Học phần học trước: Mục tiêu: Cung cấp cho sinh viên các kiến thức cơ bản về kiến trúc máy tính, bao gồm kiến trúc tập lệnh và tổ chức của máy tính cũng như những vấn đề cơ bản trong thiết kế một hệ thống máy tính. Trên cơ sở đó sinh viên có thể đánh giá được hiệu năng của các họ máy tính, khai thác và sử dụng hiệu quả các loại máy tính hiện hành và có khả năng tiếp cận để phát triển các hệ máy tính nhúng phục vụ các mục đích chuyên dụng.
Nội dung: Giới thiệu chung về kiến trúc máy tính và hệ thống máy tính. Biểu diễn dữ liệu và số học máy tính; Bộ xử lý trung tâm (CPU); Bộ nhớ máy tính; Kỹ thuật vào/ra. Giới thiệu các mô hình kiến trúc tiên tiến (kiến trúc đường ống pipeline, kiến trúc đa bộ xử lý, kiến trúc các hệ thống đa máy tính). IT3040 Kỹ thuật lập trình 2(2-1-0-4) Học phần học trước: IT1010/IT1110 Mục tiêu: Sinh viên có được các kiến thức cơ bản của kỹ thuật lập trình, có khả năng phân tích, xây dựng chương trình, làm chủ các kỹ thuật: viết mã hiệu quả, kiểm thử, gỡ rối, đánh giá chương trình.
Nội dung: Các khái niệm cơ bản của lập trình. Các kỹ thuật lập trình cơ bản: sử dụng biến, viết mã điều khiển. Các kỹ thuật kiểm thử và gỡ rối. Các kỹ thuật tối ưu mã và nâng cao hiệu năng của chương trình.
Viết tài liệu chương trình. IT3100 Lập trình hướng đối tượng 2(2-1-0-4) Học phần học trước: IT3040 Mục tiêu: Sinh viên có được các kiến thức cơ bản của lập trình lập trình hướng đối tượng, có khả năng phân tích, xây dựng chương trình, làm chủ các kỹ thuật hướng đối tượng: thừa kế, đa hình, kết tập. Sinh viên làm quen với ngôn ngữ mô hình hóa UML và sử dụng các biểu đồ và kỹ thuật cơ bản trong lập trình hướng đối tượng. Nội dung: Tổng quan về lập trình hướng đối tượng.
Các kỹ thuật làm việc với hằng, biến, xây dựng và sử dụng hàm trong lập trình hướng đối tượng. Các kỹ thuật cơ bản trong xây dựng lớp. Kỹ thuật thừa kế, kết tập và đa hình trong lập trình hướng đối tượng. Ngôn ngữ mô hình hóa UML và sử dụng trong lập trình hướng đối tượng.
Thiết kế khuôn mẫu. Các phép đo đánh giá phần mềm hướng đối tượng. IT3080 Mạng máy tính 3(3-1-0-6) Học phần học trước: IT2000/IT2001/IT2020/IT3030 Mục tiêu: Nhằm cung cấp cho sinh viên những kiến thức cơ bản về kỹ thuật mạng máy tính, sau đó đi sâu vào một số công nghệ mạng hiện đại cho phép sinh viên có thể tự cập nhật kiến thức mới về mạng máy tính một cách thuận lợi Nội dung: Các khái niệm cơ bản về mạng máy tính – Định nghĩa và phân loại mạng máy tính - Chuẩn hóa mạng máy tính - Mạng cục bộ, mạng diện rộng, Mạng Internet và họ giao thức TCP/IP - Mạng thế hệ mới NGN -Các vấn đề quản trị mạng. IT3110 LINUX và phần mềm nguồn mở 2(2-1-0-4) Học phần học trước: Mục tiêu: Cung cấp cho sinh viên kiến thức cơ sở của về HĐH Linux và phần mềm mã nguồn mở, kỹ năng sử dụng HĐH Linux, kỹ năng sử dụng các ứng dụng mã nguồn mở, kỹ năng triển khai các dịch vụ trên nền phần mềm mã nguồn mở.
Cung cấp các kỹ năng để sinh viên tham gia vào các dự án phần mềm mã nguồn mở, có khả năng tham khảo các tài liệu và các phần mềm mã nguồn mở. Nội dung: Giới thiệu về HĐH Linux và các phần mềm mã nguồn mở, phần mềm thông dụng. Cài đặt và quản lý các phần mềm mở. Phân biệt các loại bản quyền.
Khái niệm phần mềm mã nguồn mở. Bản quyền của phần mềm mã nguồn mở. Sử dụng phần mềm mã nguồn mở đúng cách. Qui trình phát triển phần mềm mã nguồn mở.
Xây dựng phần mềm mã nguồn mở. Xây dựng tài liệu mở. Sử dụng hệ điều hành Linux: Các câu lệnh cơ bản, hệ thống tệp, quản lý NSD và quyền truy cập, quản lý tiến trình, lập trình shell. Triển khai và quản trị các dịch vụ dựa trên phần mềm mã nguồn mở: Dịch vụ tên miền, web, mail, cài đặt và sử dụng các hệ thống quản trị nội dung mã nguồn mở.
IT4010 An toàn và bảo mật thông tin 3(3-1-0-6) Học phần học trước: IT3020, IT3070, Học phần song hành: IT3080, IT3085 Mục tiêu: Sinh viên nắm được các khái niệm cơ bản của an toàn thông tin (ATTT); các nguyên lý và kỹ thuật cơ bản xây dựng các hệ mã mật, một số ứng dụng mã mật. Sinh viên nắm quy trình xây dựng hệ thống ATTT, phân tích và xây dựng các chính sách và giải pháp ATTT cho hệ thống tin học nói chung, phần mềm nói riêng, đặc biệt là các giải pháp bảo vệ phần mềm làm việc trên Internet. Nội dung: Tổng quan về an toàn thông tin, tầm quan trọng. Các nguyên tắc, cơ chế và cài đặt của an toàn thông tin và bảo vệ dữ liệu: các phương pháp tấn công, các phương pháp bảo mật và các công nghệ hỗ trợ an toàn phần mềm và hệ thống.
Mật mã và ứng dụng. An toàn dịch vụ Internet và ứng dụng Web. IT4080 Nhập môn công nghệ phần mềm 2(2-1-0-4) Học phần học trước: IT3010 Mục tiêu: Mục tiêu của học phần này là trang bị cho sinh viên các kiến thức rộng về nguyên tắc công nghệ, phương pháp tổ chức và tiến hành, công cụ trợ giúp và các chuẩn chất lượng. Sau khi hoàn tất môn học, người học sẽ có một cái nhìn tổng quan các lĩnh vực kiến thức của công nghệ phần mềm, nắm vững qui trình phát triển phần mềm, có khả năng tổ chức, điều hành dự án phát triển phần mềm.
Sinh viên có khả năng vận dụng các kiến thức cơ bản này vào làm việc trong môi trường phát triển phần mềm chuyên nghiệp. Nội dung: Giới thiệu chung về Công nghệ phần mềm: Bản chất phần mềm. Khủng hoảng phần mềm. Công nghệ phần mềm; Quản lý dự án phần mềm; Yêu cầu người dùng: Phương pháp định nghĩa yêu cầu; Thiết kế và lập trình: Phương pháp thiết kế hệ thống.
Phương pháp thiết kế chương trình. Phương pháp lập trình; Kiểm thử và Bảo trì: Phương pháp thử. Phương pháp bảo trì; Chủ đề nâng cao trong Công nghệ phần mềm: Phát triển Công nghệ phần mềm. IT4040 Trí tuệ nhân tạo 3(3-1-0-6) Học phần học trước: IT3020, IT3010 Mục tiêu: Học phần này giúp sinh viên nắm bắt được các khái niệm cơ bản về trí tuệ nhân tạo: các phương pháp giải quyết vấn đề, kỹ thuật chứng minh tự động, suy diễn.
Sinh viên còn được trang bị hiểu biết về lập trình hệ thống thông minh thông qua: lập trình heuristic, lập trình logic. Nội dung: Các khái niệm cơ bản về trí tuệ nhân tạo, các phương pháp giải quyết vấn đề dựa trên thuật giải heuristic, thuật giải chứng minh tự động trong lô gic mệnh đề, thuật giải suy diễn. Có thể chọn một trong các nội dung: lập trình heuristic, lập trình logic IT4020 Nhập môn lý thuyết tính toán 3(3-1-0-6) Học phần học trước: Mục tiêu: Cung cấp những kiến thức cơ bản về mô hình tính toán lý thuyết, ngôn ngữ hình thức và lý thuyết độ phức tạp tính toán.