TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊNĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
KHOA TOÁN - TIN
-BÀI BÁO CÁO DỰ ÁN
MÔN HỌC: KỸ NĂNG LÀM VIỆC NHÓM
Trang 22 Đối tượng tham gia: 4
3 Các học viên tham gia 4
4 Mục tiêu dự án: 4
5 Phân chia công việc: 5
6 Báo cáo quá trình: 6
7 Tổng kết: 7
8 Một số minh chứng cho dự án: 8
9 Tài liệu tham khảo: 19
Trang 31 Giới thiệu Dự án:
1.1 Lý do chọn đề tài:
Ngày nay, trong một xã hội liên tục luôn cải tiến và phát triển không dừng, việc một hay nhiều cá nhân thất nghiệp hay bị đào thải trở nên không có việc làm là những điều không khó để bắt gặp trong cuộc sống, đặc biệt là đối với lĩnh vực Công nghệ thông tin – Một lĩnh vực yêu cầu mức chuyên môn và trình độ vô cùng cao Nếu như không vững vàng về tư duy và kiến thức, thành thạo các công cụ lập trình hay không nắm bắt được công nghệ mới, thì các nhân viên dù ở cấp bậc nào cũng đều sẽ có nguy cơ bị đào thải.
Là một sinh viên ngành Khoa học dữ liệu, chúng em hiểu rõ tầm quan trọng của việc phải luôn trau dồi kiến thức của bản thân và học thêm cho mình nhiều công cụ mới Vì thế, ngày hôm nay, chúng em quyết định lựa chọn, nghiên cứu và tiến hành Dự án của mình, đó là Dự án hướng dẫn kỹ năng sử dụng ngôn ngữ lập trình Python.
1.2 Ngôn ngữ Python:
Python là ngôn ngữ lập trình có độ phổ biến vô cùng lớn không những ở Việt Nam mà còn trên thế giới Khác với nhiều ngôn ngữ khác như C++, C#,… Python được đánh giá là dễ sử dụng hơn và có cấu trúc dễ ghi nhớ đối với người sử dụng.
Ngoài ra, Python còn đem lại độ hiệu quả và năng suất cao nhờ vào các đặc điểm của ngôn ngữ này, chính vì thế Python được tin dùng trong các lĩnh vực công nghệ có tính chuyên môn cao như IoT, Khoa học dữ liệu, Khoa học máy tính, Máy học, Tự động hóa ,…
1.3 Dự án:
Do chiều sâu và chiều rộng của ngôn ngữ là quá lớn cũng như muốn đề cao tinh thần tự học của các học viên tham gia, Dự án Hướng dẫn kỹ năng sử dụng ngôn ngữ lập trình Python sẽ được thực hiện như sau:
Thời gian: 4 tuần (27/03 - 24/04/2023)
Nội dung: Các cấu trúc cơ bản để các bạn có cái nhìn chung và nắm được các kiến thức nền tảng, cụ thể:
- Buổi 1 (27/03/2023):
+ Giới thiệu nội dung Dự án đến người tham gia.
+ Hướng dẫn cách cài đặt và sử dụng các trang Web cung cấp công cụ + Chạy chương trình “Hello World”.
+ Giới thiệu biến và các kiểu dữ liệu cơ bản trong Python - Buổi 2 (08/04/2023):
+ Hướng dẫn sử dụng cấu trúc điều kiện + Giới thiệu kiểu dữ liệu Danh sách (List) + Thao tác trên Chuỗi (String).
- Buổi 3 (16/04/2023):
+ Hướng dẫn sử dụng vòng lặp (For, While)
Trang 4- Dự án được triển khai như như một môn học được giảng dạy trong môi trường giáo dục, kết quả của từng học viên được đánh giá dựa trên Điểm tổng để xếp loại học viên, trong đó Điểm tổng bao gồm:
+ Điểm quá trình (50%): Trung bình cộng của các bài tập được giao sau mỗi buổi học Bài tập được gửi theo dạng File Word gồm từ 4 đến 5 bài với nội dung là kiến thức vừa được trình bày, số điểm được chia tùy thuộc độ khó và phải tuân thủ các nguyên tắc cơ bản trong lập trình Học viên thực hiện và nộp lại trong Form được gửi trong thời gian quy định.
+ Điểm cuối kỳ (50%): Điểm sau khi thực hiện kiểm tra cuối kỳ (Online) Kiến thức của bài cuối kỳ là tổng hợp các cấu trúc dữ liệu và câu lệnh đã được học và tư duy giải quyết vấn đề của học viên.
- Mỗi thành viên trong nhóm sẽ phụ trách ghi lại kết quả của 2 học viên mình đảm nhận dựa theo độ chính xác của kết quả và bộ đáp án có sẵn.
- Mỗi buổi học sẽ có độ dài khoảng 70-100 phút tùy thuộc lượng kiến thức, trong đó gồm: + 10 phút cho việc chuẩn bị, ổn định lớp học, kiểm tra thiết bị và đường truyền.
+ 10 phút cho việc ôn tập và nhận xét bài tập của tuần trước.
+ Khoảng thời gian còn lại dành cho việc truyền đạt nội dung bài học mới - Buổi kiểm tra cuối khóa sẽ được tổ chức theo hình thức online qua Google Meet.
- Học viên nếu có thắc mắc sẽ được giải đáp trực tiếp trong buổi học, hoặc thông qua các phiếu đánh giá, nhận xét buổi học hoặc liên hệ trực tiếp với các thành viên nhóm
2 Đối tượng tham gia:
Sinh viên trường Đại học Khoa Học Tự nhiên.
3 Các học viên tham gia
1 Nguyễn Thị Huyền Trân 22110232 Toán - tin
Trang 58 Thái Anh Khoa 22280048 Khoa học dữ liệu
4 Mục tiêu dự án:
Trong khoảng thời gian thực hiện (Từ 27/03-24/04/2023), 10/10 học viên tham gia có kiến thức về ngôn ngữ Python được biểu hiện qua điểm số đạt được, cụ thể:
- Tối thiểu 3 học viên đạt xếp loại Giỏi trở lên (Điểm tổng >=8) - Tối thiểu 6 học viên đạt xếp loại Khá trở lên (Điểm tổng >=7) - Không có học viên nào dưới TB (Điểm tổng <=5).
5 Phân chia công việc: Nguyễn Trần Lê Hoàng Tạo Form ghi nhận thông
tin học viên Trước 20h00 22/03/2023 Cả nhóm
Tìm người tham gia Tạo nhóm để dễ quản lý và
thông báo Trước 22h00 25/03/2023 Nguyễn Trần Lê Hoàng
Trần Bá Đông
Tìm nguồn dữ liệu tham
khảo Trước 21h00 25/03/2023 Trần Bá Đông Soạn nội dung trình bày Trước 22h00 26/03/2023 Lê Nguyễn Quỳnh Anh
Trần Gia Huy Làm Slide dạy buổi học 1 Trước 22h 26/03/2023
Nguyễn Trần Lê Hoàng Làm đáp án BTVN tuần 1 Trước 22h 04/04/2023 Lê Nguyễn Quỳnh Anh
Trần Gia Huy Làm Slide dạy buổi học 2 Trước 22h 07/04/2023 Trần Bá Đông Dạy buổi học 2 19h30 08/04/2023 Lê Nguyễn Quỳnh Anh Tìm BTVN tuần 2 Trước 22h 08/04/2023
Kha Thái Hồ Tạo Form đánh giá buổihọc 2 Trước 22h 08/04/2023
Trang 6Tuần 3
Lê Nguyễn Quỳnh Anh
Trần Gia Huy Làm Slide dạy buổi học 3 Trước 22h 15/04/2023 Trần Gia Huy Làm đáp án BTVN tuần 2 Trước 22h 10/04/2023 Cả nhóm Chấm điểm BTVN tuần 2 Trước 22h 11/04/2023 Kha Thái Hồ Tạo Form đánh giá buổiDạy buổi học 3.
Trần Gia Huy Làm đáp án BTVN tuần 3 Trước 22h 17/04/2023 Cả nhóm Chấm điểm BTVN tuần 3 Trước 18/04/2023
Cả nhóm Tổng kết điểm học viên Trước 22h 30/04/2023 Nguyễn Trần Lê Hoàng
Lê Nguyễn Quỳnh Anh Viết báo cáo Trước 23h 16/05/2023 Lê Nguyễn Quỳnh Anh
Trần Gia Huy Làm Slide báo cáo Dự án Trước 23h 16/05/2023
6 Báo cáo quá trình:
Tuần 1: 19h30 Thứ 2 (27/3/2023)
Nội dung buổi học
Giới thiệu nội dung khóa dạy Giới thiệu Python và hướng dẫn tải.
“Hello World”, Biến và các dữ liệu cơ bản trong Python Hình thức tổ chức Discord
Kết quả đạt được
- Các bạn đã cài đặt được công cụ Python (Hoặc sử dụng được ngôn ngữ Python trên các nền tảng trực tuyến).
- Chạy được chương trình “Hello World”.
- Có kiến thức về biến và các kiểu dữ liệu cơ bản trong Python Thuận lợi Một số bạn đã tiếp xúc với ngôn ngữ lập trình khác từ trước Khó khăn
Về nhóm: Do lần đầu thực hiện, nhóm còn gặp trục trặc trong các khâu kỹ thuật như: Trình chiếu không chạy, lỗi mic nhỏ,…
Về học viên: Các bạn có mong muốn tổ chức buổi học sớm hơn, tốc độ truyền đạt nhanh hơn và gửi bài giảng sau mỗi buổi học
Trang 7Tuần 2: 19h30 Thứ 7 (08/4/2023)
Nội dung buổi học Cấu trúc điều kiện.
Kiểu dữ liệu danh sách list trong Python Các thao tác trên chuỗi kí tự.
Thuận lợi - Buổi học diễn ra đúng timeline.
- Các bạn đã quen với nhịp độ học từ tuần trước => buổi học diễn ra một cách trơn tru hơn.
- Biết được cách sử dụng Hàm (Function) để tối ưu hóa chương trình - Biết cách thao tác với các kiểu dữ liệu Tuple và Dictionary.
Thuận lợi - Buổi học diễn ra đúng timeline.
- Tuy bài dài và khó nhưng mọi người vẫn cố gắng tiếp thu.
Khó khăn Về nhóm: Do kiến thức của phần này là vô cùng rộng và sâu, nên đôi khi các bạn thắc mắc trực tiếp trong buổi học, nhóm phải bàn bạc và nghiên cứu thật kỹ để đưa ra câu trả lời chính xác cho các bạn Về học viên: Không có
Tuần 4: Chủ nhật (23/4/2023)
Nội dung buổi học Kiểm tra Hình thức tổ chức Discord
Kết quả đạt được - 10/10 học viên hoàn thành bài kiểm tra - 90% học viên trên trung bình
- Không học viên nào có điểm liệt
Thuận lợi - Các học viên đều làm bài và nộp bài trong đúng thời gian quy định - Không xảy ra lỗi kĩ thuật trong quá trình làm và sau khi nộp bài Khó khăn Về nhóm: Không có
Về học viên: Không có
Trang 8Nhận xét: 10/10 học viên đều sắp xếp được thời gian tham gia vào bài kiểm tra, do tính phân hóa
của đề thi cuối kỳ (Bao gồm 60% là các kiến thức cơ bản, 30% là vận dụng kỹ thuật, 10% còn lại là tư duy để khống chế điểm 10), nên chỉ cần các bạn đạt từ điểm Trung bình trở lên là đã coi như nắm được các kiến thức cơ bản của ngôn ngữ này.
7 Tổng kết:
Kết quả dự án:
- 10/10 học viên tham giahoàn thành Dự án Điểm tổng trên mức trung bình - Có 4/3 học viên tham gia hoàn thành dự án với loại Giỏi trở lên.
- Có 7/6 học viên tham gia hoàn thành dự án với loại Khá trở lên - Không có học viên nào dưới Trung bình.
Dự án thành công ngoài mong đợi.
- Tuy vẫn còn có những học viên có mức điểm chưa cao, nhưng nhìn chung mục tiêu Dự án đã hoàn thành.
- Học viên hiểu biết cơ bản về ngôn ngữ Python, cú pháp, cấu trúc điều khiển và các khái niệm quan trọng như biến, hàm, lớp, module và gói
- Ngoài ra, tất cả học viên đều đạt được khả năng viết mã Python đơn giản để giải quyết các bài toán cơ bản, bao gồm tính toán, chuỗi, danh sách, vòng lặp và điều kiện - Học viên đã có những hiểu biết cơ bản về ngôn ngữ Python, biết được cú pháp, cấu
trúc điều khiển và các khái niệm quan trọng như biến, hàm, lớp, module, và gói - Ngoài ra, tất cả học viên đều đạt được khả năng viết mã Python đơn giản để giải quyết
các bài toán cơ bản, bao gồm tính toán, chuỗi, danh sách, vòng lặp, và điều kiện.
Bảng điểm của các học viên
STT
Điểm thường xuyên
(50%) Điểm CK(50%)
Các link slide bài giảng của các tuần: nhóm sử dụng PowerPoint để chuẩn bị bài giảng, ngoài ra có sử dụng word để chuẩn bị nội dung.
Trang 11a) 37 b) 1097
-Tuần 2:
Bài 1:Cho số nguyên age chỉ tuổi của một con mèo được nhập vào từ bàn phím Bạn hãy viết chương trình để kiểm tra xem con mèo của bạn là già hay còn trẻ Nếu tuổi của con mèo dưới 5 (age < 5), thì hiển thị ra màn hình dòng chữ "Your cat is young", ngược lại nếu tuổi của con mèo lớn hơn hoặc bằng 5 tuổi thì hiển thị ra "Your cat is old".
INPUT: 3
OUTPUT: "Your cat is young" Bài 2:
Cho số thực DTB chỉ điểm trung bình được nhập từ bàn phím, bạn hãy viết chương trình in ra màn hình theo các yêu cầu như sau:
Nếu DTB >= 8.0, in ra dòng chữ "Học sinh giỏi" trên màn hình Nếu 8.0 > DTB >= 6.5, in ra dòng chữ "Học sinh khá" trên màn hình.
Nếu 6.5 > DTB > = 5.0, in ra dòng chữ "Học sinh trung bình" trên màn hình Nếu 5 > DTB >= 3.5, in ra dòng chữ "Học sinh yếu" trên màn hình.
Ngoài các ràng buộc như trên thì hiển thị "Học sinh kém" INPUT: 8.3
OUTPUT: Học sinh giỏi Bài 3:
Cho một list các số nguyên Number gồm 5 phần tử được nhập vào từ bàn phím, viết chương trình tính tổng các phần tử trong list Number vừa nhập.
Cho trước hai chuỗi s1 và s2 được nhập từ bàn phím, bạn hãy viết chương trình đổi chỗ 2 ký tự đầu tiên của s1 và s2 cho nhau Sau đó hiển thị ra màn hình chuỗi mới có giá trị s1 +
Cho chuỗi s được nhập vào từ bàn phím, viết chương trình tạo ra một chuỗi nối 2 kí tự đầu và 2 kí tự cuối của chuỗi s và hiển thị ra màn hình Nếu chuỗi s có độ dài nhỏ hơn 2 thì hiển thị ra chuỗi rỗng.
INPUT1: "a" OUTPUT1: "" INPUT2: "DS TIM"
Trang 12Cho chuỗi s được nhập từ bàn phím, bạn hãy viết chương trình hiển thị ra màn hình các kí tự khác kí tự 'y' hoặc kí tự 'u' trong chuỗi s.
Cho số nguyên n được nhập từ bàn phím, kiểm tra xem n có phải là số nguyên tố hay không Xuất ra màn hình " n la so nguyen to " nếu n
là số nguyên tố , "n khong la so nguyen to" nếu n không phải là số nguyên tố ( yêu cầu có sử dụng hàm kiểm tra số nguyên tố)
INPUT: 12
OUTPUT: n khong la so nguyen to Bài 3:
Cho chuỗi s được nhập vào từ bàn phím, bạn hãy viết chương trình Python để đếm số các chữ cái in hoa và in thường trong chuỗi và in kết quả ra màn hình theo từng dòng ( yêu cầu có sử dụng hàm đếm số các chữ cái in hoa và in thường trong chuỗi, gợi ý có dùng isupper() và islower() )
INPUT: You Are Apple In My Eye OUTPUT:
So chu cai in hoa la 6 So chu cai in thuong la 12 Bài 4:
Nhập số nguyên n từ bàn phím, sau đó nhập list arr gồm n phần tử số nguyên từ bàn phím Sắp xếp các phần tử của list arr theo thứ tự tăng dần và xuất ra màn hình ( yêu cầu có sử dụng hàm để sắp xếp các phần tử trong list )
INPUT: 5
moi ban nhap gia tri: 24 moi ban nhap gia tri: 54 moi ban nhap gia tri: 23 moi ban nhap gia tri: 67 moi ban nhap gia tri: 34 OUTPUT:
23 24 34 54 67 Bài 5:
Trang 13Cho trước tuple tup=(10, 8, 5, 2, 10, 15, 10, 8, 5, 8, 8, 2) , nhập số nguyên n từ bàn phím Kiểm tra xem thử n xuất hiện mấy lần trong tuple ( gợi ý chuyển tuple thành list để kiểm tra)
INPUT: 10
OUTPUT: 10 xuat hien 3 lan trong tuple da cho Bài 6:
Cho trước dictionary students = {'Quynh Anh':{'Lop':'22KDL', 'MSSV':22280002},'Dinh Le Bao Ngoc':{'Lop':'22TMDT','MSSV':22210204}} Xuất ra màn hình các phần tử của
iii Với mảng có sẵn {'a': 1, 'b': 3, 'c': 2, 'd': 5, 'e': 4} In giá trị lớn nhất trong listb) Tạo một Dictionary với các key có yêu cầu như sau:
Name (String): Tên Age (Number): Tuổi Gender (String): Giới tính
Point (List): Gồm n số thực nhập từ bàn phím
Xuất ra màn hình thông tin và Điểm trung bình của Point (Lưu ý: Các giá trị đều nhập vào từ bàn phím).Câu 2:
Viết một chương trình Python để kiểm tra xem một chuỗi có phải là số nguyên tố Palindromekhông Số nguyên tố Palindrome hay số xuôi ngược nguyên tố là số nguyên tố viết xuôi hay viết
Trang 14INPUT: 101OUTPUT: “Yes”
Câu 3:
A và B đang chơi trò di chuyển ngựa trên bảng n x m (n dòng và m cột), cả 2 cùng chơichung 1 chú ngựa Ngay từ lúc bắt đầu trò chơi, chú ngựa đang ở vị trí thấp nhất ngoài cùng bêntrái của bảng Trong một lượt di chuyển, người chơi có thể di chuyển chú ngựa qua bên phải hoặcđi lên trên bởi 1 số lẻ lần số ô (nhưng không thể di chuyển chú ngựa cùng đi lên trên và phải đitrong cùng 1 lượt chơi) Người nào không thể di chuyển ngựa thì sẽ thua (Giả sử cả A và B đềuhiểu rất rõ trò chơi này nên họ đều đi các nước đi tối ưu và tốt nhất để chiến thắng).
A sẽ đi trước và B đi sau A thật sự muốn thắng trò chơi này, nhưng A thấy lười để nghĩ ra chiếnthuật để thắng, vì vậy A muốn nhờ bạn giúp cô ấy Hãy ghi ra tên người chiến thắng trò chơi này.
Vị trí màu xanh là vị trí bắt đầu của chú ngựa, ô duy nhất mà chú ngựa không thể di chuyển là ômàu đỏ Gỉa sử nếu chú ngựa đang ở vị trí màu vàng thì chú ngựa có thể di chuyển đến các ô màuxanh nhạt.
INPUT:
Dòng đầu tiên chứa số nguyên t, số test case
Mỗi dòng tiếp theo chứ 2 số nguyên n và m ( kích thước của bảng trò chơi)
Trang 15Ở test case đầu tiên , A không thể di chuyển nên B thắng.
Ở test case thứ 2, A có thể di chuyển 3 ô theo bên phải, sau đó thì B không thể di chuyển nữa, vì thế A thắng.
Ở test case thứ 3, A có thể di chuyển 5 ô theo bên phải Và sau đó chúng ta có thể nói là chúng ta có bảng có kích thước 1x5 và B là người chơi đầu tiên Khi đó, người chơi thứ 2 sẽ thắng, hay nói cách khác là A thắng.
Các link bài tập các tuần: các học viên nộp bài thông qua Google form, link sẽ được gửi đến các học viên sau khi kết thúc buổi học.
- https://forms.gle/ZTQ2wecoXBKB2yXA9?
- https://forms.gle/3CUwUHL7VC1xC9bC9?
fbclid=IwAR38cfTy9TExoHEDeFLDy7QNJbvt2sactNZxi3ng5nbS3rfc2dXEoj20doY
Trang 16- https://forms.gle/4C9qykVwN8FDLNtL8?
Các link tổng hợp bài tập của các học viên qua các tuần:
Trang 18fbclid=IwAR3n0obSX7yujwr3xvQpzJLtXA-wYW1OiODuAIUmLC3Tjzg74aLC6iomsOs - gid=100651636
Trang 199 Tài liệu tham khảo:
1 Python cơ bản, Vũ Thanh Tài Available at: https://toidicode.com/series/python-co-ban