Course materials & problems for HackBulgaria's Programming 101 with Java. Starting November 2015.
The course is happening thanks to:
This is a detailed program about the course, separated in weeks
- Installing Linux
- Introducing Java with syntax, types & language constructs
- Problem solving & debugging using Java
- Introducing shell & basic Linux commands
- Working with Java command-line tools - java, javac, jar
- Introducing git and GitHub
- Introducing Java OOP concepts & solving OOP problems.
- Classes, methods, attributes, constructors, scope modifiers, static stuff, etc.
- Introducing Generic Types
- Introducing Java Collections & data structures in Java
- Solving problems with different data structures.
- Second take on Java OOP concepts
- Interfaces
- Inheritence & Abstract Classes
- Polymorhism
- Third take on Java OOP concepts
- Implementing multiple interfaces
- Nested & Anonymous classes.
- Java OOP quirks
- Introducing IO in Java - Files & Streams
- Dealing with exceptions in Java
- Introducing Test Driven Development with jUnit
- Introducing review process in software development
- Working with tools like checkstyle and PMD
- Introducing Threads in Java
- Working with Java concurrency.
- Blowing our minds.
- Looking at the bigger picture - objected oriented design
- Desining larger systems & making bigger software projects using everything we know up to now.
- Introducing databases - SQL, JDBC
- Introducing Maven
- Working with 3rd party libraries, like Apache HTTP Client
- Working with annotations & reflections
- Introducing the concept for ORM with Hibernate
- Java 8 & Functional programming in Java
- Working with Servlets & Tomcat
- How to distribute software? Deployment process with Maven / Ant / Gradle.
- Introducing and working with Spring