Моля, колегите, които преподават Java на ученици да споделиме опита си - учебни сайтове, разработки, опит.
Мисля, че за начални стъпки могат да се използват книгите на Светлин Наков - свободно се разпространяват в електронен вариант. Всичко останало е на английски.
В момента преподавам Java в 9 и 10 клас. Наблюденията ми са, че учениците усвояват материала доста добре, интересно им е и бързо напредват. Според мен началното обучение по програмиране на такъв съвременен и популярен език стимулира учениците и ги прави активни в усвояването на учебния материал.Несъмнено е важно подрастващите да са запознати с най-новите възможности в програмирането, а смятам че програмния език Java осигурява точно това.
Мога да кажа, че в университета съм учил Java, но от тогава не съм се занимавал с този език по една или друга причина. Но тук ми прави впечетление нещата за които се пише. Например задачката за четното число, която просто илюстрира използване на рекурсия в езика, което от своя страна не е нищо особенно. Понятието рекурсия си е съвсем отделно от езика и то не би трябвало да се разглежда толкоз много. Както според мен не би трябвало да се разглеждат всякакви задачи за решаване на редици на фибоначи, квадратни уравнения и тем подобни. Ако тези неща са учени на 1 език, то абсолюто безсмислено е да се решават същите алгоритмични на друг език, ако няма някаква голяма усобенност, но тук циклите са си цилки, масивите-масиви, а рекурсията-рекурсия.
Като се заговори за обектно-ориентирано програмиране, освен да споменем, че Java e ИЗЦЯЛО обектно-ориентиран език и в него не може да се използва процедурен код, а винаги се пишат класове, то трябва да споменем и за основните принципи в ООП;
Когато се говори за ООП на всеки трябва да са му ясни понятия като:
- обект;
- свойства на обекта (те описват състоянието му);
- интерфейс (това са методите, които описват взаимоотношението му с другит обекти);
- капсулиране;
- наследяване;
- и др.
После е добре да се каже защо се използва Java, какво дава тя като език? Ако някой е научил какво е цикъл на С++, то мислите ли, че ако след това учи Java трябва да му се предава наново урок за цикли, както и за всички други познати нему оператори от С++?
Java e език вкаран в определени рамки и с голям набор от библиотеки към самия език, които може да се ползват за съответните задачи. Но за да се ползват, те трябва да се познават. Като се почне от библиотеките за колекции, писане и четене от буфери на паметта, серилизиране на обекти (и какво значи това понятие), работа с графични компоненти, работа с нишки, работа със сокети... а може и библиотеките за WEB.
Не е лесно да се направи един добър курс, но със сигурнос няма да е добре за учениците ако решават някаки задачи от сорта на редици на Фибоначи или други подобни. Разбира се това може би няма да е така, ако това е първият език който изучават учениците, то тогава ще се наложи да се запознаят и с основни алгоритми, или ако не е в часовете за въведение, Но в друг случай е напълно БЕЗМИСЛЕНО.
Ти ми хвърли истинска бомба. Пиши ми на d_ivanova9@abv.bg нещо повече за програмирането с робота. Използваш ли го и как?
Ето и един пример за ДИРЕКТНО
въвеждане на цели числа в Java.
// Fig. 2.7: Addition.java// Addition program that displays the sum of two numbers.import java.util.Scanner; // program uses class Scannerpublic class Addition { // main method begins execution of Java application public static void main( String[] args ) { // create a Scanner to obtain input from the command window Scanner input = new Scanner( System.in ); int number1; // first number to add int number2; // second number to add int sum; // sum of number1 and number2 System.out.print( "Enter first integer: " ); // prompt number1 = input.nextInt(); // read first number from user System.out.print( "Enter second integer: " ); // prompt number2 = input.nextInt(); // read second number from user sum = number1 + number2; // add numbers, then store total in sum System.out.printf( "Sum is %d\n", sum ); // display sum } // end method main} // end class Addition/************************************************************************** * (C) Copyright 1992-2010 by Deitel & Associates, Inc. and * * Pearson Education, Inc. All Rights Reserved. * * * * DISCLAIMER: The authors and publisher of this book have used their * * best efforts in preparing the book. These efforts include the * * development, research, and testing of the theories and programs * * to determine their effectiveness. The authors and publisher make * * no warranty of any kind, expressed or implied, with regard to these * * programs or to the documentation contained in these books. The authors * * and publisher shall not be liable in any event for incidental or * * consequential damages in connection with, or arising out of, the * * furnishing, performance, or use of these programs. * *************************************************************************/
http://robowiki.net/wiki/Robocode/Getting_Started
http://robocode.sourceforge.net/
Да, игрите са подходящ начин за преподаване на
абстрактни понятия. Горните два линка са си
практическо обучение по обектно-ориентирано програмиране.
Играта се печели от по-добре запрограмирания танк.
Това определено мотивира учениците.
Мерси, учениците очакват едва ли не че ще правят игри за Java, а няма много програми, намерила съм само най-прости, и не са интересни. Все пак това е съвсем нова технология на езика. Няма курс, който да ни обучават за тази технология.
Следващата учебна година ще се учат 12 и 13 клас слети в професионалните гимназии. Ще трябва да се учат и Мидлети за Java. Някой може ли да ми помогне с материали, курс или други идеи за Мидлетите.
Не съм преподавал такъв материал. Според мен, трябва да се определи средата, която ще се използва за създаването им. Може да се ползва Java Platform Micro Edition Software Development Kit 3.0 (JME). Може да се свали от http://java.sun.com/javame/. Файлът е sun_java_me_sdk_3_0-win.exe. След като се инсталира има много примери, а през help-а се достига online до документацият, която най - вероятно може да се ползва
В X и XI калс има теми свързани с Компютърна графика. За онези колеги, които се занимават с програмиране на Java, предлагам 4 начални занимания, които могат да се проведат в часове за профилирана подготовка или извънкласни занимания. На тях предлагам да се запознаят с моя статия, която могат да намерят на адрес http://www.teacher.bg/cs/blogs/hristov_b/pages/21509.aspx. В нея не е засегната работата с Image обектите,понеже не зная дали представлява интерес. Ако се интересувате въобще от компютърна графика може да посетите и http://www.teacher.bg/cs/blogs/hristov_b/default.aspx
Желая ви успех в областта на програмирането !
Богдан Христов, Кюстендил