id: loyA61WU1pQrcxuH
createdBy: 15sg55Z9lOgM
dateCreated: 1713192447954
name: 'Lab-Linux: Java-Programming'
meta:
logo: https://raw.githubusercontent.com/edrys-labs/lab-linux/main/media/java.jpg
description: >-
In this Java programming course, students will embark on an exciting journey
into the world of coding. They'll start by learning the basics of Java, a
versatile and widely used programming language. By creating simple programs
like "Hello, World!" and gradually introducing more complex elements such as
input from users, students will develop essential programming skills.
Additionally, they will learn to identify and fix common errors, enhancing
their problem-solving abilities.
selfAssign: true
defaultNumberOfRooms: 0
members:
teacher: []
student: []
modules:
- url: https://edrys-labs.github.io/module-markdown-it/index.html
config:
content: >-
# Welcome to Lab-Linux: Java-Programming
Java is a popular programming language that acts like a universal
translator for computers, helping them understand what we want them to do.
It's kind of like the language you use to build awesome structures in a
virtual world, except these structures are programs and apps that work in
the real world!
Here's why Java is awesome for young programmers:
1. **Write once, run anywhere**:
Java is super special because you can write your program once, and it can run on almost any device, whether it's a computer, a smartphone, or even a smart fridge!
2. **Easy to learn basics**:
Java has a straightforward way of doing things, which makes it easy to start learning.
It's like playing with building blocks; once you know how a few basic blocks fit together, you can start building more complicated stuff.
3. **Helps you think like a programmer**:
Learning Java teaches you to think logically and solve problems, just like puzzles. It trains your brain to organize thoughts and tackle problems in smart, efficient ways.
4. **Used everywhere**:
Java is used by big companies all around the world to create games, social media apps, and all sorts of useful software.
So, learning Java might help you create your own game or app one day!
Java is not just about coding; it's a way to express your ideas and see
them come to life in the digital world. It's a powerful tool that can open
up endless opportunities for creating and innovating!
__Visit a station by clicking onto it and then explore the terminal ;-)__
studentConfig:
content: ''
teacherConfig:
content: >-
## Welcome for Teachers
> This can be used as a base laboratory to create further and more
elaborate labs with [edrys-Lite](https://edrys-labs.github.io).
> You are currently in the Lobby. If there is a station available you can
switch to it and try out the terminal.
> Otherwise, if you are in teacher-mode you can share a lab by clicking
onto `setting` >> `station` and then by clicking the presented link,
> which is the same as the current link, but only with the word `station`
instead of `classroom`.
stationConfig:
content: ''
showInCustom: lobby
width: full
height: huge
- url: https://edrys-labs.github.io/module-editor/index.html
config:
editorText: Starting text in editor...
runCommand: execute
language: cpp
theme: light
studentConfig: ''
teacherConfig: ''
stationConfig: ''
showInCustom: station
width: full
height: medium
- url: https://edrys-labs.github.io/module-markdown-it/index.html
config:
content: >-
# Welcome to the Station
## Tutorial Part 1: Your First Java Program
Let's start with something simple. We're going to write a program that
tells the computer to say "Hello, World!". This is a traditional first
step in learning any programming language.
1. **Type or copy the following Java code into the editor**:
```java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
```
2. **Run the program**:
Press the run button in your online editor.
You should see the output `Hello, World!` appear on the screen.
Congratulations, you've just written and run your first Java program!
## Tutorial Part 2: Enhancing Your Program
Now, let's make your program a bit more interactive. We'll modify it so it
asks for your name and then says hello to you personally.
1. **Modify your program**:
Change the code in your online editor to the following:
```java
import java.util.Scanner; // This line imports the Scanner class for reading input
public class HelloWorld {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // Create a Scanner object to read input
System.out.println("Enter your name: "); // Ask for user's name
String name = scanner.nextLine(); // Read user input
System.out.println("Hello, " + name + "!"); // Say hello to the user
}
}
```
2. **Run the program**:
When you run this program, it will ask you to enter your name.
Type your name into the input box and press enter.
You should see a message saying hello to you!
#### Tutorial Part 3: Introduce an Error
Let's introduce a common error so you can learn how to identify and fix
it.
1. **Introduce an error**:
Change the line that creates the Scanner object slightly:
```java
Scanner scanner = new Scanner(System.in);
```
Change it to:
```java
Scanner scanner = new Scnner(System.in); // Misspelled 'Scanner'
```
2. **Run the program and observe the error**:
When you try to run your program, you'll get an error message like `error: cannot find symbol`.
This error occurs because `Scnner` is not recognized by Java (because we misspelled it).
3. **Fix the error**:
Correct the spelling of `Scanner` in the instantiation of the `scanner` object.
Run the program again to see it working perfectly.
Through these steps, students not only learn how to write and run Java
programs but also how to troubleshoot and resolve simple errors, which are
important skills in programming.
studentConfig:
content: ''
teacherConfig:
content: ''
stationConfig:
content: >-
## Instructions for Station-Sharing
You are currently responsible for sharing a station of this lab.
You have multiple options to share a or your terminal.
Therefor we use the pyxtermjs - terminal server from:
https://github.com/edrys-labs/module-pyxtermjs
### Using Docker
If you haven't done it so far, install
[docker](https://docs.docker.com/engine/install/).
Or, follow one of the instruction-videos for your system:
Install Docker on LinuxInstall Docker on WindowsInstall Docker on MacOS
Then the only thing that is required is to run the following command:
```bash
docker run -it -p 5000:5000 crosslab/edrys_pyxtermjs_development:latest
```
This will download the pyxtermjs terminal-server from docker-hub and run
it in a secure environment.
It contains support for:
- `clojure`
- `g++`
- `gcc`
- `golang`
- `haskell`
- `java`
- `lua`
- `mono`
- `nodejs`
- `python 3`
- `r`
- `rustc`
### Using Python
You can also share your terminal directly via Python, visit the following
project
https://github.com/edrys-labs/module-pyxtermjs
... the easiest way is to perform the following steps:
``` bash
# 1. clone the repository or download the folder manually
git clone https://github.com/edrys-labs/module-pyxtermjs
# 2. install all required sources
pip3 install -r requirements.txt
# 3. run the terminal-server
python3 -m pyxtermjs --cors True --command bash --port 5000
```
showInCustom: station
width: half
height: huge
- url: https://edrys-labs.github.io/module-pyxtermjs/index.html
config: ''
studentConfig: ''
teacherConfig: ''
stationConfig:
server: http://localhost:5000/pty
execute: execute
script: |-
echo $CODE | base64 --decode > HelloWorld.java
javac HelloWorld.java && java HelloWorld
enable:
teacher: true
student: true
showInCustom: station
width: full
height: medium