Tiểu luận môn phương pháp nghiên cứu khoa học Nghiên cứu 40 nguyên tắc sáng tạo ứng dụng trong tin học và phân tích quá trình phát triển ngôn ngữ lập trình

42 625 0
Tiểu luận môn phương pháp nghiên cứu khoa học Nghiên cứu 40 nguyên tắc sáng tạo ứng dụng trong tin học và phân tích quá trình phát triển ngôn ngữ lập trình

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TIỂU LUẬN MÔN HỌC PHƯƠNG PHÁP LUẬN SÁNG TẠO TRONG KHOA HỌC ĐỀ TÀI: Nghiên cứu 40 nguyên tắc sáng tạo ứng dụng trong tin học và phân tích quá trình phát triển ngôn ngữ lập trình 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 Tấn Thành Mã số học viên: CH1301055 Lớp: Cao học khóa 8 TP. HỒ CHÍ MINH, THÁNG 05/2014 3 Lời mở đầu 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áng tạ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 như chúng ta thì sao, làm thế nào để có thể có những phát minh, sáng kiến cải tiến đóng góp cho xã hội? Genrikh Saulovich 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 40 nguyên tắc sáng tạ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ến trong cuộc sống con người trong thời gian qua. Công nghệ thông tin là một trong những lĩnh vực điển hình áp dụng các nguyên tắc sáng tạo trên. Bài tiểu luận này sẽ trình bày 40 nguyên tắc sáng tạo và những ví dụ minh họa trong công nghệ thông tin đã ứng dụng các nguyên tắc đó. Đồng thời phân tích những nguyên lý sáng tạo được vận dụng trong quá trình phát triển của các ngôn ngữ lập trình. Em chân thành tri ơn thầy – GS.TSKH. Hoàng Văn Kiếm, người đã tận tình truyền đạt cho chúng em những kiến thức bổ ích về môn “Phương pháp luận sáng tạo trong khoa học”. Từ đó giúp em tiếp cận phương pháp tư duy sáng tạo trong công việc và trong lĩnh vực nghiên cứu khoa học của mình. Xin gửi lời cảm ơn đến các bạn trong lớp đã nhiệt tình chia sẽ tài liệu, những thông tin cần thiết trong quá trình học. 4 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 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ụ: - Để giải quyết bài toán phức tạp trên máy tính, ta thường chọn phương pháp tiếp cận top-down trong thiết kế chương trình, chia hệ thống thành nhiều phần nhỏ hơn. Bằng cách đó, phân rã 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. - Chương trình con trong ngôn ngữ lập trình hướng thủ tục, hàm. 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. Ví dụ: - Trong kỹ thuật nén ảnh như JPEG, ta tách 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. Tương tự trong cơ chế nén âm thanh MP3 ta tách 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. - Kiến trúc mô hình 3 lớp (Presentation Layer, Business Layer, Data Access Layer ) trong thiết kế ứng dụng phần mềm. 5 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ụ: - 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ể, 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ên tắ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ụ: 6 - 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ên tắ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ụ: - Nhiều công cụ lập trình đã tích hợp trình biên dịch, Web server, database, thiết bị giả lập… để hổ trợ công việc cho lập trình viên. - 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. 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, … - 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 7. Nguyên tắ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ên tắ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. - 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ê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). 8 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 ứ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. 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ụ: - Đọc cache ổ đĩa trước chuẩn bị cho việc đọc đĩa thực sự. - 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ọ 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. - Thiết lập thời gian timeout cho các thao tác như truy vấn cơ sở dữ liệu, kết nối tới một dịch vụ mạng, … 9 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. Ví dụ: - Giữ các kết quả trung gian mà phải mất khá nhiều thời gian để tính toán. - 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. 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ụ: - Vài phép tính toán có thể gây ra tràn bộ nhớ. Bằng cách thay đổi thứ tự tính toán có thể ngăn chặn việc này. Công thức p = x * y / z; có thể được viết bằng p = (x / z) * y hay p = y / z * x; Ta có thể chọn một trong các công thức phụ thuộc vào mối quan hệ giá trị giữa x, y, z. - Kỷ thuật ảo hóa trong điện toán đám mây. 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 động quay, sử dung lực ly tâm. 10 [...]... phí rẻ hơn và linh hoạt hơn 21 II Lịch sử phát triển ngôn ngữ lập trình Với sự phát triển vượt bậc của công nghệ phần cứng máy tính, ngôn ngữ lập trình đã tiến hóa không ngừng để đáp ứng nhu cầu phát triển các ứng dụng Trong phần này, chúng ta sẽ đi sâu vào tìm hiểu về lịch sử, đồng thời phân tích các nguyên lý sáng tạo được vận dụng suốt quá trình phát triển của các ngôn ngữ lập trình trong những... song 4 Lập trì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ôn ngữ học, một số từ tâm lý học và một số từ toán học Ngôn ngữ học thì quan tâm với việc xử lý ngôn ngữ 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... nhóm phát triển Fortran trong quá trình thiết kế ngôn ngữ là mã máy được sinh bởi trình biên dịch sẽ có hiệu suất khoảng một nửa khi viết mã máy bằng tay Điều này đã làm cho nó trở nên hấp dẫn trước khi nó được phát hành, do đó nó nhanh chóng được sử dụng rộng rãi Fortran II được phân phối vào mùa xuân 1958 Nó vá nhiều lỗi trong hệ thống biên dịch của Fortran I và thêm vào vài chức năng cho ngôn ngữ, ... 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ôn ngữ 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ôn ngữ 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ôn ngữ máy thì khó để mà... tâm trong việc tự động hóa các phương pháp thông minh nào đó, chẳng hạn như chứng minh định lý Tất cả các việc nghiên cứu này dẫn tới cùng một kết luận: vài phương pháp phải được phát triển để cho phép các máy tính xử lý dữ liệu ký hiệu trong danh sách liên kết Tại lúc này, hầu hết các tính toán thì trên dữ liệu số trong các mảng LISP Đi tiên phong trong ngôn ngữ lập trình hàm, được thiết kế bởi McCarthy... 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 ứng dụ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... Vào những năm 1950, các ngôn ngữ lúc bấy giờ được phát triển quanh một kiến trúc duy nhất, một số ngôn ngữ 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ôn ngữ 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ôn ngữ 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... đổ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ôn ngữ mã giả 2.1 ShortCode Là ngôn ngữ 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óa trong 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. .. 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ập trì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ôn ngữ lập trình C... hai tuần để lập trình trong 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ập trì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 . ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TIỂU LUẬN MÔN HỌC PHƯƠNG PHÁP LUẬN SÁNG TẠO TRONG KHOA HỌC ĐỀ TÀI: Nghiên cứu 40 nguyên tắc sáng tạo ứng dụng trong tin. sáng tạo và những ví dụ minh họa trong công nghệ thông tin đã ứng dụng các nguyên tắc đó. Đồng thời phân tích những nguyên lý sáng tạo được vận dụng trong quá trình phát triển của các ngôn ngữ. những thông tin cần thiết trong quá trình học. 4 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 nhỏ: Nội dung: - Chia đối tượng thành các phần độc lập. - Làm đối tượng trở

Ngày đăng: 21/05/2015, 22:40

Từ khóa liên quan

Mục lục

  • Lời mở đầu

  • 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 nhỏ:

    • 2. Nguyên tắc “tách khỏi”:

    • 3. Nguyên tắc phẩm chất cục bộ:

    • 4. Nguyên tắc phản đối xứng:

    • 5. Nguyên tắc kết hợp:

    • 6. Nguyên tắc vạn năng:

    • 7. Nguyên tắc “chứa trong”:

    • 8. Nguyên tắc phản trọng lượng:

    • 9. Nguyên tắc gây ứng suất sơ bộ:

    • 10. Nguyên tắc thực hiện sơ bộ:

    • 11. Nguyên tắc dự phòng:

    • 12. Nguyên tắc đẳng thế:

    • 13. Nguyên tắc đảo ngược:

    • 14. Nguyên tắc cầu (tròn) hoá:

    • 15. Nguyên tắc linh động:

    • 16. Nguyên tắc giải “thiếu” hoặc “thừa”:

    • 17. Nguyên tắc chuyển sang chiều khác:

    • 18. Nguyên tắc sử dụng các dao động cơ học:

    • 19. Nguyên tắc tác động theo chu kỳ:

Tài liệu cùng người dùng

Tài liệu liên quan