THAM LUẬN
LÀM SAO ĐỂ NÂNG CAO KỸ NĂNG LẬP
TRÌNH CƠ BẢN CHO SINH VIÊN NGÀNH CNTT
Tác giả : Bùi Hữu Giáp
Đơn vị : Đại học Tin – K15
SĐT : ***********
Email : ************************
I. Đặt vấn đề
Có thể nói kĩ năng lập trình là một yêu cầu cơ bản của sinh viên ngành Công
nghệ thông tin, đây là điều hiển nhiên đối với các sinh viên có ý định theo đuổi
nghề sản xuất phần mềm. Đối với sinh viên theo các hướng khác, lập trình cũng
giúp sinh viên nắm bắt được bài học tốt hơn, ứng dụng kiến thức đã học vào thực
tế. Vì vậy trong năm nhất và năm hai, việc rèn luyện kỹ năng lập trình tốt là một
nhiệm vụ quan trọng hàng đầu của sinh viên.
Lập trình căn bản giúp sinh viên hiểu rõ thế nào là lập trình, những công
việc mà lập trình viên cần làm, quy trình giải quyết một bài toán, các phương pháp
lập trình, nguyên lý về cơ sở dữ liệu cũng như kỹ năng lập trình, đây chính là chìa
khóa để sinh viên có thể dễ dàng tiếp cận được những kiến thức chuyên ngành sau
này. Xa hơn nữa, lập trình căn bản giúp sinh viên phát triển tư duy logic và cách
nhìn nhận vấn đề một cách khách quan, rèn luyện tính tỉ mỉ và nhẫn nại khi làm
việc.
II. Thực trạng
Tại khoa CNTT&TT trường Đại học Hồng Đức, sinh viên được tiếp cận với
lập trình căn bản tại năm nhất và năm hai thông qua các môn học như: Lập trình
C, Cấu trúc dữ liệu và giải thuật, Phân tích thiết kế thuật toán, Đồ họa C,… được
trang bị những kiến thức về cả lí thuyết lẫn thực hành bởi đội ngũ thầy cô có năng
lực và tâm huyết.
Trái ngược hoàn toàn với tầm quan trọng của lập trình căn bản và sự nhiệt
tình giảng dạy của các thầy cô, một bộ phận sinh viên bộc lộ thái độ thiếu tự giác,
hời hợt, lười biếng, thiếu tính chủ động trong việc tiếp thu kiến thực, lâu ngày dẫn
tới việc thiếu hụt kiến thức cơ sở và gặp khó khăn trong việc tiếp cận những kiến
thức mới, thiếu hụt kĩ năng lập trình. Một bộ phận sinh viên khác do trên lớp chú
ý lắng nghe nên tiếp thu được phần lớn bài giảng của thầy cô, tuy nhiên khi về
nha lại thiếu tinh thần tự học, do đó thiếu tính sáng tạo hoặc những kiến thức tiếp
thu trên lớp cũng dần dần mai một.
III. Nguyên nhân
Nguyên nhân sâu xa
Lập trình khó: Lập trình là một kĩ năng khó, đòi hỏi sinh viên phải
có tư duy tốt về thuật toán và cần có một quá trình tích lũy lâu dài và
cần có sừ trau dồi thường xuyên. Đây là cái mà nhiều sinh viên bị
thiếu. Điều này cũng đem lại sự khó khăn cho giảng viên trong quá
trình giảng dạy. Việc cải thiện là một quá trình lâu dài, cần có sự phối
hợp giữa giảng viên và chính bản thân sinh viên, đòi hỏi có thời gian
và sự chủ động của sinh viên, không thể một sớm một chiều mà xong
được.
Mất gốc (thiếu hụt kiến thức cơ sở): Trong ngành CNTT, tất cả các
môn đều có sự liên hệ với nhau, có những môn được xem là điều kiện
tiên quyết. Nếu không học được các môn tiên quyết này thì việc tiếp
cận với các môn học sau là vô cùng khó khăn nếu như sinh viên không
có sự quan tâm đúng mức và chủ động trong quá trình học tập.
Sự kiểm tra, đốc thúc ở một số thầy cô đối với sinh viên là thiếu
vắng: Chính sự thiếu vắng trong việc đốc thúc của một vài thầy cô đã
tạo điều kiện cho sự lười biếng ở một bộ phận sinh viên được bộc lộ
ra.
Nguyên nhân trực tiếp
Cho rằng không theo chuyên ngành Kĩ thuật phần mềm thì không
cần học lập trình: Đây là một quan niệm hết sức sai lầm, cố hữu trong
một bộ phận lớn sinh viên và được lưu truyền từ khóa này sang khóa
khác. Để bài trừ được sự cố hữu của quan niệm này, các giảng viên
khi giảng dạy cần giảng giải cho sinh viên về tầm quan trọng của lập
trình trong từng chuyên ngành để sinh viên dần dần thấy được tầm
quan trọng và bài trừ quan niệm này ra khỏi đầu.
Học lập trình căn bản sau này không dùng để làm gì cả: Điều này
thoạt trông có vẻ đúng, tuy nhiên lại không đúng. Như lúc đầu tôi đã
đề cập tới, “lập trình căn bản giúp sinh viên hiểu rõ thế nào là lập
trình, những công việc mà lập trình viên cần làm, quy trình giải quyết
một bài toán, các phương pháp lập trình, nguyên lý về cơ sở dữ liệu
cũng như kỹ năng lập trình”, đây chính là chìa khóa để sinh viên có
thể tiếp cận với những kiến thức chuyên ngành sau này.
Thiếu ý thức tự học: Một số sinh viên cho rằng chỉ cần học trên lớp
là đủ mà không rèn luyện thêm ở nhà. Trong khi đó để nắm vững lập
trình, sinh viên cần phải làm nhiều bài tập ở nhà để tích lũy kinh
nghiệm. Trên lớp giáo viên chỉ có thể truyền đạt những kiến thức cơ
bản. Sinh viên phải tự tham khảo tài liệu để học các kiến thức mở rộng.
Yếu tiếng Anh: Một số sinh viên tuy siêng năng nhưng do kiến thức
tiếng Anh còn yếu, khi viết chương trình gặp lỗi không thể tự mình
sửa lỗi nên dễ dẫn đến chán nản, bỏ bê và phó mặc.
IV. Giải pháp
Với những nguyên nhân đã đề cập tới ở trên, tôi xin đề xuất một số giải pháp
có thể giúp sinh viên nâng cao nâng cao trình độ của bản thân về lập trình căn bản
và xa hơn nữa là nâng cao chất lượng của việc dạy và học lập trình tại khoa
CNTT&TT trường Đại học Hồng Đức.
1. Về phía sinh viên
Hiểu được tầm quan trọng của kỹ năng lập trình đối với ngành CNTT là bước
ban đầu giúp sinh viên có động lực để tiếp tục học. Sinh viên phải tự rèn luyện
tính chủ động, kĩ năng tự học, nỗ lực làm bài tập ở nhà, ngoài bài tập giáo viên
cho trên lớp, cần thực hiện các bài tập trong các tài liệu tham khảo khác để tích
lũy kiến thức, đồng thời tạo niềm say mê trong học tập.
Đối với giờ thực hành, để đạt hiệu quả cao, sinh viên cần tích cực làm trước
bài tập ở nhà, giờ thực hành tại phòng máy dùng để ôn luyện hoặc nhờ giáo viên
giúp đỡ trong việc sửa lỗi chương trình hay giải quyết các vấn đề khó.
Hiện nay, trên mạng Internet có rất nhiều nguồn bài tập bao gồm cả lời giải.
Các sinh viên có thể sử dụng nguồn tài liệu này để tham khảo, giải quyết các
vướng mắc gặp phải trong quá trình lập trình. Tuy nhiên không nên lạm dụng sao
chép mã nguồn mà không hiểu nội dung, cách thức hoạt động của mã nguồn đó.
Tự viết và hoàn thiện những chương trình nho nhỏ (đặc biệt như các game)
qua đó tự tạo niềm vui và hứng thú và sự sáng tạo cho bản thân, đồng thời rất tốt
cho việc rèn luyện tư duy thuật toán, kĩ năng xử lí các tình huống hết sức thực tiễn
trong mỗi game.
2. Về phía giảng viên
Giảng giải cho sinh viên biết và hiểu được tầm quan trọng của các môn lập
trình căn bản với ngành CNTT và đối với các chuyên ngành để qua đó sinh viên
hiểu được tầm quan trọng và đầu tư cho việc học tập; không nên nói quá chung
chung, dễ làm cho sinh viên không hiểu được vấn đề và có những quan niệm sai
lầm.
Khi giảng dạy, ngoài những bài tập trong giáo trình, giảng viên có thể cho
một số bài tập có ý nghĩa thực tế, chẳng hạn như lập trình các chương trình ứng
dụng vào thực tiễn, game Việc tự mình thực hiện được cái bài tập có ý nghĩa
giúp sinh viên có niềm vui trong học tập, hiểu được ý nghĩa môn học, tạo hứng
thú và động lực cho sinh viên trong học tập.
Tăng cường việc kiểm tra, đốc thúc sinh viên hoàn thành những bài tập được
giao, trong thi cử cần nghiêm khắc hơn, chấm điểm đúng năng lực để qua đó bắt
sinh viên phải tự học nâng cao tinh thần tự giác và tính chăm chỉ.
3. Về phía khoa
Chương trình đào tạo cần được thiết kế hợp lý hơn, nên tăng trọng số của
môn Lập trình C trong chương trình đào tạo, chia ra hai học phần là cơ bản và
nâng cao để có các phương pháp khác nhau trong việc giảng dạy của giảng viên
(điều này khoa ta đã làm được và đang áp dụng đối với sinh viên K17); đưa môn
học Lập trình C vào học kỳ 1 năm thứ nhất để sinh viên có đủ thời gian làm quen
và tích lũy kinh nghiệm lập trình. Cần bổ sung thêm một số kiến thức chuyên môn
liên quan trực tiếp tới quá trình làm việc sau này để sinh viên hứng thú học tập
hơn.
Cắt cử những giảng viên giàu kinh nghiệm, tâm huyết và có phương thức
truyền đạt tốt dạy môn Lập trình C, đây là một vấn đề hết sức quan trọng, qua đó
tạo nền tảng vững chắc về ngôn ngữ và kĩ năng lập trình để sinh viên có thể dễ
dàng tiếp cận những môn học về sau, tránh được tình trạng thiếu hụt kiến thức cơ
sở cho sinh viên.
Ngoài ra cần đẩy mạnh các hoạt động ngoại khóa liên quan đến lập trình như
tổ chức thi Olympic, thi thiết kế trưng bày các phần mềm mà sinh viên tự thực
hiện được. Xây dựng câu lạc bộ Tin học với các nhóm lập trình, lấy sinh viên khá
giỏi làm nòng cốt với sự hướng dẫn của giáo viên.
V. Kết luận
Việc nâng cao nâng cao trình độ của bản thân về lập trình căn bản và xa hơn
nữa là nâng cao chất lượng của việc dạy và học lập trình tại khoa ta là một vấn đề
khó, cần có sự quan tâm và đầu tư đúng mức từ phía khoa, cán bộ giảng viên và
đặc biệt là bản thân các bạn sinh viên; đòi hỏi nhiều giải pháp và phương pháp
khác nhau, cần một quá trình lâu dài, không thể ngày một ngày hai mà làm được
ngay. Tuy vậy, tôi cho rằng nếu chúng ta bắt tay vào thực hiện những giải pháp
được đưa ra một cách thực sự nghiêm túc thì nhất định sẽ thành công.