UNIVERSITY OF NATIONAL AND WORLD ECONOMY

COURSE TITLE: Principles of Programming and Algorithms
SEMESTER: (WINTER or SUMMER)
TEACHER’S NAME: Prof. DSc. V.Kisimov
OFFICE:
E-MAIL:
1.  Annotation
The course has established on 2010 for specialities “Business informatics”, “Economics of Communications” and “Statistics”. It requires students to have general background of informatics. The discipline has a goal to present the general principles of creation of algorithms, as well as the of the programming, on the base of Java language. The presented information has to lead to creation of knowledge in formulating of algorithms for different real situations, and for development of program language expressions of those algorithms. The program language is object oriented. The program development will lead to resolving of real practical problems. The course has a strategy to create students’ skills for studying literature and researching of real problems via analyzing and development algorithms and their conversion to Java programs for testing and implementation. Knowledge of other programming languages would be a good basic start for comparison and analogies
2.  LANGUAGE OF TEACHING
ENGLISH
3.  COURSE CONTENT (TOPICS)
A. LECTURES:
1.Objectives of the discipline. Basics for creation of algorithms and their properties, notation, types. Concept of program languages. Types of program languages. Language constructs.
2.Algorithms – notations techniques and instrucments. Object oriented programming – main characteristics, elements, practical usage.
3.Fundamental programming components. Variables. Operators, Control constructions. Loops. Basic object oriented programs. Methods and activation.
4.Object-oriented programming. Top down programming. Class, object, polymorphism, inheritance, interface. Reusable code.
5.Java. Java Language basics JVM. Integrated development environment. Coding, testing. Names, variables definition. Numbers, Characters, Strings, Constants, Literals, Comments. Operator Assignment.
6.Program control flow Блокове. Оператори за цикли и вградени цикли – Do, For, While. Operators for branching – IF, Switch, Break, Continue, Return
7.Classes, objects, methods. Wrapped classes. Data visibility. Class declaration and utilization. Outer and inner classes. Overlapped methods – arguments and parameters. Constructiors.
8.Interfaces, Inheritance and Packets. Modificators. Interfaces – definition and utilization. Inheritance – definition and utilsation. Packets – role, creation, utilization.
9.Abstract data structures. Characters and strings treatement. Formatting. Data conversion. Arrays. 10.Aggregated data programming. Collectors. List. Graph. Stack. Queue. Tree. Methods. Utilisation. 11.Graphical Usеr Interface. Screen management. Components. Presenting styles.
12.Exception management. Essence of exeption. Types. Try, catch and finally. Generation and treatement. Methods. Creation of exceptions.
13.Input-Output operations. Essence. Usage of Console and disk. Byte and character streams. Files with direct access.
B.SEMINARS:
Self-study
1.Algorithms development
2.Main program concept
3.Object oriented programming.
4.Control program constructions
5.Class, object, methods
6.Programming with abstract data types
7.Programming with aggregated data types
8.Exception management
9.I/O operations
4.  METHODS OF TEACHING
• There are provided two hours lecture and two hours seminar per week. Preparation for each seminar session requires the release of a number of hours outside the academic commitment of students.
• For all lectures are prepared Power Point presentations, and for seminars - practical tasks. Necessary technical resources for training are: multimedia projector, PPP, video, computer class with Internet connection.
• The software used is NetBeans Integrated Development Environment.
5.  LEARNING OUTCOMES
Connection with practice is ensured by individual assignment, each student received. Assignments are defined at the seminars in accordance with individual preferences and abilities of students. The practical development assessed separately and has a certain influence in the final grade.scribe the skills and knowledge that students will acquire.
6.  ASSESTMENT METHODS
Individual assignment is presented to the course group.
Exam includes two estimates with equal weight - the exam, held in the form of test and practical development of a real problem.
The formula for the formation of the final grade is as follows:
FE = 0,5 * ET + 0,5 * IS,
FE = final exam
ET = assessment of the exam test
IS = assessment of the presentation of individual assignment
The final grade is made using “six-score” grading system. The minimum grade for successful completion of the course is "Average / 3 /." Reconciled with the European Credit Transfer System, it looks as follows:
Excellent /6/ Very Good /5/ Good /4/ Average /3/ Poor /2/
A B C D, E FX, F
7.  REFERENCES (MANDATORY AND RECOMMENDED)
A. MAIN LITERATURE
1.V.Kisimov, Basics of Algorithms and Programming
2.Java Tutorial, Sun Microsystems, http://java.sun.com/docs/books/tutorial/
3.S.Roberts, P.Heller, M.earnst, Complete Java 2 Certification, SYBEX, 2000.
4.M.Waite, R.Lafore, Data structures & Algorithms in Java, Waite group press, 2000.
B. ADDITIONAL LITERATURE
1. M.Jenkins, Abstract data types in Java, McGraw-Hill, 2005.
2. T.Cormen, C.Leiserson, R.Rivest, Introduction to Algorithms, Miller Freeman Ins, 1999.