Teaching Material for Middle and High Schools

pliroforikos

Active Member
Licensed User
Hello everybody!

I am uploading a series of courses for a B4X (B4J) teaching program for middle and high school students.
The total project consists of 20 different modules with a total duration of approximately 60 hours.

The program is divided into courses where each is accompanied by:
  • Brief Theory (in pdf and docx) in English and Greek Language (Spanish translation also available here )
  • Power Point Presentations (pptx)
  • Examples (solved)
  • Exercises (also solved for the teacher).
Since the program is aimed at students with little or no programming knowledge, an attempt was made to hide enough details in order to make it more understandable. So forgive some omissions.

The material uploaded to my github here.
You can download full v2.0 pdf for printing here.
Changes Log file here

If you liked my work a cup off coffee is always welcome. Thank you.

New word files includes and Greek Translation. Some changes to curriculum also made.

There is also a Spanish translation. Many thanks to user profeberja. You can find it on his github
here


LessonDetails
Hours
1The B4X language
  • Why B4X
  • Downloading and Installing B4J and Java
  • Customize environment
1​
2The meaning of the problem
  • What is a problem
  • Ways to represent a problem
1​
3My first Program
  • Create a new program
  • How to run a program
  • How to Save
  • The turtle
2​
4Variables and Range
  • Int
  • Float
  • How to name a variable
  • Mathematical Operators
  • Assign Values to Variables
  • The log function
  • Strings
3​
5Designer
  • Talking about Designer
  • Design the first Screen
  • Views: Labels, TextFields, Buttons, Panes
  • Saving forms
2​
6From Designer to Code
  • Class_Globals
  • Variables and Subs
  • Passing Values to Code
  • Events
  • Attribute
2​
7Conditional Statement
  • Boolean Variables
  • Relational Operators
  • Logical Operators
  • If Statement
  • If-Else Statement
  • If-Else IF - Else Statement
  • MAX Algorithms
4​
8Subroutines
  • What is a subroutine
  • Declaring a Sub
  • Passing Values
  • Returning Values from a sub
3​
9Classes – Objects
  • What is a Class?
  • What is an Object?
  • What are Attributes and Methods?
  • Create and use simple class with B4J.
3​
10B4XPages
  • What is a B4XPage
  • How to Create and Delete a B4XPage
  • Passing Values within Pages
3​
11Application 1
  • “A simple Calculator”
  • With the help of teacher pupils creates a Calculator application with the 4 simple operations.
3​
12Loops
  • What are Loops?
  • Do While
  • Do Until
  • For – Next
5​
13B4XViews
  • What is a B4XView
  • Hot to create B4XViews
  • B4XViews events
2​
14Arrays
  • One dimensional Arrays
  • Basic Operations with arrays
  • Linear search
  • Binary search
  • MAX – MIN item
  • Sorting with Bubble Sort
  • Sorting with Selection Sort
4​
15Lists
  • What is a list?
  • Basic Operations with lists
2​
16Maps
  • What is a map?
  • Basic Operations with maps
2​
17Files
  • File location in B4J
  • File Methods
4​
18Complex Data Types, KVS Files and Views
  • Create new Type
  • B4XViews
  • Combo Boxes, Lists
2​
19Final ProjectIn this app pupils will test their knowledge creating an application based in previous lessons.
10​
20From B4J to B4AHow to move an application to B4A
2​
Total Hours
60​
 

Attachments

  • Curriculum Plan 1.2.pdf
    106.4 KB · Views: 814
Last edited:

moster67

Expert
Licensed User
Longtime User
Fantastic material and work. ?
Must have taken you quite some thinking and time to put all that together.
 

xulihang

Active Member
Licensed User
Longtime User
Great work!

I am always confused of the correct way to name variables, so I just read lesson 4. But I don't think having the type name in the variable name is a good idea.

For example, it is obvious that age is an integer. There is no need to name the variable intAge. I think naming it age is enough. If there is a naming standard, please let me know.
 

pliroforikos

Active Member
Licensed User
I had the same question. I always knew that we need a standardization about naming. Especially if we work as a team but and when we are alone too. So its better to have a good practice in your mind when you are writing code. Sometimes on the other hand we need for example a count for a loop. I don't use int_i or intI but only i, j etc.
You can see our discussion for variables in the link bellow.
https://www.b4x.com/android/forum/threads/naming-variables.126976/
 

msains

Member
Licensed User
Longtime User
What a great effort. Thank you for posting.

As a life-long teacher and Professor please let me contribute some further suggestions. - mostly on the order of your teaching programme
The main suggestion is that you should not let 'perfection in theory' get in the way of 'enthusiasm and curiosity' ... let me explain

a) Get the student into practical work as soon as possible. ie have something like Hello World immediately
The student's own curiosity and enthusiasm (and sometimes frustration) is your best ally in moving them forward.

b) Don't get me wrong - Perfection in theory is a very good (essential) thing - but as long as you personally have mastered that theory
and best practice you can guide your student in the correct ways as they progress AT the Apporpriate Time.
But don't hold up 'progress' with too much 'introductory' theory. The theory can (must) come later.

c) Sometimes even 'frustration' is your best aid in teaching.
Eg So LET your student code the same lines of code over and over and over again - even sometimes making your Tutorials purposefully
frustrating in this way. The student then begins to think .....
'...there really must be a better way to do this...'
Only then - introduce (say) the concept (theory) of a callable 'Sub' and the enthusiasm grows as they implement it and tidy things up.

In the current world of lock-downs and remote teaching this is (understandably) difficult. You need to be with your students and see
their faces as they show both enthusiasm and frustration and you need to introduce each '..better way..' as you guide them.
That is very difficult if you can't see their actual frustrations or their 'light-bulb' moments.

All of the best. I'd be happy to help you at any point.

This forum is a wonderful and 'giving' community and we applaud your generosity and I know we'll all help you to get to a a
place where you have a real winner here
 

pliroforikos

Active Member
Licensed User
What a great effort. Thank you for posting.

I am grateful for your suggestions. So, let me tell you some of my concerns.

a) Yes, I agree with you and i love practice too. So, the program except the first two lessons is about practice. I believe that I have to include some introduction about language. Maybe to show some readymade applications. But I’m considering to change a little bit even with a hello word as you propose.

b) I agree with you. As practice getting better the theory goes on. For example, in Lesson 4 where I’m talking about variables and i have very few theories. In Lesson 6 (under construction right now) I’m talking about variables again and especially Global Variables. So, I’m trying not giving to them all the theory. It will be very boring even for me. ?

c) This is my worst nightmare. I know practice and repeating the same things make us better. But it's a school program and that means we don’t have all the time we need to explain and stay back. I’m teaching now in 2 High Schools B4J. I have 6 class from 2 hours per week. I’m afraid it’s not possible to teach all the materials ☹

Generally speaking, everyone can change the materials according to his/her needs and I hope for a feedback!

I have just finished a webex meeting cos we are closed again of COVID-19. I was talking about designer. It’s difficult for students without a lab…
 

msains

Member
Licensed User
Longtime User
I think you must be a brilliant teacher. I feel so sorry for you having to cope with all the Covid lockdown stuff.
In some ways its Its like trying to teach Tennis of Football without actually being present.
Your students are lucky to have you. Keep thinking out of the box like you do.
Let us know immediately if we can ever help in any way with your project.
 

R D Boozer

Member
Licensed User
As a former instructor and author of computer programming course material for students of all ages who has been doing this type of work for decades, I truly appreciate the magnitude of what you have accomplished. Of course, there are always parts that may be improved, but that is always the case no matter how well a project is executed. You will improve the already exceptionally high quality of your work over time as you employ it in the real world. It took a tremendous amount of work and dedication on your part and is something of which to be genuinely proud. Kudos!
 

Juzer Hussain

Active Member
Licensed User
Longtime User
Commendable Job
 

rabbitBUSH

Well-Known Member
Licensed User
@pliroforikos : THANKS THANKS THANKS
I have been several times to try and get into B4J and each time just decided to put the learning curve off into the will-i-live-long-enough list.

So, this set of lessons is a really welcome contribution for me. Although I have not started on the path yet, I have just now scanned the course outline and so on.

Middle and High school is going to be just my level.

Please notify any updates and extensions that you develop - excited to get going through the lessons.
 

pliroforikos

Active Member
Licensed User
Thank you.
Εχω μεταφράσει προς το παρών μόνο τα Lesson6 έως Lesson10 μέσα στους αντίστοιχους φακέλους.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…