Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
692,66 KB
Nội dung
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Phương Pháp Luận SángTạo
Trong Khoa Học
40nguyêntắcsángtạo ứng dụngtrong
tin học và quátrìnhtiếnhóangônngữ
lập trình
Giáo viên hướng dẫn
GS.TSKH. Hoàng Kiếm
Học viên: Huỳnh Lê Quốc Vương MHV: CH1101158
04 - 2012
1
LỜI MỞ ĐẦU: 4
I. 40 Nguyên tắcsángtạo và ứngdụngtrongtin học: 5
1. Nguyêntắc phân nhỏ: 5
2. Nguyêntắc “tách khỏi”: 5
3. Nguyêntắc phẩm chất cục bộ: 6
4. Nguyêntắc phản đối xứng: 7
5. Nguyêntắc kết hợp: 7
6. Nguyêntắc vạn năng: 8
7. Nguyêntắc “chứa trong”: 8
8. Nguyêntắc phản trọng lượng: 8
9. Nguyêntắc gây ứng suất sơ bộ: 9
10. Nguyêntắc thực hiện sơ bộ: 9
11. Nguyêntắc dự phòng: 10
12. Nguyêntắc đẳng thế: 10
13. Nguyêntắc đảo ngược: 11
14. Nguyêntắc cầu (tròn) hoá: 11
15. Nguyêntắc linh động: 11
16. Nguyêntắc giải “thiếu” hoặc “thừa”: 12
17. Nguyêntắc chuyển sang chiều khác: 12
18. Nguyêntắc sử dụng các dao động cơ học: 13
19. Nguyêntắctác động theo chu kỳ: 13
20. Nguyêntắc liên tục tác động có ích 14
21. Nguyêntắc “vượt nhanh”: 14
2
22. Nguyêntắc biến hại thành lợi: 15
23. Nguyêntắc quan hệ phản hồi: 15
24. Nguyêntắc sử dụng trung gian: 15
25. Nguyêntắc tự phục vụ: 16
26. Nguyêntắc sao chép (copy): 16
27. Nguyêntắc “rẻ” thay cho “đắt”: 17
28. Thay thế sơ đồ cơ học: 17
29. Sử dụng các kết cấu khí và lỏng: 18
30. Sử dụng vỏ dẻo và màng mỏng: 18
31. Sử dụng các vật liệu nhiều lỗ: 18
32. Nguyêntắc thay đổi màu sắc: 19
33. Nguyêntắc đồng nhất: 19
34. Nguyêntắc phân hủy hoặc tái sinh các phần: 20
35. Thay đổi các thông số hoá lý của đối tượng: 20
36. Sử dụng chuyển pha: 20
37. Sử dụng sự nở nhiệt: 21
38. Sử dụng các chất oxy hoá mạnh: 21
39. Thay đổi độ trơ: 22
40. Sử dụng các vật liệu hợp thành (composite): 22
II. Lịch sử phát triển ngônngữlập trình: 23
1. Zuse’s Plankalkül: 24
2. Các ngônngữ mã giả: 24
3. IBM và Fortran 25
4. Lậptrình hàm 28
3
5. Bước đầu tiêntiến tới sự tinh xảo 30
6. Khởi đầu của ngônngữ cho doanh nghiệp 32
7. Bắt đầu khái niệm chia sẻ thời gian 33
8. Ngônngữ cho cả khoa họcvà doanh nghiệp : PL/I 33
9. Hai ngônngữ động đầu tiên : APL và SNOBOL 34
10. Bắt đầu trừu tượng hóa dữ liệu : SIMULA 67 35
11. Thiết kế trực giao : ALGOL 68 36
12. Lậptrình dựa trên Logic : Prolog 36
13. Ngônngữ được thiết kế công phu nhất : Ada 37
14. Lậptrình hướng đối tượng : Smalltalk 38
15. Kết hợp giữa lậptrình mệnh lệnh vàlậptrình hướng đối tượng: C++ 38
16. Một ngônngữ hướng đối tượng dựa trên mệnh lệnh : Java 39
17. Các ngônngữ kịch bản cho Web 39
18. Xu hướng hiện nay 40
III. Kết luận: 41
TÀI LIỆU THAM KHẢO: 42
4
Lời mở đầu:
Nếu ai đó chưa biết, chưa đọc, chưa nghiên cứu về Genrikh Saulovich
Atchuller và Lý thuyết giải các bài toán sáng chế (TRIZ) của ông thì quả là
một thiệt thòi đối với người đó. Tại sao vậy? Bởi ông là một tài năng lớn, một
người có nhân cách sáng ngời, là một nhà khoa học rất đáng kính trọng. Đặc
biệt với TRIZ 40nguyêntắcsáng tạo, ông đã góp phần tạo nên sự phát triển
cho thế giới này.
Khi con người sinh ra bản năng đã ham muốn tìm tòi học hỏi khám phá
những điều mới mẻ. Nhờ có khả năng tư duy sángtạo thiên tài mà những nhà
phát minh như Leonardo Da Vinci, Archimedes hay Thomas Edison, … đã làm
thay đổi cuộc sống của nhân loại này. Vậy đối với những người bình thường
chúng ta thì sao, làm sao có thể có những cải tiến đóng góp cho xã hội? Thầy
Atchuller đã hiểu được điều đó và năm 1946, ông đã nung nấu ý định đầu tiên
xây dựng một lý thuyết giúp bất kỳ một người bình thường nào cũng có thể
thực hiện được các sáng chế mà sau này ông đặt tên là “Lý thuyết giải các bài
toán sáng chế” (TRIZ). Với 40nguyêntắcsángtạo cơ bản này có thể nói nó đã
tổng quát được hầu như hàng triệu phát minh cải tiếntrong cuộc sống con
người trong thời gian qua. Và lĩnh vực công nghệ thông tin cũng không phải là
ngoại lệ. Trong bài luận này sẽ trình bày 40 nguyên tắcsángtạo và những ví
dụ trong công nghệ thông tin với từng nguyêntắc (mỗi nguyêntắc sẽ có hai ví
dụ) cho bạn dễ hình dung. Ngoài ra, nhờ có sự phát triển mạnh mẽ của phần
cứng từ máy dệt tự động Jacquard đến những siêu máy tính ngày nay mà các
ngôn ngữlậptrình cũng được tiếnhóa theo. Chúng tiếnhóa theo cách nào và
đem lại những gì? Chúng ta hãy cùng xem sự tiếnhóa của chúng trong các
nguyên tắcsángtạo như thế nào nhé.
5
I. 40 Nguyên tắcsángtạo và ứngdụngtrongtin học:
1. Nguyêntắ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.
- Một ứngdụng có thể được xây dựng dựa trên các dịch vụ độc lập có sẵn
trong mạng cục bộ hay qua Internet chẳng hạn như Web-service (thông
qua các Web-service của Yahoo, ta có thể xây dựng một ứngdụng chat
tương tự như Yahoo! Messenger cho riêng mình). Tương tự, các ứng
dụng có thể được xây dựng bằng cách sử dụng các thành phần thương
mại (ta có thể sử dụng mCore.NET để tích hợp gửi và nhận tin nhắn
SMS vào các ứngdụng chạy trên nền tảng .NET) hay miễn phí (từ
kernel của Linux mà hiện này có hơn 100 bản phân phối như Mint,
Ubuntu, Fedora, …)
2. Nguyêntắ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.
Ví dụ:
6
- Trong cơ chế nén âm thanh MP3 loại bỏ đi các phần tín hiệu của âm
thanh mà đa số mọi người không thể nghe được nhờ các đặc điểm chức
năng nghe của con người. Tượng tự, trong kỹ thuật nén ảnh như JPEG
loại bỏ thông tin để đạt được tỉ lệ nén ảnh cao hơn của một ảnh mà
không biến dạng ảnh quá nhiều.
- 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.
3. Nguyêntắ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ụ:
- Mô hình: Blackboard. Được sử dụng cho các vấn đề không xác định
được chiến lược giải pháp. Ý tưởng là một tập hợp các chương trình độc
lập mà cùng làm việc cộng tác trên một cấu trúc dữ liệu chung. Mỗi
chương trình giải quyết một phần của tổng thế công việc, và tất cả
chương trình làm việc với nhau về giải pháp. Các chương trình chuyên
biệt này độc lập lẫn nhau. Chúng không gọi lẫn nhau, không có một sự
tuần tự nào định trước về hoạt động của chúng. Thay vào đó, chúng
được điều khiển bởi hệ thống chủ yếu dựa vào trạng thái hiện tại của
tiến độ. Một thành phần điều khiển trung tâm sẽ đánh giá trạng thái hiện
tại của việc xử lý và điều phối các chương trình. Cách thức điều khiển
hướng dữ liệu này làm thử nghiệm với các thuật toán khác nhau có thể,
7
và cho phép việc suy ra qua các thử nghiệm “heuristic” để điều khiển
việc xử lý.
- 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.
4. Nguyêntắc phản đối xứng:
Nội dung:
- Chuyển đối tượng có hình dạng đối xứng thành không đối xứng (nói
chung giảm bật đối xứng).
Ví dụ:
- 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.
- Trong thanh công cụ tìm kiếm bài hát, thay vì chỉ nhập vào tên bài hát.
Ta có thể nhập vào tên ca sĩ, tên nhạc sĩ, một đoạn bài hát, … để giúp
người dùng thuận lợi hơn trong việc tìm kiếm bài hát.
5. Nguyêntắc kết hợp:
Nội dung:
- 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 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.
8
- Một tập đĩa RAID-5 phân chia một tập tinqua nhiều đĩa có thể truy xuất
để lấy hay lưu trữ tập tin đó nhanh hơn vì nó được lấy/lưu trữ đồng thời.
6. Nguyêntắ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, …
- Các trình duyệt web như IE, Firefox hay Google Chrome thì trong phần
khung mà để ta nhập địa chỉ web vào thì ta cũng có thể nhập các từ khóa
tìm kiếm vào đó để tìm kiếm thay vì truy cập các trang web tìm kiếm.
7. Nguyêntắc “chứa trong”:
Nội dung:
- Một đối tượng được đặt bên trong đối tượng khác và bản thân nó 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ụ:
- Kiến trúc bảy tầng OSI trong network.
- Cấu trúc dữ liệu như danh sách liên kết, cây. Các thuật toán đệ quy như:
sắp xếp nhanh, backtracking, …
8. Nguyêntắc phản trọng lượng:
Nội dung:
- Bù trừ trọng lượng của đối tượng bằng cách gắn nó với các đối tượng
khác có lực nâng.
9
- Bù trừ trọng lượng của đối tượng bằng tương tác với môi trường như sử
dụng các lực thủy động, khí động
Ví dụ:
- Để tăng hiệu xuất của các web server, ta có thể chia một trang thành
nhiều frame và lưu trữ các frame trong các ổ đĩa khác nhau hay trên các
server khác nhau. Người ta có thể phân bổ các ảnh lớn hay từng mảnh
dữ liệu qua các ổ đĩa khác nhau thay vì đặt chúng chung một đĩa. Hiệu
xuất sẽ tăng lên.
- 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.
9. Nguyêntắ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ụ:
- Giả sử rằng một người sử dụng phải chờ đợi trong một khoảng thời gian
cho một hành động thực thi nào đó (tìm kiếm, sao chép, cài đặt chương
trình, ). Nếu ta thông báo cho người sử dụng rằng sẽ mất khoảng 5
phút, nhưng nếu thời gian thực thi kéo dài hơn thì người sử dụng sẽ
không thích. Nếu ta thông báo mất 10 phút và thời gian thực thi ít hơn
thì người sử dụng sẽ vui hơn.
- Khi một ứngdụ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.
10. Nguyêntắc thực hiện sơ bộ:
Nội dung:
[...]... song 4 Lậptrình hàm AI (trí tuệ nhân tạo) bắt đầu được quan tâm vào giữa những năm 1950, một số là các nhà ngônngữ học, một số từ tâm lý họcvà một số từ toán họcNgônngữhọc thì quan tâm với việc xử lý ngônngữ tự nhiên Tâm lý học thì hứng thú với mô hình hóa việc lưu trữ và truy xuất thông tin con người, cũng như các quátrình xử lý cơ bản khác của bộ não Các nhà toán học thì quan tâm trong việc... số ngônngữ thì cho máy UNIVAC và một số thì cho máy IBM series 700, tất cả đều phụ thuộc vào máy và không có một ngônngữ nào phổ dụng để biểu diễn các thuật toán ALGOL là kết quả của quátrình nỗ lực để thiết kế một ngônngữ phổ dụng GAMM và ACM gặp nhau trong bốn ngày để thiết kế tại Zurich (ngày 27 tháng 5 đến ngày 1 tháng 6 năm 1958, với các mục tiêu sau cho ngônngữ mới: - Cú pháp của ngôn ngữ. .. một chương trình con gọi một chương trình khác và một chương trình con bị gọi là mối quan hệ “chủ-tớ” Còn mối quan hệ giữa coroutine gọi và coroutine được gọi thì ngang hàng hơn Coroutine là một thể loại đặc biệt của chương trình con Thông thường các conroutine được tạo ra trong một ứngdụng bởi một đơn vị chương trình gọi là đơn vị chủ (không phải là một coroutine) Khi được tạo ra, các coroutine thực... hai tuần để lậptrìnhtrong mã máy thì chỉ mất vài giờ khi sử dụng Speedcoding Ở đây ta có thể thấy nguyên lý sử dụng trung gian” là sử dụng mã giả để làm cho chương trình ngắn gọn, dễ hiểu hơn, giảm bớt công sức lậptrình 3 IBM và Fortran Trước năm 1954, phần cứng lúc ấy không hỗ trợ dấu chấm động Do đó tất cả các thao tác với dấu chấm động thì phải được mô phỏng trong phần mềm, một quátrình thông... cách đệ quy Nguyên lý kết hợp: mô-đun để nhóm các thủ tục và dữ liệu có liên quan với nhau để các chương trình khác có thể sử dụng dễ dàng Fortran 95 (INCITS/ISO/IEC, 1997) tiếp tục sự phát triển của ngôn ngữ, nhưng có một vài sự thay đổi như một vòng lặp mới Forall Fortran 2003 hỗ trợ lậptrình hướng đối tượng, các kiểu dẫn xuất được tham số hóa, con trỏ thủ tục, và tương tác với ngônngữlậptrình C... năng lậptrình nâng cao dành riêng cho các chuyên gia mà vẫn giữ được sự đơn giản cho người mới học - Có tương tác với người dùng - Các thông báo lỗi rõ ràng và thân thiện - Chạy nhanh với các chương trình nhỏ - Không cần phải hiểu biết về phần cứng máy tính - ứng giữa người sử dụngvà hệ điều hành Ngônngữ phân nhánh của nó được sử dụng phổ biến hiện nay là VISUAL BASIC Là ngônngữ đầu tiên được sử dụng. .. Có thể đặt các chương trình con như là các tham số vào các chương trình con khác Nguyên lý vượt nhanh: Trong trường hợp một chương trình muốn gọi nhiều các chương trình khác như là các tham số (đầu vào) thì phải gán các chương trình được gọi vào các biến rồi đặt các biến đó vào chương trình muốn gọi, thì ta có thể đặt thẳng các chương trình được gọi như là tham số vào chương trình muốn gọi Fortran... không được hiện thực trong cuộc đời của ông ta và những sự đóng góp ban đầu của ông ta đã bị cô lập từ những sự phát triển khác 2 Các ngônngữ mã giả: Từ mã giả ở đây có nghĩa khác với nghĩa hiện tại của nó bây giờ Ta gọi các ngônngữ này là các mã giả bởi vì chúng được đặt tên như thế vào thời điểm chúng được phát triển và sử dụng (cuối những năm 1 940 và đầu những năm 1950) Ngônngữ máy thì khó để mà... đổi và dài dòng Máy thì không hỗ trợ xử lý dấu chấm động vì vậy đã ra đời các ngônngữ mã giả 2.1 ShortCode Là ngônngữ mã giả đầu tiên, được phát triển bởi John Mauchly vào năm 1949 cho máy tính BINAC Các biểu thức toán học hay phương trình được mã hóa Các mã là các cặp giá trị byte, và nhiều phương trình được mã hóatrong một từ Short Code không được chuyển thành mã máy Nó được thực thi với một trình. .. hiện và ngăn chặn các virut hay sâu máy tính 40 Sử dụng các vật liệu hợp thành (composite): Nội dung: - Chuyển từ các vật liệu đồng nhất sang sử dụng những vật liệu hợp thành (composite) Hay nói chung sử dụng các vật liệu mới Ví dụ: - Microsoft CLR (Common Language Runtime) cho phép các chương trình từ nhiều ngônngữ khác nhau tương tác với nhau 22 II Lịch sử phát triển ngônngữlập trình: Bảng tiếnhóa . xem sự tiến hóa của chúng trong các
nguyên tắc sáng tạo như thế nào nhé.
5
I. 40 Nguyên tắc sáng tạo và ứng dụng trong tin học:
1. Nguyên tắc phân.
I. 40 Nguyên tắc sáng tạo và ứng dụng trong tin học: 5
1. Nguyên tắc phân nhỏ: 5
2. Nguyên tắc “tách khỏi”: 5
3. Nguyên tắc phẩm chất cục bộ: 6
4. Nguyên