СОФИЙСКИ УНИВЕРСИТЕТ

ФИЗИЧЕСКИ ФАКУЛТЕТ

БЪЛГАРИЯ, СОФИЯ 1164

БУЛ. "ДЖЕЙМЗ  БАУЧЪР" 5

ТЕЛ.: +359 2 622 446

ФАКС: + 359 2 962 5276, ТЕЛЕКС: 23296 SUKO BG

 

SOFIA UNIVERSITY

FACULTY OF PHYSICS

1164  SOFIA, BULGARIA

5  JAMES  BOURCHIER  ВLVD.

ТEL.: +359 2 622 446

FAX: +359 2 962 5276, TELEX: 23 296 SUKO BG

 

 

Утвърдена с Протокол на ФС  N: …../ ……..

                                    Декан:

                                    /доц. д-р Д. Мърваков/

                                   

УЧЕБНА ПРОГРАМА

ПО ДИСЦИПЛИНАТА: ПРОГРАМИРАНЕ С JAVA

ВКЛЮЧЕНА В УЧЕБНИЯ ПЛАН НА СПЕЦИАЛНОСТ:Физика, Инжeнерна физика

СТЕПЕН НА ОБУЧЕНИЕ:Бакалавър

КРЕДИТИ (ECTS):5

КАТЕДРА:Физика на твърдото тяло и микроелектроника

ИЗВАДКИ ОТ УЧЕБНИЯ ПЛАН

Вид на занятията:

Семестър:

Хорариум-часа/
седмично:

Хорариум-часа
Общо:

Лекции

7

2

30

Семинарни упражнения



 

 

 

Практически упражнения

7

2

30

Общо часа:

 

4

60

Форма на контрол:

Текуща оценка

 

 

 

 

 

 

А. АНОТАЦИЯ

Целта на курса е студентите да се запознаят с възможностите на езика JAVA и да придобият практически умения за програмиране с него. Демонстрирани са както възможностите за работа в мрежа така и мощта, елегантноста и универсалноста на езика за решаване на числови задачи. Студентите ще се научат от една страна да създават различни приложения за интърнет, наречени аплети, което е възможно поради използването на байт-код и е уникално за JAVA. От друга страна ще се научат да решават числово различни физически задачи, което е възможно да се реализира и с други програмни езици, но при JAVA  това се постига елегантно и лесно благодарение на вградените в езика и упростени за ползване обектно ориентирани елементи – автоматично динамично почистване на паметта, упростена работа с изключения, вградено в езика многонишково програмиране, лесно използване на мрежови библиотеки и др.

           Практическите упражнения и примерите са избрани от областа на физиката, като се демонстрират и някои числови методи за решаване на физически проблеми. Упражненията предвиждат запознаване на студентите с примерни програми след всяка лекция и писане на собствени прости програми за затвърдяване на новите знания и за добиване на съответните практични навици. В края на курса се изготвя самостоятелен проект.

 

 

Б. СЪДЪРЖАНИЕ НА УЧЕБНАТА ПРОГРАМА:

Лекции ( или упражнения)

Тема,  вид  на занятието:

Брой часове

1.

Характерни особености на езика JAVA в сравнение с други езици за програмиране.

2

2.

Типове данни, ограничения, методи. Превръщане на типове.

2

3.

Математически модели, претоварване на методи (overloading)

2

4.

Визуализация в JAVA. Класове и пакети. Графичен пакет PtPlot

2

5.

5.

Контрол на потока с логически изрази.

2

6.

Входни и изходни потоци. Четене и писане от и във файлове.

2

7.

Числово интегриране. Разклонени итерационни цикли.

2

8.

Обикновени диференциални уравнения. Алгоритъм на Ойлер и на Верле.

2

9.

Абстрактни данни. Обекти. Статични и динамични методи.

2

10.

Едномерни и многомерни масиви: вектори и матрици. Пакетът JAMA.

2

11.

Основни концепции на ООП: капсулирране, абстракция, наследяване, полиморфизъм.

2

12.

Компютърни изчисления в мрежата. Запознаване с аплети.

2

13.

Организация и основни елементи на аплета. Основни методи.

2

14.

Класът  Applet. Обработка на събития.

2

15.

Awt и JFC класове. Плъзгачи, бутони, текстови полета и графики в аплета.

2

Упражнения

Тема,  вид  на занятието:

Брой часове

1.

Първоначално запознаване с езика JAVA. Първи програми. Изчисляване на повърхност и обем на прости геометрични  фигури.

1

2.

Определяне грешката на компютъра. Определяне на най-малкото и най-голямото число  при единична и двойна точност.

1

3.

Проста програма за двумерна графика на функция. Наслагване на две или повече графики.

1

4.

Траектория на тяло хвърлено под ъгъл към хоризонта..

1

5.

Програма за четене на данни от файл и записване на резултатите от изчислението в друг файл..

2

6.

Числово интегриране с метод на трапеца и с метод на Симпсон. Сравняване на двата метода.

2

7.

Траектория на тяло хвърлено под ъгъл с отчитане на триенето. Траектория на планета в гравитационното поле на слънцето.

2

8.

Реализиране на клас за работа с комплексни числа. Моделиране на електрически вериги.

2

9.

Траектория на спътник на Земята спрямо слънцето. Суперпозиция на две вълни. Биене.

2

10.

Намиране на собствени стойности и собствени вектори на матрица. Квадратична регресия.

2

11.

Движение на тяло съставено от две сфери свързани с твърда пръчка.

2

12.

Решаване уравнението на Лаплас за плосък кондензатор.

2

13.

Създаване на аплет с графика на функция.

2

14.

Курсов проект по изборна тема.

10

 

Курсов проект по избор:

1. Създаване на аплет за статистически анализ и графична визуализация.

2.Създаване на мини уеб-браузър.

3. Създаване на програма за търсене в мрежата.

4. Реализиране на интерпретатор на JAVA.

5. Създаване на синтаксичен анализатор на изрази.

6. Създаване на аплет на калкулатор.

В. Формата на контрол е: текуща оценка

Оценката се определя приблизително от следните компоненти: 30% от теоретични знания, 40% от решаването на задача, близка до задачите разгледани в упражненията и 30% от работа в практическите занимания.

Г. Основна литература:

1. R. Landau A First Course in Scientific Computing: Symbolic, Graphic and Numeric Modeling using Java” (Princeton University Press, 2006).                                                                                                                                    2. Г. Шилдт, Д. ХолмсИскусство програмирования на JAVA ”, (Вильямс, 2005).

3. Х. Шилдт “JAVA 2, Ръководство на програмиста”, (Софтпрес, София, 2008)

Д. Допълнителна литература:                

 

Съставил програмата: доц. д-р Н. Танковски

Дата: 02.09.2008                                                              /                                /