ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN MÔN HỌC PHƯƠNG PHÁP LUẬN SÁNG
TẠO TRONG KHOA HỌC
Đề tài: Trình bày một số nguyên lý sáng tạo cơ
bản và Áp dụng các nguyên lý sáng tạo vào
trong lập trình tin học Giảng viên hướng dẫn : GS.TSKH Hoàng Văn Kiếm
Học viên thực hiện : Nguyễn Thị Ngọc Diễm
MSHV: CH1101075 Lớp: Cao học K6-2011 TP Hồ Chí Minh, tháng 04 năm 2012
i
LỜI NÓI ĐẦU
Phương pháp luận sáng tạo và đổi mới là việc ứng dụng khoa học của sự
sáng tạo gồm hệ thống các phương pháp và kỹ năng cụ thể giúp nâng cao năng
suất và hiệu quả, về lâu dài tiến tới điều khiển tư duy sáng tạo của người sử dụng.
Phương pháp luận sáng tạotrong 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ẫn
cá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ành
nghiên cứu khoa học một cách sáng tạo.
3.3 Ví dụ áp dụng một số thủ thuật vào vấn đề tin học 5
3.3.1. Nguyên tắc kết hợp 5
3.3.2. Nguyên tắc dự phòng 5
3.3.3. Nguyên tắc tác động theo chu kỳ 5
3.3.4. Nguyên tắc sao chép 6
3.3.5. Nguyên tắc rẻ thay đắt 6
3.3.6. Nguyên tắc thay đổi màu sắc 7
3.3.7. Nguyên tắc sử dụng trung gian 7
3.3.8. Nguyên tắc phân nhỏ 8
3.3.9. Nguyên tắc sử dụng kết cấu khí và lỏng 8
3.3.10. Nguyên tắc quan hệ phản hồi 8
3.3.11. Nguyên tắc “chứa trong” 9
3.3.12. Nguyên tắc vượt nhanh 9
Chương 4 : ÁP DỤNG CÁC NGUYÊN LÝ SÁNG TẠO TRONG LẬP TRÌNH
TIN HỌC 10
4.1 Lịch sử của các phương pháp lập trình máy tính 10
4.1.1 Lập trình tuyến tính 10
4.1.2 Lập trình cấu trúc 10
4.1.3 Lập trình hướng đối tượng OOP 12
4.2 Sự mở rộng ngôn ngữ C++ 14
4.2.1 Lịch sử phát triển của C++ 14
4.2.2 Các mở rộng của C++ 14
Chương 5: KẾT LUẬN 15
TÀI LIỆU THAM KHẢO 15
1 Chương 1: KHÁI NIỆM KHOA HỌC VÀ
NGHIÊN CỨU KHOA HỌC
Chương 2: VẤN ĐỀ KHOA HỌC VÀ CÁC
PHƯƠNG PHÁP GIẢI QUYẾT
2.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ên cứ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ính hạ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.
2.2 Phân loại
Nghiên cứu khoa học luôn tồn tại hai vấn đề :
Vấn đề về bản chất sự vật đang tìm kiếm.
Vấn đề về phương pháp nghiên cứu để làm sáng tỏ về lý thuyết và
thực tiễn những vấn đề thuộc lớp thứ nhất.
2.3 Các tình huống vấn đề
Có vấn đề
Không có vấn
đ
ề
Gi
ả vấn đề
Có nghiên cứu
Không có nghiên
c
ứu
3.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ác
vấ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.
3.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ĩnh
vực kỹ thuật khác nhau, G.S. Altshuller đã đúc kết ra bốn mươi thủ thuật sáng
tạo cơ bản được trình bày sau:
1. Nguyên lý phân nhỏ
2. Nguyên lý “tách riêng”
3. Nguyên lý phẩm chất cục bộ
4 4. Nguyên lý phản đối xứng
5. Nguyên lý kết hợp
6. Nguyên lý vạn năng
7. Nguyên lý chứa trong
8. Nguyên lý phản trọng lượng
9. Nguyên lý gây ứng suất sơ bộ
10. Nguyên lý thực hiện sơ bộ
11. Nguyên lý dự phòng
12. Nguyên lý đẳng thế
13. Nguyên lý đảo ngược
14. Nguyên lý cầu (tròn) hóa
15. Nguyên lý năng động
16. Nguyên lý tác động bộ phận và dư thừa
Kết hợp các đối tượng đồng nhất hoặc các đối tượng dùng cho
các hoạt động kế cận
Kết hợp về mặt thời gian các hoạt động đồng nhất hoặc kế cận
Ví dụ:
- Một chương trình giải toán tam giác đựa vào mạng tính toán sẽ kết
hợp C# và Maple, trong đó dùng C# để viết giao diện chương trình,
Maple để tính toán.
3.3.2. Nguyên tắc dự phòng
Nội dung của nguyên tắc như sau:
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ụ:
- Windows sử dụng Recyle Bin để lưu tạm những file đã bị xóa (chỉ
Delete) trong một thời gian, để người dùng có thể khôi phục lại khi
cần thiết.
3.3.3. Nguyên tắc tác động theo chu kỳ
Nội dung của nguyên tắc như sau:
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ỳ.
6 Sử dụng khoảng thời gian giữa các xung để thực hiện tác động
khác
Ví dụ:
- Các phần mềm trên máy tính đa số đều sử dụng nguyên tắc này. Có
thể lấy một số phần mềm ứng dụng phổ biến như các chương trình
virus đều có thể lập lình cho quá trình update dữ liệu. Hay ngay cả
trong window cũng có quá trình update theo chu kỳ.
3.3.4. Nguyên tắc sao chép
3.3.6. Nguyên tắc thay đổi màu sắc
Nội dung của nguyên tắc này như sau:
Thay đổi màu sắc của đối tượng hay môi trường bên ngoài
Thay đổi độ trong suốt của đối tượng hay môi trường bên ngoài
Để có thể quan sát được những đối tượng hoặc những quá trình,
hãy sử dụng các chất phụ gia màu, huỳnh quang
Nếu các chất phụ gia đó đã được sử dụng, hãy dùng các nguyên tử
đánh dấu
Sử dụng các hình vẽ, ký hiệu thích hợp
Ví dụ:
- Màu sắc có ý nghĩa rất lớn trong việc thu hút sự chú ý của con người.
Biết được đều này các biên bản của hệ điều hành Window càng cải
thiện hơn về giao diện người dùng.
3.3.7. Nguyên tắc sử dụng trung gian
Nội dung của nguyên tắc này như sau:
Sử dụng đối tượng trung gian, chuyển tiếp để mang, truyền tác
động
Tạm thời gắn đối tượng cho đối tượng cho trước với các đối tượng
khác, dễ tách rời sau đó
Ví dụ:
- Các máy tình trong một mạng LAN được kết nối với nhau thông qua
các sợi dây cáp mạng
- Việc truyền hình ảnh từ máy tính lên màn hình ti vi được thực hiện
bởi việc kết nới dây cáp đầu HDMI. Nhưng với những máy tính
8 không có cổng HDMI, từ ta sử dụng 2 dây cáp trung gian đầu VGA-
DVI nối với đây cáp đầu DVI-HDMI, sau đó nối vào dây đầu
HDMI.
- Khi đăng ký làm thành viên của một trang web, người dùng bắt buộc
phải xác nhận lại thông tin bằng cách nhấp vào đường dẫn được gởi
trực tiếp đến mail của người dùng từ trang web đó. Sau khi đã xác
nhận thì người dùng có truy cập như là thành viên chính thức vào
trang web đó.
- Hệ điều hành giao tiếp với ngừơi sử dụng nên Windows phải có khả
năng phản hồi lại yêu cầu của người dùng thông qua giao diện đồ
hoạ thân thiện với người dùng và dể sự dụng. Sau khi phản hồi
Windows chở hành động tiếp theo của người dùng và dựa vào đó để
thực thi các process tiếp theo. Như vậy quá trình xử lý tiệp tục cho
đến khi mọi nhu cầu của người sử dụng được đáp ứng.
3.3.11. Nguyên tắc “chứa trong”
Nội dung của nguyên tắc này như sau:
Một đối tượng chứa bên trong nó một đối tượng khác và đối
tượng đó lại chứa đối tượng thứ ba…
Một đối tượng chuyển động xuyên suốt bên trong đối tượng khác
Ví dụ:
- Một bộ vi xử lý chứa trong nó hai lõi khác nhau có thể hoạt động
độc lập xử lý các tiền trình khác nhau hay cùng xử lý một tiến trình.
Đây cũng là đặt điểm nổi bật nhất của công nghệ bộ vi xử lý đa
nhân, xử lý song song các tiến trình hoặc đơn xử lý như vậy giúp
tăng hiệu quả của bộ vi xử lý
3.3.12. Nguyên tắc vượt nhanh
Nội dung của nguyên tắc này như sau:
Vượt qua giai đoạn có hai 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ụ:
10
ngữ lập trình có cấu trúc đã ra đời vào những năm 1960- 1970. Các chương
trình có cấu trúc được tổ chức theo các công việc mà chúng thực hiện. Một số
ngôn ngữ lập trình cấu trúc như Pascal, C, Foxpro.
Sự phát triển này đã vận dụng một số phương pháp trong sáng tạo như
sau:
Nguyên tắc phân nhỏ
Về bản chất, chương trình chia nhỏ thành các chương trình con riêng
lẽ (còn được gọi là hàm hay thủ tục). Mỗi hàm này sẽ thực hiện các
công việc rời rạc trong một quá trình phức tạp hơn. Việc phân nhỏ này
sẽ làm cho chương trình dễ quản lý hơn.
Nguyên tắc tách khỏi
Mục tiêu của lập trình có cấu trúc là làm sao cho việc triển khao các
phần mềm dễ dàng hơn đối với các lập trình viên mà vẫn cải thiện
được tính tin cậy và dễ bảo quản chương trình. Một chương trình có
cấu trúc hình thành bằng cách tách các chức năng cơ bản của chương
trình thành các mảnh nhỏ mà sau đó trở thành hàm.
Nguyên tắc cục bộ
Dữ liệu trong từng hàm là cục bộ có phạm vi chỉ trong hàm đó, nên có
hàm đó sử dụng và không phụ thuộc vào các hàm khác. Do vậy việc
tìm kiếm và thay đổi trở nên dễ dàng và dễ kiểm soát hơn. Việc này
cũng làm giảm khả năng ảnh hưởng của hàm này đến hàm khác.
Nguyên tắc tự phục vụ
Mỗi hàm làm một nhiệm vụ riêng, nên việc khai báo biến trong hàm
chỉ sẽ phục vụ cho riêng hàm đó, và bên ngoài hàm không thể truy
xuất đến được.
Nguyên tắc kết hợp
Thông tin được chuyển giao giữ các hàm thông qua các biến tham số.
Như vậy hàm cũng giống như là một chương trình con được đặt chung
với nhau để xây dựng nên một ứng dụng.
Nguyên tắc trung gian
trình có cấu trúc và sự trừu tượng hóa dữ liệu. Sự thay đổi căn bản của lập trình
OOP là chương trình được thiết kế xoay quanh dữ liệu mà chúng ta có thể làm
việc trên đó hơn là theo bản thân chức năng của chương trình. Điều này hoàn
toàn tự nhiên khi chúng ta hiểu rằng mục tiêu của chương trình là xử lý dữ liệu.
13 Lập trình hướng đối tượng liên kết dữ liệu với thao tác. Một số ngôn ngữ lập
trình hướng đối tượng như Eiffel, Clos, Loop, Flavors, Object Pascal, Object
C, C++, Delphi, Java.
Sự phát triển này đã vận dụng một số phương pháp trong sáng tạo như
sau:
Nguyên tắc đồng nhất:
Thể hiện ở tính đóng gói: đây là cơ chế ràng buộc dữ liệu và thao tác
trên dữ liệu đó thành một thể thống nhất, tránh được các tác động bất
ngờ từ bên ngoài. Thể thống nhất này gọi là đối tượng.
Nguyên tắc chứa trong:
- Thể hiện ở tính đóng gói: Đối tượng là sự kết hợp dữ liệu và thao tác
trên dữ liệu đó thành một thể thống nhất.Dữ liệu thể hiện tình trạng
hay thuộc tính của đối tương, hành vi hay phương thức để thực hiện
một số nhiệm vụ nhất định, nhằm thông báo hay làm thay đổi thuộc
tính của chính nó.
- Thể hiện qua tính kế thừa trong OOP: tính kế thừa là sự cho phép
định nghĩa các lớp mới từ các lớp đã có (tính kế thừa này còn thuộc
nguyên tắc sao chép)
Nguyên tắc vạn năng:
- Thể hiện qua tính đa hình trong ngôn ngữ lập trình OOP: tính đa
hìnhlà khả năng cư xử hoàn toàn khác nhau của những xử lý có dạng
gần như tương tự nhau. Tính đa hình thể hiện ở hai dạng:
+ Hàm nạp chồng (overloading function): là những hàm có cùng tên,
một ngôn ngữ đủ mạnh cho các dự án thực tiễn của mình.
4.2.2 Các mở rộng của C++
Về bản chất, C++ giống như C nhưng bổ sung thêm một số mở rộng quan
trọng, đặc biệt là ý tưởng về đối tượng. Sự phát triển này đã vận dụng một số
phương pháp trong sáng tạo như sau:
Nguyên tắc đồng nhất
Một số kiểu dữ liệu trong ngôn ngữ C++ như struct, uinon định định
nghĩa cách khai báo mới, nhưng để tương thích với C, C++ vẫn chấp
nhận cú pháp cũ.
Nguyên tắc phân hủy hoặc tái sinh từng phần
15 - Ngôn ngữ C dùng hàm malloc để khai báo vùng nhớ và dùng free để
giải phóng vùng nhớ đó, nhưng C++ dùng toán tử new để khai báo
và delete để giải phóng vùng nhớ. Cách khai báo mới trong C++ đơn
giản và rõ ràng và để sử dụng hơn so với trong C.
- C++ dùng biến nhập xuất cout, cin kết hợp với toán tử trích <<, hay
toán tử chèn >>thay vì dùng hàm prinf, scanf như trong C
Nguyên tắc linh động:
Trong C++, ta có thể khai báo các biến một cách linh hoạt ở bất kỳ vị
trí nào trong chương trình trước khi dùng đến nó, nhưng trong C đòi
hỏi các biến sử dụng trong một phạm vi nào đó thì phải được khai báo
ngay đầu phạm vi đó.
Chương 5: KẾT LUẬN
Việc ứng dụng phương pháp sáng tạo khoa học vào trong tin học đã góp
phần tạo nên sự phát triển vũ bão của ngành công nghệ thông tin ngày nay. Sự
phát triển này bắt đầu từ việc cải thiện ngôn ngữ lập trình cũng như phương