Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Universitatea Babeş-Bolyai Cluj-Napoca Facultatea de Matematică şi Informatică Ciclul de studii: Licenţă Domeniul: Informatică Programul de studii: Informatică - în limba engleză Limba de predare: Engleză SYLLABUS I. General data Code Subject MID0004 Advanced Programming Methods Semester 3 Name and surname LAZAR Ioan Name and surname Hours: C+S+L 2+1+2 Category speciality Status compulsory II. Full status faculty members Scientific Didactic Chair title title Ph.D. Lect. Programming Languages and Methods Associated faculty members Scientific Institution title Type of position Type of activity C * S L Type of activity C S L III. Course objectives - Learn Java language - Gain significant additional practice in applications’ analysis and design. - Learn and apply the object-oriented (OO) approach in designing and implementing software systems - Learn some basic design patterns - Learn additional knowledge about UML - Learn basic knowledge about GUI - Learn to apply GRASP patterns. IV. Course contents Java Language Fundamentals of the Java programming language Class libraries: Java classes, interfaces and packages Design by contract and exceptions handling Unified Modelling Language (UML) Designing a Framework for Applications with Graphical User Interfaces Windows and graphical components Containers and elements: window, menu, label, text box, and button Composite design pattern Drawing: adaptor and decorater patterns Abstract commands Callback and command patterns Menus implementations Event Handling Observer pattern Decouplig the sender and the receiver of an event Model-View-Controller pattern Java Foundation Classes (JFC/Swing) Windows and menus Graphical components: labels, text boxes, and buttons Lists General Responsibility Assignment Software Patterns (GRASP) Expert and creator design patterns Low coupling and high cohesion Controller Business Logic Layer Class Libraries for Data Structures Abstract factory, template method, and iterator design patterns java.util package Input/output class libraries java.io package Serializable objects Building a persistent frameworks Brokers for persistent objects Virtual proxy pattern Complex object instantiation Decoupling presentation and logic layers Model-View-Controller pattern V. Bibliography 1. Eckel, B., Thinking in Java (3rd ed.), New York: Prentice Hall, 2002. 2. Eckel, B., Thinking in Patterns with Java, MindView Inc, 2004. 3. Gamma, E., Helm, R., Johnson, R., Vlissides, J., Design Patterns - Elements of Reusable Object-Oriented Software, Massachusets, Addison-Wesley, 1994. 4. Larman, C.: Applying UML and Design Patterns: An Introduction to OO Analysis and Design, Berlin: Prentice Hall, 2000. 5. Fowler, M., Patterns of Enterprise Application Architecture, Addison-Wesley, 2002. 6. ***, The Java Tutorial, SUN Microsystems, Inc, 2004. http://java.sun.com/docs/books/tutorial/index.html VI. Thematic of didactic activities per weeks 1. Java Language and Platform (C1) - general features of Java language - Java Virtual Machine - Differences between C++ and Java 2 Fundamentals of the Java programming language and UML basic review (C2+C3) - UML notations for classes, associations, dependencies, generalization Java Primitive types, Reference types, Arrays Statements Classes and Objects Subclasses and Inheritance Packages Garbage Collector 3. Interfaces and Exceptions Handling (C4) – Abstract Classes – Interfaces – Template Method Design Pattern – Exceptions handling in Java 4. The Java I/O System (C5) – Input/ Output Streams – Decorator Design Pattern – Serialization/ Persistent Objects 5. GUI (C6+C7) - Swing Library/ Java Foundation Classes - Windows and graphical components - Containers and elements: window, menu, label, text box, and button - Lists and Menus - Event Handling - Decouplig the sender and the receiver of an event 6. Model-View-Controller Pattern (C8) – Observer Design Pattern – Strategy Design Pattern 7. Stages in the programs construction (C9+C10) - Plan and elaborate phase –requirements, Use cases - Analyze phase - Design phase 8. GRASP (General Responsibility Assignment Software Patterns (C11) - Expert and creator design patterns - Low coupling and high cohesion - Controller 9. Construct (implementation) phase (C12) Packages 10. Presentation , Application Logic, Storage Layers(C12) Decoupling presentation and logic layers Command Design Pattern 11. Persistency (C13-C14) Building a persistent frameworks Broker and Bridge Virtual Proxy Design Pattern XML DOM Processing XML documents using DOM VII. Didactic methods used Lectures, practical works, projects, exercises and individual study. VIII. Assessment The final assessment method is an exam. There will be two parts: a written part (consisting of a minicase study), and a practical part (consisting in a partial implementation of the minicase model). The final mark (on a ten points scale, one point by default) will be obtained as: A. Lab activity: 4p B. Written exam (on paper): 3p C. Practical exam (at computer): 3p IX. Additional references Dean, Chair head, Date, 24.09.2009 Course responsible, Lect. Dr. LAZAR Ioan