Điều này làm tăng tốc độ tải trang do nhiều kết nối được sử dụng đồng thời.2.6 Nguyên tắc vạn năng:Nội dung:- Đối tượng thực hiện một số chức năng khác nhau, do đó không cần sự tham gia
Trang 1LỜI NÓI ĐẦU
Phương pháp luận sáng tạo trong khoa học là kết quả của quá trình khái quát
lý thuyết và thực tiễn nghiên cứu khoa học và trở thành công cụ sắc bén để chỉ dẫncác nhà khoa học, các nhà quản lý trong công tác tổ chức, quản lý và thực hànhnghiên cứu khoa học một cách sáng tạo
Ngày nay, việc ứng dụng phương pháp sáng tạo để phát triển trong lĩnh vựctin học cũng như sự ra đời của nhiều ngôn ngữ lập trình cấp cao dẫn đến một bướctiến lớn về sự phát triển mạnh mẽ của công nghệ thông tin Mặc dù công nghệthông tin là ngành học mới được phát triển trong thời gian gần đây, nhưng ảnhhưởng của nó đến đời sống kinh tế xã hội đòi hỏi con người cần nhìn rõ được tầmquan trọng đó Do vậy việc áp dụng phương pháp sáng tạo trong quá trình giảiquyết các vần đề tin học có ý nghĩa vô cùng to lớn
Trong bài luận này sẽ trình bày 40 nguyên tắc sáng tạo và sự tiến hóa của các ngôn ngữ lập trình Qua đây em xin chân thành cảm ơn GS.TSKH Hoàng Kiếm, giảng viên môn học “Phương pháp nghiên cứu khoa học và tư duy sáng tạo”, người
đã truyền đạt cho chúng em những kiến thức vô giá về nguyên lý sáng tạo cũng như những phương pháp nghiên cứu khoa học, giúp chúng em hiểu rõ hơn về cách giải quyết các vấn đề và nhìn nhận khoa học một cách sáng suốt hơn
Trang 2MỤC LỤC
LỜI NÓI ĐẦU i
I KHÁI NIỆM KHOA HỌC VÀ NGHIÊN CỨU KHOA HỌC 1
1 Khoa học 1
2 Nghiên cứu khoa học 1
- Khái niệm 1
- Các bước nghiên cứu 1
II VẤN ĐỀ KHOA HỌC VÀ CÁC PHƯƠNG PHÁP GIẢI QUYẾT 2
1 Vấn đề khoa học 2
2 Phân loại 2
3 Các tình huống vấn đề 2
4 Các phương pháp phát hiện vấn đề khoa học 2
III BỐN MƯƠI THỦ THUẬT 3
1 Mở đầu 3
2 Bốn mươi thủ thuật 3
2.1 Nguyên tắc phân nhỏ: 3
2.2 Nguyên tắc “tách khỏi”: 3
2.3 Nguyên tắc phẩm chất cục bộ: 4
2.4 Nguyên tắc phản đối xứng: 4
2.5 Nguyên tắc kết hợp: 4
2.6 Nguyên tắc vạn năng: 5
2.7 Nguyên tắc “chứa trong”: 5
2.8 Nguyên tắc phản trọng lượng: 5
2.9 Nguyên tắc gây ứng suất sơ bộ: 6
2.10 Nguyên tắc thực hiện sơ bộ: 6
2.11 Nguyên tắc dự phòng: 6
2.12 Nguyên tắc đẳng thế: 6
2.13 Nguyên tắc đảo ngược: 7
2.14 Nguyên tắc cầu (tròn) hoá: 7
2.15 Nguyên tắc linh động: 7
2.16 Nguyên tắc giải “thiếu” hoặc “thừa”: 8
2.17 Nguyên tắc chuyển sang chiều khác: 8
2.18 Nguyên tắc sử dụng các dao động cơ học: 9
2.19 Nguyên tắc tác động theo chu kỳ: 9
2.20 Nguyên tắc liên tục tác động có ích 9
2.21 Nguyên tắc “vượt nhanh”: 10
2.22 Nguyên tắc biến hại thành lợi: 10
Trang 32.25 Nguyên tắc tự phục vụ: 11
2.26 Nguyên tắc sao chép (copy): 11
2.27 Nguyên tắc “rẻ” thay cho “đắt”: 11
2.28 Thay thế sơ đồ cơ học: 12
2.29 Sử dụng các kết cấu khí và lỏng: 12
2.30 Sử dụng vỏ dẻo và màng mỏng: 12
2.31 Sử dụng các vật liệu nhiều lỗ: 13
2.32 Nguyên tắc thay đổi màu sắc: 13
2.33 Nguyên tắc đồng nhất: 13
2.34 Nguyên tắc phân hủy hoặc tái sinh các phần: 14
2.35 Thay đổi các thông số hoá lý của đối tượng: 14
2.36 Sử dụng chuyển pha: 14
2.37 Sử dụng sự nở nhiệt: 14
2.38 Sử dụng các chất oxy hoá mạnh: 15
2.39 Thay đổi độ trơ: 15
2.40 Sử dụng các vật liệu hợp thành (composite): 15
IV ÁP DỤNG CÁC NGUYÊN LÝ SÁNG TẠO TRONG QUÁ TRÌNH TIẾN HÓA NGÔN NGỮ LẬP TRÌNH 16
1 Các ngôn ngữ mã giả: 16
1.1 ShortCode 16
1.2 Speedcoding 16
2 IBM và Fortran 17
3 Lập trình hàm 19
4 Bắt đầu khái niệm chia sẻ thời gian 20
5 Hai ngôn ngữ động đầu tiên: 20
6 Bắt đầu trừu tượng hóa dữ liệu: 21
7 Thiết kế trực giao: 22
8 Lập trình dựa trên Logic: 22
9 Lập trình hướng đối tượng: 23
10 Kết hợp giữa lập trình mệnh lệnh và lập trình hướng đối tượng: 23
11 Một ngôn ngữ hướng đối tượng dựa trên mệnh lệnh: 24
12 Các ngôn ngữ kịch bản cho Web 24
12.1 JavaScript 24
12.2 PHP 25
13 Xu hướng hiện nay 25
KẾT LUẬN 26
TÀI LIỆU THAM KHẢO 27
Trang 4I KHÁI NIỆM KHOA HỌC VÀ NGHIÊN CỨU KHOA HỌC
1 Khoa học
Khoa học là quá trình nghiên cứu nhằm khám phá ra những kiến thức mới,học thuyết mới về tự nhiên và xã hội cái mà có thể thay thế dần những cái cũ, cáikhông còn phù hợp Do dó, khoa học bao gồm một hệ thống tri thức về qui luậtcủa vật chất và sự vận động của vật chất, những qui luật của tự nhiên, xã hội, và
tư duy Hệ thống tri thức này hình thành trong lịch sử và không ngừng phát triểntrên cơ sở thực tiễn xã hội Phân biệt ra hai hệ thống tri thức là tri thức kinhnghiệm và tri thức khoa học
2 Nghiên cứu khoa học
Nghiên cứu khoa học là một họat động tìm kiếm, xem xét, điều tra, hoặcthử nghiệm Dựa trên những số liệu, tài liệu, kiến thức đạt được từ các thínghiệm NCKH để phát hiện ra những cái mới về bản chất sự vật, về thế giới
tự nhiên và xã hội, và để sáng tạo phương pháp và phương tiện kỹ thuật mớicao hơn, giá trị hơn Con người muốn làm NCKH phải có kiến thức nhất định
về lĩnh vực nghiên cứu và cái chính là phải rèn luyện cách làm việc tự lực, cóphương pháp từ lúc ngồi trên ghế nhà trường
Gồm 7 bước:
Xác lập vấn đề nghiên cứu
Giai đoạn chuẩn bị nghiên cứu
Lựa chọn nghiên cứu thông tin
Xây dựng giả thuyết, lựa chọn phương pháp và lập kế hoạch
Hoàn tất nghiên cứu
Viết báo cáo hoàn tất công trình
Giai đoạn kết thúc
Trang 5Có vấn đề
Không có vấn đề
Giả vấn đề
Có nghiên cứuKhông có nghiên cứuKhông có vấn đềNảy sinh vấn đề khác
Không có Nghiên cứuNghiên cứu theo một hướng khác
II VẤN ĐỀ KHOA HỌC VÀ CÁC PHƯƠNG
PHÁP GIẢI QUYẾT
1 Vấn đề khoa học
Vấn đề khoa học cũng được gọi là vấn đề nghiên cứu hoặc câu hỏi nghiêncứu là câu hỏi được đặt ra khi người nghiên cứu đứng trước mâu thuẫn giữa tínhhạn chế của tri thức khoa học hiện có với yêu cầu phát triển tri thức đó ở trình độcao hơn
Nghĩ ngược lại quan niệm thông thường
Quan sát những vướng mắc trong thực tiễn
Lắng nghe lời kêu ca phàn nàn
Cảm hứng : những câu hỏi bất chợt xuất hiện khi quan sát sự kiệnnào đó
Trang 6III BỐN MƯƠI THỦ THUẬT
1 Mở đầu
Trong hầu hết các lĩnh vực trong đời sống, việc giải quyết thành công cácvấn đề sẽ đều được rút ra nhiều kinh nghiệm, hay còn gọi là bí quyết, mẹo Nhờnhững kinh nghiệm này mà những vấn đề phát sinh sau trong cùng một lĩnh vực
và thậm chí là ngoài lĩnh vực đó có thể được con người giải quyết nhanh hơn vàhiệu quả hơn Những kinh nghiệm, bí quyết hay mẹo như vậy được gọi là thủthuật sáng tạo
2 Bốn mươi thủ thuật
Dựa trên việc phân tích hơn 40,000 bản mô tả sáng chế thuộc những lĩnhvực kỹ thuật khác nhau, G.S Altshuller đã đúc kết ra bốn mươi thủ thuật sángtạo cơ bản được trình bày sau:
2.1 Nguyên tắc phân nhỏ:
Nội dung:
- Chia đối tượng thành các phần độc lập.
- Làm đối tượng trở nên tháo lắp được.
- Tăng mức độ phân nhỏ đối tượng.
Ví dụ:
- Cách tiếp cận top-down trong thiết kế hệ thống, chia hệ thống thành nhiều
phần nhỏ hơn Bằng cách đó, chia hệ thống phức tạp thành nhiều mô-đun ít phức tạp hơn Quá trình này có thể được thực hiện lại cho từng mô-đun cho đến khi các mô-đun không còn bất cứ sự phức tạp nào nữa
2.2 Nguyên tắc “tách khỏi”:
Nội dung:
- Tách phần gây “phiền phức” (tính chất “phiền phức”) hay ngược lại tách
phần duy nhất “cần thiết” (tính chất “cần thiết”) ra khỏi đối tượng
Trang 7Ví dụ:
- Khi dữ liệu ít, ta lưu trữ chúng ở vài máy tính trong phòng, trong công ty
Nhưng khi dữ liệu lớn sẽ khó khăn trong việc bảo trì, mở rộng, … Do đó, ta phải nhờ tới data center
2.3 Nguyên tắc phẩm chất cục bộ:
Nội dung:
- Chuyển đối tượng (hay môi trường bên ngoài, tác động bên ngoài) có cấu
trúc đồng nhất thành không đồng nhất
- Các phần khác nhau của đối tượng phải có các chức năng khác nhau.
- Mỗi phần của đối tượng phải ở trong những điều kiện thích hợp nhất đối với
công việc
Ví dụ:
- Sửa một danh sách liên kết của các đối tượng xe máy thành một danh sách
liên kết của các đối tượng xe Việc trừu tượng hóa cao hơn này sẽ cho phép các đối tượng không đồng bộ (xe đạp, xe hơi, …) được lưu trữ trong cùng lớp bộ chứa và ngược lại
- Chuẩn của sắp xếp nhanh thường lấy phần tử giữa làm phần tử chốt Bằng
cách sử dụng phần tử trung vị trong ba phần tử đứng đầu, đứng giữa và đứng cuối làm phần tử chốt thường sẽ đạt được hiệu suất tốt hơn
Trang 8Ví dụ:
- Một trang web có thể được xây dựng từ nhiều khung (frame) Mỗi frame có
thể được tải từ một server khác nhau Điều này làm tăng tốc độ tải trang do nhiều kết nối được sử dụng đồng thời
2.6 Nguyên tắc vạn năng:
Nội dung:
- Đối tượng thực hiện một số chức năng khác nhau, do đó không cần sự tham
gia của các đối tượng khác
Ví dụ:
- Các phần mềm tăng tốc hệ thống như “tuneup utilities” có chức năng 1-click
có thể dọn các registry, loại bỏ các shortcut bị phá hủy, xóa các tập tin tạm, phân mảnh ổ đĩa, …
2.7 Nguyên tắc “chứa trong”:
- Trong các hàm băm, ta phân bổ các đối tượng vào một tập các bộ chứa trong
khi giữ số lượng của các đối tượng trong một bộ chứa xấp xỉ bằng nhau
Trang 92.9 Nguyên tắc gây ứng suất sơ bộ:
Nội dung:
- Gây ứng suất trước với đối tượng để chống lại ứng suất không cho phép
hoặc không mong muốn khi đối tượng làm việc (hoặc gây ứng suất trước để khi làm việc sẽ dùng ứng suất ngược lại)
Ví dụ:
- Khi một ứng dụng bắt đầu đọc từ một cơ sở dữ liệu, ta có thể tải (load) các
bảng quan trọng hay các chỉ mục trước
2.10 Nguyên tắc thực hiện sơ bộ:
Nội dung:
- Thực hiện trước sự thay đổi cần có, hoàn toàn hoặc từng phần, đối với đối
tượng
- Cần sắp xếp đối tượng trước, sao cho chúng có thể hoạt động từ vị trí thuận
lợi nhất, không mất thời gian dịch chuyển
Ví dụ:
- Driver máy in kiểm thử tính sẵn sàng của máy in trước khi người sử dụng
hoàn tất các thiết lập của họ
2.11 Nguyên tắc dự phòng:
Nội dung:
- Bù đắp độ tin cậy không lớn của đối tượng bằng cách chuẩn bị trước các
phương tiện báo động, ứng cứu, an toàn
Ví dụ:
- Hệ điều hành sao lưu dữ liệu các tập tin quan trọng của nó trước khi được sử
dụng Nếu xảy ra lỗi có thể khôi phục lại mà không phải cài lại
2.12 Nguyên tắc đẳng thế:
Nội dung:
- Thay đổi điều kiện làm việc để không phải nâng lên hay hạ xuống các đối
tượng
Trang 10Ví dụ:
- Sắp xếp lại một cơ sở dữ liệu hay tập tin chỉ khi nào thực sự cần thiết
Thường thì dữ liệu bị xóa bằng một cái cờ đánh dấu nó bị xóa Các bản ghi trong cơ sở dữ liệu không phải di chuyển mặc dù chúng dường như có vị trí mới trong cơ sở dữ liệu
2.13 Nguyên tắc đảo ngược:
Nội dung:
- Thay vì hành động như yêu cầu bài toán, hành động ngược lại (ví dụ, không
làm nóng mà làm lạnh đối tượng)
- Làm phần chuyển động của đối tượng (hay môi trường bên ngoài) thành
đứng yên và ngược lại, phần đứng yên thành chuyển động
Ví dụ:
- Các hệ thống backtracking
2.14 Nguyên tắc cầu (tròn) hoá:
Nội dung:
- Chuyển những phần thẳng của đối tượng thành cong, mặt phẳng thành mặt
cầu, kết cấu hình hộp thành kết cấu hình cầu
- Sử dụng các con lăn, viên bi, vòng xoắn.
- Chuyển sang chuyển độg quay, sử dung lực ly tâm.
- Cần thay đổi các đặt trưng của đối tượng hay môi trường bên ngoài sao cho
chúng tối ưu trong từng giai đoạn làm việc
- Phân chia đối tượng thành từng phần, có khả năng dịch chuyển với nhau.
Trang 11Ví dụ:
- Thay đổi chế độ nhìn trong một ứng dụng như PowerPoint Chỉnh sửa văn
bản trong chế độ outline thì sẽ dàng và nhìn tổng quan hơn trong chế độ trình bày
2.16 Nguyên tắc giải “thiếu” hoặc “thừa”:
Nội dung:
- Nếu như khó nhận được 100% hiệu quả cần thiết, nên nhận ít hơn hoặc
nhiều hơn “một chút” Lúc đó bài toán có thể trở nên đơn giản hơn và dễ giải hơn
Ví dụ:
- Để sắp xếp một mảng lớn thì thì thuật toán sắp xếp nhanh thường được sử
dụng Tuy nhiên khi các mảng con để sắp xếp trở nên nhỏ, ít hơn 10 phần
tử, các thuật toán khác được sử dụng thực thi tốt hơn
2.17 Nguyên tắc chuyển sang chiều khác:
Nội dung:
- Những khó khăn do chuyển động (hay sắp xếp) đối tượng theo đường (một
chiều) sẽ được khắc phục nếu cho đối tượng khả năng di chuyển trên mặt phẳng (hai chiều) Tương tự, những bài toán liên quan đến chuyển động (hay sắp xếp) các đối tượng trên mặt phẳng sẽ được đơn giản hoá khi
chuyển sang không gian (ba chiều)
- Chuyển các đối tượng có kết cấu một tầng thành nhiều tầng.
- Đặt đối tượng nằm nghiêng.
- Sử dụng mặt sau của diện tích cho trước.
- Sử dụng các luồng ánh sáng tới diện tích bên cạnh hoặc tới mặt sau của diện
tích cho trước
Ví dụ:
- Một hàng đợi mà khi lớn dần và không còn chỗ để cho một phần tử mới vào
thì có thể đặt phần tử đó vào ổ đĩa cho đến khi còn chỗ trống trong bộ nhớ chính
Trang 122.18 Nguyên tắc sử dụng các dao động cơ học:
Nội dung:
- Làm đối tượng dao động Nếu đã có dao động, tăng tầng số dao động ( đến
tầng số siêu âm)
- Sử dụng tầng số cộng hưởng.
- Thay vì dùng các bộ rung cơ học, dùng các bộ rung áp điện.
- Sử dụng siêu âm kết hợp với trường điện từ.
Ví dụ:
- Thuật toán round robin đọc luân phiên từ các hàng đợi.
2.19 Nguyên tắc tác động theo chu kỳ:
Nội dung:
- Chuyển tác động liên tục thành tác động theo chu kỳ (xung).
- Nếu đã có tác động theo chu kỳ, hãy thay đổi chu kỳ.
- Sử dụng các khoảng thời gian giữa các xung để thực hiện tác động khác.
Ví dụ:
- Trong vài trường hợp ta nên cập nhật một bảng nào đó của cơ sở dữ liệu chỉ
một lần trên một ngày và tính toán lại việc sắp xếp chỉ mục một lần một ngày thay vì mỗi lần cập nhật đơn lẻ Tương tự loại bỏ các mục được đánh dấu xóa chỉ một lần một ngày
2.20 Nguyên tắc liên tục tác động có ích
Nội dung:
- Thực hiện công việc một cách liên tục (tất cả các phần của đối tượng cần
luôn luôn làm việc ở chế độ đủ tải)
- Khắc phục vận hành không tải và trung gian.
- Chuyển chuyển động tịnh tiến qua lại thành chuyển động qua.
Ví dụ:
- Trong hệ điều hành đa nhiệm, các tác vụ có thể chạy nền như quét vi-rút, in
ấn, …
Trang 132.21 Nguyên tắc “vượt nhanh”:
Nội dung:
- Vượt qua các giai đoạn có hại hoặc nguy hiểm với vận tốc lớn.
- Vượt nhanh để có được hiệu ứng cần thiết.
Ví dụ:
- Tắt kết nối tới cơ sở dữ liệu trong khi sao lưu Sao lưu có thể thực hiện
nhanh hơn và sau khi sao lưu mọi người có thể sử dụng cơ sở dữ liệu
2.22 Nguyên tắc biến hại thành lợi:
Nội dung:
- Sử dụng những tác nhân có hại (thí dụ tác động có hại của môi trường) để
thu được hiệu ứng có lợi
- Khắc phục tác nhân có hại bằng cách kết hợp nó với tác nhân có hại khác.
- Tăng cường tác nhân có hại đến mức nó không còn có hại nữa.
Ví dụ:
- Nếu một chương trình mà có tác vụ tính toán hay truy vấn mất một thời gian
dài thì hiển thị một thông báo để người sử dụng có thể pha một tách cafe hay làm các bài thể dục thư giãn khác Điều này có thể tốn thời gian hơn nhưng người sử dụng không phải ở trong tình trạng chờ đợi thực sự
2.23 Nguyên tắc quan hệ phản hồi:
Nội dung:
- Thiết lập quan hệ phản hồi.
- Nếu đã có quan hệ phản hồi, hãy thay đổi nó.
Ví dụ:
- Có một thành phần giám sát trong bất kỳ phần mềm nào để mà giám sát sự
thực hiện, hiệu suất bộ nhớ và có hành động khắc phục
- Bộ xử lý ngoại lệ (exception handling)
2.24 Nguyên tắc sử dụng trung gian:
Nội dung:
- Sử dụng đối tượng trung gian, chuyển tiếp.
Trang 14Ví dụ:
- Sử dụng một máy chủ cho các máy in để giữ các công việc tạm thời khi các
máy in đang offline
- Một trình duyệt web có thể chuyển hướng request của bạn tới một website
khác nếu server không tồn tại Chẳng hạn Google bị offline thì có chuyển tớiBing, Yahoo, …
2.26 Nguyên tắc sao chép (copy):
Nội dung:
- Thay vì sử dụng những cái không được phép, phức tạp, đắt tiền, không tiện
lợi hoặc dễ vỡ, sử dụng bản sao
- Thay thế đối tượng hoặc hệ các đối tượng bằng bản sao quang học (ảnh,
hình vẽ) với các tỷ lệ cần thiết
- Nếu không thể sử dụng bản sao quang học ở vùng biẻu kiến (vùng ánh sáng
nhìn thấy được bằng mắt thường), chuyển sang sử dụng các bản sao hồng ngoại hoặc tử ngoại
Trang 15Ví dụ:
- Tính toán với số nguyên thay vì dùng số kiểu dấu chấm động nếu vẫn chính
xác với ứng dụng của bạn, thời gian thực hiện sẽ nhanh hơn
2.28 Thay thế sơ đồ cơ học:
Nội dung:
- Thay thế sơ đồ cơ học bằng điện, quang, nhiệt, âm hoặc mùi vị.
- Sử dụng điện trường, từ trường và điện từ trường trong tương tác với đối
tượng
- Chuyển các trường đứng yên sang chuyển động, các trường cố định sang
thay đổi theo thời gian, các trường đồng nhất sang có cấu trúc nhất định
- Thay cho các phần của đối tượng ở thể rắn, sử dụng các chất khí và lỏng:
nạp khí, nạp chất lỏng, đệm không khí, thủy tĩnh, thủy phản lực
Ví dụ:
- Sử dụng biến thay vì hằng số được code cứng Khi hằng số thay đổi chỉ cần
thay đổi ở một nơi
2.30 Sử dụng vỏ dẻo và màng mỏng:
Nội dung:
- Sử dụng các vỏ dẻo và màng mỏng thay cho các kết cấu khối.
- Cách ly đối tượng với môi trường bên ngoài bằng các vỏ dẻo và màng
mỏng
Ví dụ:
- Các lớp được định nghĩa với các interface có thể thay đổi nội dung các
interface bên trong lớp