This course is archived

Go here to see the updated course for the current academic year

ADVANCED PROGRAMMING TECHNIQUES

Course Code: CSE213 • Study year: II • Academic Year: 2022-2023
Domain: Computer Science • Field of study: Computer Science (in English)
Type of course: Compulsory
Language of instruction: English
Erasmus Language of instruction: English
Name of lecturer: Manuella Kadar
Seminar tutor: Ovidiu Domsa
Form of education Full-time
Form of instruction: Class
Number of teaching hours per semester: 56
Number of teaching hours per week: 4
Semester: Autumn
Form of receiving a credit for a course: Grade
Number of ECTS credits allocated 5

Course aims:

General objectives of the course:Advanced programming in Java covers programming for both single system software distribution and across networks/devices. The course provides in depth coverage of object serialization, Java Beans, Servlets, Java Server pages JSP, Java Server Faces JSF, networking.
The course provides in depth coverage of object serialization, Java Beans, Servlets, Java Server pages JSP, Java Server Faces JSF, networking, remote objects (RMI), and distributed computing through Jini. The course offers many examples and applications that will be implemented within labs.
Specific objectives of the course:Students will understand the advanced topics in Java programming, they will be in a position to do commercial Java development both for single services and for distributed processes across multiple devices.
Students will understand the advanced topics in Java programming, they will be in a position to do commercial Java development both for single services and for distributed processes across multiple devices.
The development of correct source codes and the testing of various components in a known programming language, given a set of design specifications.

Course Entry Requirements:

Object Oriented Programming (FI207) Algorithms and data structures (FI104) Basic algorithms (FI203)

Course contents:

Course (learning units) 1. Introduction to advanced programming techniques. Divide et Impera programming technique. Dynamic programming technique. Branch and Bound technique. Greedy technique. Backtracking technique. 2. Advanced programming techniques. Sorting algorithms. Multiple execution threads. Input-output streams. Serializing data. 3. Introduction to Java programming language. History and characteristics of Java programming language. Portability and security of Java programmes execution. Java data types. 4. Java versus C++. Java versus .Net. Object-oriented programming. Classes and objects; namespaces and packages. Creating and destroying objects. 5.Inheritance and class hierarchy. Abstract classes and interfaces. Exception handling 6. Java graphical interface (AWT and Swing). Graphical components: containers and controls. Managing the position of a graphical component 7. Java Graphical User Interface (AWT and Swing). Listening and handling events generated by graphical components. Graphical contexts and drawing area (canvas). 8.Java Graphical User Interface (AWT and Swing). Dialogs and menus. 9.Java and Internet services. WEB programming. 10.Web clients: applets. Applet Methods. 11.Applet Class Loaders. Applets security issues. Web Server: servlets and JSP pages. 12.JavaBeans. Using JavaBeans components in JSP pages. 13.Java database connectivity. Database access using JDBC. 14. Java database connectivity. Execution of an SQL statement. Result processing. Closing database connections in Java.

Teaching methods:

The course is given as a combination of lectures and laboratories. There is a 100% attendance requirement for laboratories. Work in small groups. Compulsory assignments. Instruction is a combination of lectures, laboratories, group work.

Learning outcomes:

Professional competences C1. Programming in high-level languages C1.1 The appropriate description of programming paradigms and of specific language mechanisms, as well as the identification of differences between semantic and syntactic aspects. C1.2 The explaining of existing software applications using different abstraction layers (architecture, packages, classes, methods), correctly using base knowledge. C1.3 The development of correct source codes and the testing of various components in a known programming language, given a set of design specifications.

Learning outcomes verification and assessment criteria:

A two-hour written examination (60% of the final grade)Laboratory activities portfolio (40% of the final grade)

Recommended reading:

ECKEL, Bruce,, Thinking in Java, 4th ed., Upper Saddle River, New JerseyUpper Saddle River, New Jersey : Prentice Hall : Pearson Education, 2006, ISBN 0-13-187248-6, 978-0-187248-6., Prentice Hall, New Jersey, 2006, 620.
Bruce Eckel, Thinking in Java, (3rd edition), http://www.bruceeckel.com., Prentice Hall, New Jersey, 2006, 650.
Marty Hall, Core Servlets and JavaServer Pages, http://coreservlets.com, Internet, Internet, 2010, 450.
Marty Hall, http://www.developer.com/java/data/article.php/3417381, Internet, Internet, 2017, 250.
BELL, Douglas, PARR, Mike, Java for students, Prentice Hall, Harlow, England, 2010, 520.