Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/timgrossmann/hdm_sd1_projectbox

📕 Example suite of Projects that I've planned to build with first term students of the Stuttgart Media University.
https://github.com/timgrossmann/hdm_sd1_projectbox

java learning softwaredevelopment study tutoring university

Last synced: 7 days ago
JSON representation

📕 Example suite of Projects that I've planned to build with first term students of the Stuttgart Media University.

Awesome Lists containing this project

README

        

# HdM_SD1_ProjectBox
Example suite of Projects that I've planned to build with first term students of the Stuttgart Media University.

The Java Project in this repository is supposed to teach the students several basic concepts of programming based on a skill-timeline in the first semester of their studies.

##### The flow of the project is supposed to be like this:

> **Note** Each of the tasks is done in a separate Class to make the task clearer, they are prefixed with **Task_N**.
The App file is the main working environment and combines all the tasks.

1. Basic Scanner project that simply reads in two numbers from the user, assigning them to `int` variables and prints the bigger one (**Variables, usage of Scanner and basic operands**)

1. Print every n-th number from 1 to 100. (**Scanner, For-loops, Modulo**)

1. Guess the number, using a Scanner to read user input which is then compared to the random number generated at the start of the program. (**While/For loops, Random numbers**)

1. Using Switch-Case to start a given user decided program. (**Switch-Case, Refactoring**)

1. Apply mathematical operation to Array of given size and read in values. (**Arrays, Loops, Mathematical operations**)

1. Refactoring what we've built using functions for the different programs and mathematical operations. (**Functions, Refactoring, Parameters, Arguments**)

1. Nested loops to build a christmas tree printed in the console of a given size. First thought through on paper and then implemented. (**Nested Loops, Problem solving**)

1. Coordinate basic Class example explaining syntax and visibility of entities inside of classes. (**Classes, Visibilities, Static Keyword**)

1. Coordinate system advanced Class example using two dimensional array to define empty element for each possible coordinate. Coordinates can then be provided which will be "marked" in the coordinate system upon printing. (**Classes, Two Dimensional Arrays**)

1. Enum class example with Player and Potion entites. Potion can be of different "Types" (Enum usage) and Player can use the Potions to increase health, attack, or defense. **(Revisit Classes, Simple Enums)**

1. BadMath class that shows the disadvantages of not using static. **(Static Keyword)**

1. Very simple dungeon escape game with basic logic of walking along a dungeon grid. **(More Classes, 2-dim Array, Functions)**

1. Simple tests using JUnit for the potion enum task, testing the construction of new Player and Potion and applying a potion to the player. **(Project Structure, Pom file, Test cases)**


---


#### How to import

```bash
git clone https://github.com/timgrossmann/HdM_SD1_ProjectBox.git
```

Import as Maven project in IDE of choice. We use the IntelliJ IDE.


---


#### Potential Topics for short Presentations
Depending on the level the students, it makes sense to provide only the first n-Topics as examples to not overwhelm them.
Each presentation should be acompanied by a small task the other students can work through to understand the concepts better.

- Maven setup
- IntelliJ useful features
- Variables
- Main Method
- Scanner (Simple User Input)
- System.in/out/error
- Primitive Types
- Object Types
- If-Conditions
- Switch-Case
- For-Loops
- While-Loops
- Break & Continue
- Arrays
- Nested Arrays
- Functions
- Passing Values vs. References
- Classes (Constructor, etc.)
- Visibility Levels of Entities of Classes
- Method Overloading
- Enums
- Static
- File Class (Input/Output)
- Exceptions
- Collections
- Interfaces
- Method Overriding
- Abstract Classes
- Root Object Class Methods (toString(), etc.)
- Dates
- HTTP-Requests
- Singleton
- Other JVM langauges
- Compiling Classes to Java files
- JSON Handling
- Clean Code
- Version Control with Git (basic cloning, comitting)
- Advanced Version Control with Git


---


#### Additional Task Resources

- [Daily Programmer](https://www.reddit.com/r/dailyprogrammer/)
- [Codingbat](https://codingbat.com)
- [Codewars](https://www.codewars.com)