201208290414


Для того, чтобы захотелось изучить что-то новое, необходимо четко представлять себе:

  - зачем мне это нужно ?
  
Изучив объектное программирование на примере языка Python по предлагаемой мной методике вы сможете:

  - если вы умеете или собираетесь научиться  программировать, то сможете автоматизировать (доверить вашему личному роботу) многие рутинные операции, которые иначе вам придется делать самому (если, конечно, у вас нет раба, который сам заботится о своем жилье и пропитании - как конь в хорошую погоду на летнем пастбище). Если за рутину вам предложат оплату, но делать ее вы не очень хотите, то как вы поступите ?
    
 -  лучше представлять себе работу программиста на Python и C
 
Кроме того есть так называемый побочный эффект - лучшее знание эстонского и С. Все что я здесь предлагаю, это:

  - перевести текст предлагаемой книги с эстонского на русский (или английский), а примеры c Python на С (или, тот язык, который вы уже знаете)
    
  - построить в симуляторе VirtualBox виртуальную машину, к которой предъявляются следующие требования
    
    а. Легальное программное обеспечение (кряки, левые серийники и другие виды "лекарства" не принимаются.
       
    б. Установлена среда выполнения (runtime environment) для C, Java, Python.
       
    в. Установлена среда разработки для C, Python.
    
    г. поддержка кодировки UTF-8.
    
    д. Запускаются программы Logisim:
    
         http://ozark.hendrix.edu/~burch/logisim/download.html
    
       и Circuitmaker Student 6.
    
         http://my.ece.ucsb.edu/bobsclass/2C/Simulation/circuit_maker.htm
 
     е. Наличие русской клавиатуры (или хорошее знание английского).
        
     ж. Нормально (символы, моноширинный (singlespaced) фонт, режим wordwrap) читается данный текст.
        
     з. чем меньше размер файла архива с ВМ и учебными курсами ООП и дигитальной техники, тем лучше результат.
        
     и. (Установлена среда разработки, для языка на который вы перевели примеры из книги).
        
  - Теперь, наконец, мы можем начать изучение объектно-ориентированного программирования (ООП).


Программа предмета. 
        
Учебные материалы: 
На эстонском:
            
  1.  http://kuutorvaja.eenet.ee/wiki/Python#Pythoni_skript
  
    в папке:

  2.  http://www.cs.tlu.ee/~inga/progbaas/Materjalid/
  
    файлы: Python_sissejuhatus_2011.pdf, 
           Python_sisend_valjund_2009.pdf
           Python_avaldised_2009.pdf
           Python_muutujad_2009.pdf
           Python_valikud_2009.pdf
           Python_vead_2009.pdf
           Python_tsyklid_2009.pdf
           Python_jadad_2009.pdf
           Python_funktsioon_2009.pdf
           Python_failid_2009.pdf
           Python_s2nastik.pdf
         
На других языках

  3. Mark Lutz. Learning Python, 4rd editon (v. 2.6 ja 3.0)
     Существует русский перевод.
     
  4. Miro Samek. Portable Inheritance and Polymorphism in C. 1997

       http://www.state-machine.com/resources/samek97.pdf 

  5. Объектно-ориентированное программирование на Python

       http://ru.wikipedia.org/wiki
            /Объектно-ориентированное_программирование_на_Python

  5. Лёгкий мануал по Python на русском.

       http://wiki.wayround.org/easy_python_manual/ru

  6. Исчерпывающая документация по языку Python
                   
       http://docs.python.org/
            
Сроки и содержание обучения (содержание учебной работы по неделям: тема(ы), форма обучения (лекция, семинар, групповая работа, дискуссия, практическая работа), рассматриваемые понятия, теории, подходы и т.д.), самостоятельная работа по освоению предмета.

  +------+-----+----------------------------------+---------------+
  |Неделя|Часов|Описание темы                     |Самостоятельная|
  |No    |(ч)  |                                  |домашняя работа|
  +------+-----+----------------------------------+---------------+
  |      |     |Введение. Императивные (Примеры C,|               |
  |      |     |Python), функциональные (Примеры  |               |
  | 1    |  2  |F#,Lisp) и декларативные (Примеры |               |
  |      |     |RegExp, HTML, XML, SQL) языки     |               |
  |      |     |программирования. Для чего годится|               |
  |      |     |объектный подход.                 |               |
  +------+-----+----------------------------------+---------------+       
  |      |     |Классы средствами языка и с       |               |
  |      |     |помощью соглашений (правил,       |               |
  | 2    |  2  |внешних по отношению к языку).    |               |
  |      |     |Отличие модуля и класса. Видимость|               |
  |      |     |(Visibility)                      |               |
  +------+-----+----------------------------------+---------------+
  |      |     |Структурное программирование.     |               |
  | 3    |  2  |Упражнения. IDLE - Python         |               |
  +------+-----+----------------------------------+---------------+
        |     |Инкапсуляция.                                      
  | 4    |  2  |Упражнения. IDLE - Python         |               |
  +------+-----+----------------------------------+---------------+
  |      |     |Наследование.                     |               |
  | 5    |  2  |Упражнения. IDLE - Python         |               |
  +------+-----+----------------------------------+---------------+
  |      |     |Полиморфизм.                      |               |
  | 6    |  2  |Упражнения. IDLE - Python         |               |
  +------+-----+----------------------------------+---------------+
  | 7    |  2  |Интерфейсы и протоколы.           |               |
  +------+-----+----------------------------------+---------------+
  | 8    |  2  |Аспекты.                          |               |
  +------+-----+----------------------------------+---------------+
  | 9    |  2  |Исключения. try-except-else       |               |
  +------+-----+----------------------------------+---------------+
  |      |     |Классификация видимости           |               |
  |      |     |(в смысле visibility): публичная, |               |
  |      |     |личная, защищенная, только для    |               |
  |10    |  2  |чтения, записи, чтения и записи,  |               |
  |      |     |вход, выход, область имен, модуль,|               |
  |      |     |класс, экземпляр, блок.           |               |
  +------+-----+----------------------------------+---------------+
  |      |     |Рефакторинг. Обфускация.          |               |
  |11    |  2  |Подцвечивание синтаксиса.         |               |
  |      |     |Документирование средствами языка.|               |
  +------+-----+----------------------------------+---------------+
  |      |     |Библиотеки классов. Среда         |               |
  |12    |  2  |выполнения. Сборка мусора.        |               |
  +------+-----+----------------------------------+---------------+
  |      |     |Схема MVC (model-view-controller).|               |
  |13    |  2  |Разбиение задач между клиентом и  |               |
  |      |     |сервером. Облака.                 |               |
  +------+-----+----------------------------------+---------------+
  |14    |  2  |Итоги                             |               |
  +------+-----+----------------------------------+---------------+
  |15    |  2  |Зачет                             |               |
  +------+-----+----------------------------------+---------------+
