Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/caoquocviet/he-thong-may-tinh-hcmus

Repo chứa các bài tập thực hành cho môn học 'Hệ Thống Máy Tính' tại Trường Đại học Khoa học Tự nhiên Thành phố Hồ Chí Minh.
https://github.com/caoquocviet/he-thong-may-tinh-hcmus

Last synced: 3 days ago
JSON representation

Repo chứa các bài tập thực hành cho môn học 'Hệ Thống Máy Tính' tại Trường Đại học Khoa học Tự nhiên Thành phố Hồ Chí Minh.

Awesome Lists containing this project

README

        

# Mô Tả Chi Tiết Toàn Bộ Bài Tập Môn Học Hệ Thống Máy Tính - HCMUS

## **1. 22810218_Lab0**

### **01_Basic_Exercise_for_Beginners/**
- **Mục Tiêu:** Giới thiệu các khái niệm cơ bản về lập trình và hệ thống máy tính.
- **Nội Dung:**
- Bài tập thực hành cơ bản nhằm nắm vững cú pháp lập trình cơ bản.
- Thực hiện các bài tập về nhập xuất dữ liệu, sử dụng biến và các cấu trúc điều khiển đơn giản.

### **02_Input_and_Output_Exercise/**
- **Mục Tiêu:** Áp dụng các kỹ thuật nhập xuất dữ liệu trong lập trình.
- **Nội Dung:**
- Thực hành đọc và ghi dữ liệu từ bàn phím và tệp tin.
- Sử dụng các hàm như `printf`, `scanf` trong ngôn ngữ C để xử lý dữ liệu.

### **03_Loop_Exercise/**
- **Mục Tiêu:** Sử dụng các cấu trúc vòng lặp để giải quyết vấn đề.
- **Nội Dung:**
- Thực hiện các bài tập về vòng `for`, `while`, và `do-while`.
- Giải quyết các bài toán lặp đi lặp lại như tính tổng, tìm số lớn nhất trong mảng.

### **04_Functions_Exercise/**
- **Mục Tiêu:** Tìm hiểu và áp dụng các hàm trong lập trình.
- **Nội Dung:**
- Tạo và sử dụng các hàm để tổ chức mã nguồn hiệu quả.
- Thực hành truyền tham số và trả về giá trị từ hàm.

### **05_String_Exercise/**
- **Mục Tiêu:** Xử lý chuỗi ký tự trong lập trình.
- **Nội Dung:**
- Thực hiện các thao tác trên chuỗi như nối, cắt, tìm kiếm.
- Sử dụng thư viện chuỗi trong ngôn ngữ C để thao tác với dữ liệu văn bản.

### **06_Data_Structure_Exercise/**
- **Mục Tiêu:** Hiểu và áp dụng các cấu trúc dữ liệu cơ bản.
- **Nội Dung:**
- Thực hành sử dụng mảng, danh sách liên kết, ngăn xếp, hàng đợi.
- Giải quyết các bài toán sử dụng các cấu trúc dữ liệu này để tối ưu hóa hiệu suất.

### **07_List_Exercise/**
- **Mục Tiêu:** Làm việc với danh sách liên kết.
- **Nội Dung:**
- Tạo, thêm, xóa các phần tử trong danh sách liên kết đơn và đôi.
- Thực hiện các thao tác tìm kiếm và sắp xếp trong danh sách liên kết.

### **08_Dictionary_Exercise/**
- **Mục Tiêu:** Sử dụng cấu trúc dữ liệu từ điển (hash table).
- **Nội Dung:**
- Thực hiện các chức năng thêm, tìm kiếm, và xóa các cặp khóa-giá trị.
- Ứng dụng từ điển trong các bài toán thực tế như đếm từ, lưu trữ thông tin người dùng.

### **09_Set_Exercise/**
- **Mục Tiêu:** Làm việc với tập hợp dữ liệu (set).
- **Nội Dung:**
- Thực hành các thao tác hợp, giao, hiệu giữa các tập hợp.
- Ứng dụng trong các bài toán yêu cầu quản lý tập hợp dữ liệu không trùng lặp.

### **10_Tuple_Exercise/**
- **Mục Tiêu:** Sử dụng tuple để lưu trữ các bộ dữ liệu không thay đổi.
- **Nội Dung:**
- Thực hành tạo và truy cập các phần tử trong tuple.
- Sử dụng tuple trong các tình huống cần bảo toàn dữ liệu.

### **11_Date_and_Time_Exercise/**
- **Mục Tiêu:** Xử lý ngày và giờ trong lập trình.
- **Nội Dung:**
- Thực hiện các thao tác như lấy thời gian hiện tại, định dạng ngày giờ.
- Sử dụng thư viện thời gian để thực hiện các chức năng liên quan đến thời gian.

### **12_OOP_Exercise/**
- **Mục Tiêu:** Áp dụng các nguyên tắc lập trình hướng đối tượng.
- **Nội Dung:**
- Tạo các lớp, đối tượng, và sử dụng tính kế thừa, đa hình, đóng gói.
- Thực hành thiết kế các hệ thống bằng các lớp và đối tượng.

## **2. 22810218_led_7_doan/**
- **Led_7_doan.circ:** Bản thiết kế mạch điện cho hệ thống hiển thị 7 đoạn LED.
- **Report.docx:** Báo cáo chi tiết về thiết kế, lắp ráp, và thử nghiệm mạch 7 đoạn LED.

## **3. basic_search/**
- **bfs.py:** Triển khai thuật toán Tìm kiếm theo Chiều Rộng (Breadth-First Search) bằng Python.
- **dfs.py:** Triển khai thuật toán Tìm kiếm theo Chiều Sâu (Depth-First Search) bằng Python.

## **4. khao_sat_so_cham_dong/**
- **code/**: Chứa mã nguồn cho các bài khảo sát về số chấm đồng.
- **Report.docx:** Báo cáo kết quả khảo sát, phân tích dữ liệu thu thập được.

## **5. Lab2/**
- **data/**: Thư mục chứa dữ liệu cần thiết cho các bài tập trong Lab2.
- **...**: Bao gồm các tập tin và mã nguồn khác liên quan đến Lab2.

## **6. Lab3/**
- **3_Readme.py:**
- **Mục Tiêu:** Giải thích thuật toán Minimax trong trò chơi Tic-Tac-Toe.
- **Nội Dung:**
- Mô tả cây trò chơi, chiến lược của AI và người chơi.
- Giải thích các hàm như `empty_cells`, `valid_move`, `set_move`.

- **4_explain.py:**
- **Mục Tiêu:** Giải thích chi tiết từng bước triển khai thuật toán Minimax.
- **Nội Dung:**
- Phân tích độ phức tạp của thuật toán và các kỹ thuật tối ưu hóa như cắt tỉa Alpha-Beta.
- Thảo luận về việc giới hạn độ sâu và sử dụng các hàm đánh giá heuristic.

- **explain.docx:**
- **Mục Tiêu:** Tài liệu giải thích thuật toán Minimax và các cải tiến.
- **Nội Dung:**
- Các lý do cần giới hạn độ sâu tìm kiếm.
- Các chiến lược tối ưu hóa hiệu suất cho bảng trò chơi lớn.
- Tóm tắt các kỹ thuật như cắt tỉa Alpha-Beta và tìm kiếm Monte Carlo (MCTS).

- **2_Comments.py:**
- **Mục Tiêu:** Cung cấp các bình luận chi tiết trong mã nguồn.
- **Nội Dung:**
- Giải thích các hàm như `clean()`, `render()`, và `main()`.
- Mô tả quy trình chọn ký tự của người chơi và máy tính, xử lý lượt đi.

## **7. legv8/**
- **2109/tinhtoan.asm:**
- **Mục Tiêu:** Viết chương trình tính toán các phép toán cơ bản (tổng, hiệu, tích, thương) bằng ngôn ngữ Assembly LEGv8.
- **Nội Dung:**
- Nhập hai số nguyên `a` và `b`.
- Thực hiện các phép tính và xuất kết quả ra màn hình.
- Xử lý các lựa chọn từ người dùng thông qua menu.
- Sử dụng các lệnh Assembly như `adrp`, `add`, `ldur`, `stur`, `bl printf`, `svc #0` để quản lý dữ liệu và điều khiển chương trình.

- **2109/mangmotchieu.asm:**
- **Mục Tiêu:** Chương trình nhập xuất mảng một chiều số nguyên.
- **Nội Dung:**
- Nhập số lượng phần tử của mảng.
- Nhập các phần tử của mảng từ người dùng.
- Xuất mảng đã nhập ra màn hình.
- Sử dụng các lệnh Assembly để xử lý mảng và thực hiện các thao tác nhập xuất.

- **kihtracon/congtrunhanchia.asm:**
- **Mục Tiêu:** Chương trình tính tổng, hiệu, tích, thương của hai số nguyên.
- **Nội Dung:**
- Nhập hai số nguyên `a` và `b`.
- Thực hiện các phép tính và kiểm tra điều kiện như chia cho 0.
- Xuất kết quả hoặc thông báo lỗi nếu có.
- Sử dụng các lệnh Assembly để quản lý dữ liệu và điều khiển luồng chương trình.

- **kiemtra/giaithua.asm:**
- **Mục Tiêu:** Chương trình tính lũy thừa của một số nguyên.
- **Nội Dung:**
- Nhập số cơ và số mũ từ người dùng.
- Tính lũy thừa bằng cách nhân liên tiếp.
- Xuất kết quả ra màn hình.
- Xử lý các điều kiện kết thúc vòng lặp và lưu kết quả.

- **nhapxuat1409/xuatthongtin.asm:**
- **Mục Tiêu:** Chương trình nhập xuất thông tin cá nhân.
- **Nội Dung:**
- Nhập họ tên và năm sinh từ người dùng.
- Tính tuổi dựa trên năm hiện tại.
- Xuất thông tin đã nhập và tuổi ra màn hình.
- Sử dụng các lệnh Assembly để xử lý chuỗi và số nguyên.

- **terminal.txt:**
- **Mục Tiêu:** Ghi lại các lệnh biên dịch và chạy chương trình Assembly trên môi trường Linux.
- **Nội Dung:**
- Các lệnh `aarch64-linux-gnu-gcc` và `qemu-aarch64` để biên dịch và chạy các tệp `.asm`.
- Ghi lại quá trình biên dịch và chạy các chương trình như `xuatthongtin.elf`, `tinhtoan.elf`, `loop.elf`, v.v.

- **BAI_TAP_LEGv8_Deadline_30.9_Nop/bai_tap_5.asm:**
- **Mục Tiêu:** Thực hiện các chức năng xử lý mảng một chiều số nguyên.
- **Nội Dung:**
- Nhập mảng một chiều `n` phần tử số nguyên.
- Xuất mảng đã nhập.
- Liệt kê các số nguyên tố trong mảng.
- Tìm giá trị lớn nhất trong mảng.
- Tính trung bình của các phần tử trong mảng.

## **8. LegV8-bai_tap_lam_them/**
- **Mục Tiêu:** Thực hiện các bài tập thêm về ngôn ngữ Assembly LEGv8.
- **Nội Dung:**
- Các bài tập nâng cao về xử lý chuỗi, mảng, và các phép toán phức tạp hơn.
- Báo cáo chi tiết về quá trình thực hiện và kết quả đạt được.

## **9. tinh_toan_so_nguyen/**
- **Mục Tiêu:** Thực hiện các phép tính số nguyên cơ bản và phức tạp.
- **Nội Dung:**
- Các bài tập về nhập xuất số nguyên, thực hiện các phép tính cộng, trừ, nhân, chia.
- Xử lý các trường hợp đặc biệt như chia cho 0, nhập dữ liệu không hợp lệ.

## **10. Lab3/explain.docx**
- **Nội Dung:**
- Giải thích chi tiết về thuật toán Minimax trong trò chơi Tic-Tac-Toe.
- Thảo luận về các kỹ thuật tối ưu hóa như cắt tỉa Alpha-Beta và giới hạn độ sâu tìm kiếm.
- Phân tích hiệu suất và khả năng mở rộng của thuật toán trên các bảng trò chơi lớn.

## **11. Lab3/4_explain.py**
- **Nội Dung:**
- Mã nguồn giải thích các bước triển khai thuật toán Minimax.
- Các hàm như `empty_cells`, `valid_move`, `set_move`, `ai_turn`, và `human_turn` được giải thích chi tiết.
- Giải thích về cây trò chơi, chiến lược của AI và người chơi, và cách xử lý kết quả trò chơi.

## **12. Lab3/2_Comments.py**
- **Nội Dung:**
- Mã nguồn có các bình luận chi tiết giải thích từng phần của chương trình.
- Các hàm như `clean()`, `render()`, và `main()` được mô tả rõ ràng về chức năng và cách hoạt động.

## **13. Lab3/3_Readme.py**
- **Nội Dung:**
- Giới thiệu về thuật toán Minimax được áp dụng trong trò chơi Tic-Tac-Toe.
- Mô tả các thành phần của cây trò chơi và cách thuật toán đưa ra quyết định nước đi tối ưu.
- Bài giảng về cách thuật toán hoạt động đệ quy để tìm nước đi tốt nhất cho người chơi và AI.

## **14. Lab3/explain.docx**
- **Nội Dung:**
- Tổng quan về các kỹ thuật tối ưu hóa thuật toán Minimax.
- Thảo luận về việc giới hạn độ sâu tìm kiếm và sử dụng các hàm đánh giá heuristic.
- Các phương pháp cải tiến như tìm kiếm Monte Carlo (MCTS) để xử lý bảng trò chơi lớn.
- Phân tích các hạn chế và cách khắc phục khi triển khai thuật toán trên các hệ thống có tài nguyên hạn chế.

## **15. legv8/kiemtra/**
- **Nội Dung:**
- Các chương trình kiểm tra như `congtrunhanchia.asm`, `giaithua.asm` thực hiện các phép tính toán học cơ bản bằng Assembly.
- Mã nguồn bao gồm nhập xuất dữ liệu, xử lý vòng lặp, và điều khiển luồng chương trình.
- Báo cáo chi tiết về kết quả kiểm tra và phân tích hiệu suất chương trình.

## **16. Additional Files and Folders**
- **...**: Thư mục và tệp tin khác liên quan đến các bài tập, báo cáo, và mã nguồn bổ sung cho môn học hệ thống máy tính.

---

**Ghi Chú:**
- Mỗi bài tập và thư mục chứa các mã nguồn và tài liệu liên quan đều được thiết kế nhằm giúp sinh viên nắm vững các khái niệm và kỹ năng lập trình cũng như hiểu biết về hệ thống máy tính.
- Các tài liệu báo cáo (`.docx`) đi kèm cung cấp phân tích chi tiết, kết quả thực nghiệm và các nhận xét về hiệu suất của các chương trình thực hiện.
- Mã nguồn được viết bằng các ngôn ngữ lập trình như C, Python, và Assembly LEGv8, hỗ trợ việc học tập và thực hành các kỹ thuật lập trình khác nhau.