Course Structure – Java Junior
Course length
280 classes, each lasting 45 minutes of active teaching time.
Conditions of enrollment
Proficiency in English necessary for independent work, referring to documentation, as well as research online to locate necessary tools for development.
Course goals
Enable students to independently develop applications of low and medium complexity using the Java and JavaScript programming languages. Give students a solid knowledge base which will allow them to continue their education on their own, increasing their proficiency and mastery of programming techniques and environments.
Course structure
The course is divided into two parts: (i) The fundamentals of programming and (ii) Advanced programming techniques. As a part of the course special attention is to be paid to the Java programing language and its particularities. Each of the course parts is divided into three segments. A detailed description of the course segments is presented below:
⎯ Fundamentals of Programming (112 classes)
- Fundamentals of Procedural Programming using Java. Basic concepts and techniques in computer programming. Introduction to fundamental algorithms and data structures.
- Fundamentals of Object-oriented Programming using Java. Basic concepts in the object-oriented programming paradigm: class, object, inheritance, polymorphism. Implementation of object-oriented programming concepts using Java.
- Fundamentals of Databases. Introduction to methods of data storage, relational data model and the SQL programming language.
⎯ Advanced Programming (168 classes)
- Principles of Software Engineering and Development of Web Application Backends (“Backend”). Development of “backend” Web application components using the selected framework. Development of Web services and introduction to basic software patterns in Web systems. Introduction to version control systems (source code management). Agile software development methodology. Software patterns and components. Independent project work.
- Development of Graphical User Interfaces of Web Applications (“Frontend”). Development of “frontend” Web application components using the selected framework. Construction of a static and a dynamic Web page. Introduction to HTML, CSS, and JavaScript. Independent project work.
- Courses overview
⎯ FUNDAMENTALS OF PROCEDURAL PROGRAMMING USING JAVA (40 classes)
Topics:
The course covers ten topics.
Topic 1 (4 class hours).
- Algorithmic way of solving problems and basic steps in program development.
Topic 2 (2 class hours).
- Software development environment.
Topic 3 (6 class hours).
- Variables and testing and debugging of simple programs.
Topic 4 (4 class hours).
- Expressions and Built-in Java objects, subroutines, and functions – String and Enum.
Topic 5 (2 class hours).
- Basic input and output.
Topic 6 (4 class hours).
- Program flow control structures – blocks, loops, and branches.
Topic 7 (4 class hours).
- Static data structures – arrays, matrices, and multidimensional arrays.
Topic 8 (4 class hours).
Topic 9 (10 class hours).
- Search, updating, replacing, and sorting – algorithms and programming solutions.
⎯ FUNDAMENTALS OF OBJECT-ORIENTED PROGRAMMING USING JAVA (40 classes)
Topics:
The course covers ten topics.
Topic 1 (6 class hours).
- Basic concepts in object-oriented programming, objects and classes
Topic 2 (4 class hours).
- Constructors, access control, and encapsulation
Topic 3 (4 class hours).
- Inheritance
Topic 4 (2 class hours).
- Association, aggregation, and composition
Topic 5 (2 class hours).
- Polymorphism
Topic 6 (4 class hours).
- Abstract classes and interfaces
Topic 7 (4 class hours).
- Frameworks and application programming interfaces (APIs)
Topic 8 (4 class hours).
- Exception handling, streams and files
Topic 9 (6 class hours).
- Java platform and Java Collections Framework
Topic 10 (4 class hours).
- UML, object-oriented program design, design patterns
⎯ INTRODUCTION TO DATABASES (32 classes)
Topics:
The course covers ten topics.
Topic 1 (2 class hours).
- Introduction to database system.
Topic 2 (2 class hours).
- Data models.
Topic 3 (4 class hours).
- Data modeling using the Entity Relationship (ER) model.
Topic 4 (4 class hours).
- Data modeling using the Extended Entity Relationship (EER) model.
Topic 5 (2 class hours).
- Relational data model.
Topic 6 (2 class hours).
- SQL–Language of relational databases.
Topic 7 (2 class hours).
- Data Definition Language (DDL) .
Topic 8 (2 class hours).
- Data Manipulation Language (DML).
Topic 9 (8 class hours).
- SQL queries.
Topic 10 (4 class hours).
- Views in SQL.
⎯ SOFTWARE DEVELOPMENT PRINCIPLES AND WEB APPLICATION BACK-END DEVELOPMENT (84 classes)
Topics:
The course covers nine topics.
Topic 1 (4 classes).
- Web architecture and spring boot.
Topic 2 (12 classes).
- REST services layer.
Topic 3 (12 classes).
- Data layer.
Topic 4 (8 classes).
- Service layer.
Topic 5 (12 class hours).
- Serialization and Deserialization of data.
Topic 6 (8 class hours).
- Testing the applications.
Topic 7 (8 class hours).
- Tools for managing software development projects.
Topic 8 (8 class hours).
- Software design and UML.
Topic 9 (12 class hours).
- Security
⎯ WEB FRONT-END (84 classes)
Topics:
The course covers seven topics.
Topic 1 (4 classes).
- Web protocols.
Topic 2 (2 classes).
- Development environment.
Topic 3 (2 classes).
- Web development overview.
Topic 4 (16 classes).
- Web app appearance.
Topic 5 (16 class hours).
- Web programming.
Topic 6 (20 class hours).
- React — introduction.
Topic 7 (24 class hours).
- Advanced React.
- Literature:
⎯ Fundamentals of Procedural Programming using Java
- David Eck, Introduction to Programming using Java, 7th edition, 2014. Available online at: http://math.hws.edu/javanotes/
- Bruce Eckel, Thinking in Java, 4th edition, Prentice Hall, 2005 – translation in Serbian – “Misliti na Javi”, Mikroknjiga, Beograd.
- Wladston Ferreira, Computer Science Distilled, Code Energy LLC, 2017.
- MOOC: CS 50 Introduction to Computer Science, Harvard University. Available online at: https://www.edx.org/course/cs50s-introduction-to-computer-science
- Teacher’s notes. Available online at: https://www.dropbox.com/s/cfgl8hgrtwxk220/1_OP_kurs.pdf?dl=0
- Teacher’s examples.
⎯ Fundamentals of Object-oriented Programming using Java
- David Eck, Introduction to Programming using Java, 7th edition, 2014. Available online at: http://math.hws.edu/javanotes/
- Bruce Eckel, Thinking in Java, 4th edition, Prentice Hall, 2005 – translation in Serbian – “Misliti na Javi”, Mikroknjiga, Beograd.
- Matt Weisfeld, “Objektno orijentisani način mišljenja”, (in Serbian), CET, Beograd, 2003.
- MOOC: Object Oriented Programming in Java, University of California San Diego. Available online at: https://www.coursera.org/learn/object-oriented-java
- Teacher’s notes. Available online at: https://www.dropbox.com/s/j2fkfrnmy33kip8/2_OOP_kurs.pdf?dl=0
- Teacher’s examples.
⎯ Fundamentals of Databases
- Date C. J, An Introduction to Database Systems, 8th Edition, Addison- Wesley Publishing Company, 2003.
- Elmasri R, Navathe B. S, Database Systems: Models, Languages, Design and Application Programming, 6th Edition, Pearson Global Edition, 2011.
- Ramakrishnan R, Gehrke J, Database Management Systems, 3th Edition, McGraw-Hill, 2003.
- MOOC: Databases: Relational Databases and SQL, Stanford University. Available online at: https://www.edx.org/course/databases-5-sql
- Teacher’s notes. Available online at: https://www.dropbox.com/s/iandvsjgp8j814d/3_BP_kurs.pdf?dl=0
- Teacher’s examples.
- Documentation of DBMS MySQL. Available online at: https://docs.oracle.com/cd/ E17952_01/index.html
⎯ Principles of Software Engineering and Development of Web Application Backends
- Bauer, G. King, and G. Gregory, Java Persistence with Hibernate, 2nd ed. New York, NY, USA: Manning, 2015.
- Gutierrez, Pro Spring Boot, 1st ed. New York, NY, USA: Apress, 2016.
- Walls, Spring in Action, 4th ed. New York, NY, USA: Manning, 2016.
- “Spring Tutorials.” [Online]. Available online at: http://spring.io/guides#tutorials.
- Teacher’s notes. Available online at: https://www.dropbox.com/s/iy723t0d45denry/4_BE_kurs.pdf?dl=0
- Teacher’s examples.
⎯ Development of Graphical User Interfaces of Web Applications
- Shenoy, “Thinking in HTML”
- A. Meyer, E. Weyl, “CSS: The Definitive Guide: Visual Presentation for the Web”
- Crockford, “JavaScript: The Good Parts”
- Flannagan, “JavaScript: The Definitive Guide”
- Materials available online at: https://reactjs.org/docs
- Teacher’s notes. Available online at: https://www.dropbox.com/s/otgy1k1vxfz7999/5_FE_kurs.pdf?dl=0
- Teacher’s examples.
- Teacher’s video materials.
Podrska!
Bio sam polaznik prethodne obuke, 2014. godine, uspesno zavrsio akademiju za mobile developer-a (android), praksa prosla odlicno, jos par meseci volontirao u istoj firmi, posle krenula plata. Sad sam u jednoj od dve najvece frime u Park city-ju, lepa plata koja ce tek da raste. Ima dosta da se uci i radi al mislim da vredi.
Predavaca smo imali manje ali su svi bili odlicni.