Ahmed Elmalla
Ahmed Elmalla
Expert Python, Java, and VB.NET Programming Guidance IB Computer Science Tutor AP Computer Science A Tutor Python Programming Tutor Java Programming Tutor Experienced VB.NET Coding Tutor
Ahmed Elmalla

Blog

Yazeed | Mastering Python and Java: Key Lessons from February and March 2024 Classes

Yazeed | Mastering Python and Java: Key Lessons from February and March 2024 Classes

Learning Python and Java can open doors to a world of opportunities in software development, but mastering these languages requires a solid understanding of core principles. In this blog, we dive into the key lessons from the February and March 2024 programming classes, where students explored essential concepts like methods, arrays, object-oriented programming (OOP), and encryption techniques.

Whether you're just starting out or looking to strengthen your coding skills, this comprehensive guide will provide practical examples, hands-on exercises, and valuable resources to help you excel in Python and Java. Get ready to take your coding journey to the next level!


1) Class 2 (25 Jan 24 ) :

      a) Class Summary: 

  1.           

      b) Video (  Thrusday ): 
                      
Part 1 (-)

                      Part 2 (-) 

                      Part 3 (-) 

                       

      d) Files:  Main Slides , L2 Pyhon Slides

      e) Class Code: python 

      f) Excercises : here  

      g) Twitter (X) link:  Group 1 - homework : N/A

 

2) Class 3 (29 Jan 24 ) :

      a) Class Summary: 

  1.           

      b) Video (  Thrusday ): 
                      
Part 1 (-)

                      Part 2 (-) 

                      Part 3 (-) 

                       

      d) Files:  Main Slides , White Paper for Suming Numbers, L22_python_slides

      e) Class Code: python 

      f) Excercises : here  

      g) Twitter (X) link:  Group 1 - homework : N/A

 

Note: 1 & 4 Feb got no classes bec. yazeed was sick

 

3) Class 4 (5 Feb 24 ) :

      a) Class Summary: 

  1.           

      b) Video (  Monday ): 
                      
Part 1 (Not recorded)

                      Part 2 (-) 

                      Part 3 (-) 

                       

      d) Files:  Main Slides ,  L3_selection process python_slides

      e) Class Code: all code was written on Yazeed computer

      f) Excercises : Check Age even or odd  

      g) Twitter (X) link:  Group 1 - homework : N/A

 

4) Class 5 (9 Feb 24 ) :

      a) Class Summary: 

  1.  N/a         

      b) Video (  Friday ): 
                      
Part 1 ()

                      Part 2 (-) 

                      Part 3 (-) 

                       

      d) Files:  Main Slides 

      e) Class Code: Python

      f) Excercises : Give discount 

      g) Twitter (X) link:  Group 1 - homework : N/A

 

Starting Here we switched to java instead of python

5) Class 6 (12 Feb 24 ) :

      a) Class Summary: 

  1.  N/A    

      b) Video (  Monday ): 
                      
Part 1 ()

                      Part 2 (-) 

                      Part 3 (-) 

                       

      d) Files:  Main Slides  

      e) Class Code: Java

      f) Excercises : recipt program Java

      g) Twitter (X) link:  Group 1 - homework : N/A

 

6) Class 7 (15 Feb 24 ) :

      a) Class Summary: 

  1.  N/A    

      b) Video (  Thrusday ): 
                      
Part 1 ()

                      Part 2 (-) 

                      Part 3 (-) 

                       

      d) Files:  All Slides  (3 Files)

      e) Class Code: Java

      f) Excercises : recipt program Java

      g) Twitter (X) link:  Group 1 - homework : N/A

 

7) Class 8 (17 Feb 24 ) :

      a) Class Summary: 

  1.  N/A    

      b) Video (  Saturday ): 
                      
Part 1 ()

                      Part 2 (-) 

                      Part 3 (-) 

                       

      d) Files:  Network Engineer, Programmer, AI Field 

      e) Class Code: n/a

      f) Excercises : n/a

      g) Twitter (X) link:  Group 1 - homework : N/A

 

8) Class 9 (19 Feb 24 ) :

      a) Class Summary: 

  1.  N/A    

      b) Video (  Monday ): 
                      
Part 1 ()

                      Part 2 (-) 

                      Part 3 (-) 

                       

      d) Files:  java_primitive_data_types_operators

      e) Class Code: Java

      f) Excercises : Avg and variance Exercise

      g) Twitter (X) link:  Group 1 - homework : N/A

 

9) Class 10 (22 Feb 24 ) :

      a) Class Summary: 

  1.  N/A    

      b) Video (  Thrusday ): 
                      
Part 1 ()

                      Part 2 (-) 

                      Part 3 (-) 

                       

      d) Files: Cyber SecuirtyIntro , OOP for java

      e) Class Code: Java

      f) Excercises : OOP Question

      g) Twitter (X) link:  Group 1 - homework : N/A

 

10) Class 11 (24 Feb 24 ) :

      a) Class Summary: 

  1.  N/A    

      b) Video (  Saturday ): 
                      
Part 1 ()

                      Part 2 (-) 

                      Part 3 (-) 

                       

      d) Files: Virtual Server

      e) Class Code: n/a

      f) Excercises : n/a

      g) Twitter (X) link:  Group 1 - homework : N/A

 

11) Class 12 (26 Feb 24 ) :

      a) Class Summary: 

  1.  N/A    

      b) Video (  Monday ): 
                      
Part 1 ()

                      Part 2 (-) 

                      Part 3 (-) 

                       

      d) Files: Intro into the Internet , Java Methods

      e) Class Code: methods example in java code

      f) Excercises : java methods

      g) Twitter (X) link:  Group 1 - homework : N/A

 

12) Class 13 (1 March 24 ) :

      a) Class Summary: 

  1.  N/A    

      b) Video (  Monday ): 
                      
Part 1 ()

                      Part 2 (-) 

                      Part 3 (Chat GPT & Gemini) 

                       

      d) Files: Data packet Switching & Intro to Block Chains , get IP address on wondows

      e) Class Code: n/a

      f) Excercises : n/a

      g) Twitter (X) link:  Group 1 - homework : N/A

 

13) Class 14 (14 March 24 ) :

      a) Class Summary: 

  1.  Methods in Java    

      b) Video (  Thrusday ): 
                      
Part 1 ()

                      Part 2 (-) 

                      Part 3 () 

                       

      d) Files: Defining Simple Methods  

      e) Class Code: n/a

      f) Excercises : n/a

      g) Twitter (X) link:  Group 1 - homework : N/A

 

14) Class 15 (15 March 24 ) :

      a) Class Summary: 

  1.  Methods Signiture in Java

  2. Using ready made methods like Math.abs, Math.round and Math.random

  3. Practice on using math.random     

      b) Video (  Friday ): 
                      
Part 1 ()

                      Part 2 (-) 

                      Part 3 () 

                       

      d) Files: Method with return Statements + Math Methods, Math. random 

      e) Class Code: Methods with different signiture

      f) Excercises : Calculate triangle hypothesis

      g) Twitter (X) link:  Group 1 - homework : N/A

 

15) Class 16 (21 March 24 ) :

      a) Class Summary: 

  1.  M   

      b) Video (  Tuesday ): 
                      
Part 1 ()

                      Part 2 (-) 

                      Part 3 () 

                       

      d) Files: String Split , Arrays Intro, String Intro

      e) Class Code: Arrays + String length + split a string

      f) Excercises : Extract match Scores

      g) Twitter (X) link:  Group 1 - homework : N/A

 

16) Class 17 (28 March 24 ) :

      a) Class Summary: 

  1.  M   

      b) Video (  Thrusday ): 
                      
Part 1 ( Hexadecimal Numbers + Usage Example)

                      Part 2 (Embedded Systems Examples + EEG headsets) 

                      Part 3 (Hexadecimal Numbers + Usage Example ) 

                       

      d) Files: Embedded Systems + Sensors + EEG Headsets

      e) Class Code: n/a

      f) Excercises : n/a

      g) Twitter (X) link:  Group 1 - homework : N/A

 

* Class was given 1 hour in Ramdan due to the request to have an earlier class 

17) Class 18 (1 April 24 ) :

      a) Class Summary: 

  1.  n/a   

      b) Video (  Monday ): 
                      
Part 1 ( Introduction to Caeser Encryption using key shifting of alphabets)

                      Part 2 ( Discussing extracting Match Exercise from a string using Split method) 

                

      d) Files: Encryption

      e) Class Code: Using Split function + Shifting alphabet charcaters

      f) Excercises : Function to shift alphabet

      g) Twitter (X) link:  Group 1 - homework : N/A

 

18) Class 19 (8 April 24 ) :

      a) Class Summary: 

  1.  n/a   

      b) Video (  Monday ): 
                      
Part 1 (Imam University Syllabus Overview)

                      Part 2 (Introduction to DB, SQL and Operating Systems ) 

                

      d) Files: Imam University Syllbus Overview

      e) Class Code: n/a

      f) Excercises : n/a

      g) Twitter (X) link:  Group 1 - homework : N/A

 

19) Class 20 (18 April 24 ) :

      a) Class Summary: 

  1.  n/a   

      b) Video (  Thrusday ): 
                      
Part 1 (Extracting football match results from a string Exercise),

                      Part 2 (not recorded), 

                      Part 3 (String methods in java & Local Variables Scope in Functions) 

                

      d) Files: String Methods in Java

      e) Class Code: Local variables in Functions and using return keyword

      f) Excercises : Function to shift alphabet

      g) Twitter (X) link:  Group 1 - homework : N/A

This week class will be canceled bec. of exams

 

20) Class 21 (5 Sept 24 ) :

 

a) Class Summary:

- To be updated

 

b) Video (Thrusday):

Part 1:  

Part 2:  Java Programming for Beginners in KSA: Learn Machine code & High-Level Languages

Part 3:  

 

d) Files:

- Imam University Slide1

 

e) Class Code:

- n/a

 

f) Exercises:

- Find Error:

https://liveexample.pearsoncmg.com/LiveRun13e/faces/LiveExample.xhtml;jsessionid=6ea64f38eaa5365c754ff14e3240

 

g) HomeWork Solutions Posting (FB) :

 post answers or link to answer files  

 

21) Class 22 (12 Sept 24 ) :

 

a) Class Summary:

- To be updated

 

b) Video (Thrusday):

Part 1:  Mastering Java Programming Essentials for KSA Students | Understanding IDEs, Syntax, and Logic Errors

Part 2:  Java Programming for Beginners: Live Session Breakdown & Hands-on Coding Tutorial 

 

d) Files:

- Imam University Slide 2

 

e) Class Code:

- n/a

 

f) Exercises:

Chapter2_ElementaryProgramming_Exercises

 

g) HomeWork Solutions Posting (FB) :

 post answers or link to answer files  

 

22) Class 23 (17 Sept 24 ) :

 

a) Class Summary:

  • Programming Tasks and Solutions: Ahmed helped Yazeed prepare for upcoming exams by discussing a programming task involving extracting digits and calculating their sum. They also explored strategies for modifying and reusing code, especially in relation to interpreter functionality.

  • Technical Issues and Enhancing System Intelligence: The session covered troubleshooting a laptop battery issue and the need to implement loops in coding. They also faced challenges with repeated operations and agreed to modify the code to improve system intelligence and avoid redundant processes.

  • Ahmed and his student discussed key mathematical and coding concepts, including the Modulo operator, time conversion, and the efficient use of data storage by choosing appropriate data types.

  • Ahmed advised Yazeed to subscribe to a coding service for exam preparation and practice, while also preparing his computer for the next session focused on Modulo and time conversion techniques.

 

b) Video (Thuesday): (1 hr + 52 min)

Part 1:  Java Programming: Solving Coding Challenges and Battery Troubleshooting

Part 2:  Java Concepts for Beginners: Understanding Modulo, Time Conversion, and Data Storage

 

d) Files:

- Imam University Slide 2 (until page 38)

 

e) Class Code:

- n/a

 

f) Exercises:

- Calculate the number of days that have elapsed since 1970

 

g) HomeWork Solutions Posting (FB) :

 post answers or link to answer files  

 

23) Class 24 (24 Sept 24 ) :

 

a) Class Summary:

  • Tax Calculations and Code Modifications:

    • Discussed implementing tax rates between 5% and 10% in the code and adjusting output formats to display bill, tax, and total amounts separately.
  • Consistency in Pricing Systems:

    • Emphasized maintaining consistent pricing per unit in the code and ensuring logical consistency in calculations.
  • Code Validation and User Input:

    • Reviewed techniques for validating user inputs and ensuring inputs fall within acceptable ranges to prevent errors.
  • Debugging and Independent Problem-Solving:

    • Highlighted the importance of practicing debugging, error handling, and solving coding issues independently.
  • Implementation and Output Formatting:

    • Focused on the correct implementation of code and formatting outputs for clear, organized display, especially regarding tax values on invoices.

b) Video (Thuesday): (1 hr 15 min)

Part 1:  Java Programming Revision: Tax Calculations, Pricing Systems, and Code Validation

 

d) Files:

- n/a

 

e) Class Code:

- Enhanced Version of the Restaurant Menu Code

 

f) Exercises:

Add Discount Functionality to Fast Food Ordering System

 

g) HomeWork Solutions Posting (FB) :

 post answers or link to answer files  

 

 

24) Class 25 (1 Oct 24 ) :

 

a) Class Summary:

  • Emphasized understanding of coding logic and string manipulation, focusing on ASCII conversions and index operations.
  • Reviewed strategies for efficient exam preparation, including time management and focusing on key problem areas.
  • Discussed character encoding, number conversions, and storage in computer systems using ASCII tables.
  • Highlighted the importance of practicing coding problems and exam-style questions to ensure readiness for the midterm exam.

 

b) Video (Thuesday): (1 hr 48 min)

Part 1:  Midterm Exam Revision for Computer Science - KSA University

 

d) Files:

- n/a

 

e) Class Code:

- Convert ASCII code characters to integers and vice versa, and explain how the compareTo method works with strings.

 

f) Exercises:

- Practice the following MCQ exercises:

 

g) HomeWork Solutions Posting (FB) :

 post answers or link to answer files  

 

25) Class 26 (2 Oct 24 ) :

 

a) Class Summary:

  • Denary and Hexadecimal System Overview: Ahmed introduced and clarified the concepts of Denary (Base-10) and Hexadecimal (Base-16), including their significance in computing and how they handle numeric representation.

  • Conversion Techniques: The class included a detailed explanation of how to convert Denary numbers to Hexadecimal, using division by 16 and modulo operations. Ahmed demonstrated this with clear examples.

  • Coding the Conversion: Ahmed went on to explain how to implement the conversion process in code, discussing key functions and logic necessary to convert numbers between systems.

  • Testing and Verification: The importance of testing the conversion code with different input values was emphasized to ensure accuracy. Ahmed provided practical examples to verify the proper execution of the hexadecimal conversion.

 

b) Video (Wednesday): (45 min - recording only)

Part 1: Understanding Denary and Hexadecimal Systems

- Part 2 : Converting Denary to Hexadecimal

- Part 3: Code Explanation and Implementation of Hexadecimal Conversion

 

d) Files:

- n/a

 

e) Class Code:

Hexadecimal Conversion and ASCII Manipulation in Java

 

f) Exercises:

- n/a

 

g) HomeWork Solutions Posting (FB) :

 post answers or link to answer files  

 

26) Class 27 (2 Oct 24 ) :

 

a) Class Summary:

  • Coding Project and Problem-Solving: Ahmed and Yazid reviewed Yazid's coding project, focusing on improving string comparison techniques and the development of an application to compare numbers for a medical store context.
  • Internet Connectivity Issues: They discussed strategies to troubleshoot internet issues at home, including improving router placement, testing signal strength in various rooms, and using speed testing apps.
  • Programming Exam Preparation: Yazid is preparing for an upcoming exam. Ahmed emphasized understanding programming concepts like loops, string manipulation, and comparison logic rather than just memorizing code.
  • Work Experience and Technical Proficiency: The conversation touched on their work experiences and the importance of technical proficiency in Saudi Arabia, particularly in sensitive industries like banking and government.

 

b) Video (Monday): (1 hour 48 min)

Part 1: Programming Concepts, Internet Troubleshooting, and Application Development

 

d) Files:

- Exercise: Finding the Common Prefix Between Two Strings

 

e) Class Code:

- Finding Common Prefix in Two Strings in Java

 

f) Exercises:

Sum of Digits in an Integer in Java – Exercise

 

g) HomeWork Solutions Posting (FB) :

 post answers or link to answer files  

 

27) Class 28 (10 Oct 24 ) :

 

a) Class Summary:

  • Word Count System Discussion: Covered how to count independent words and set rules for word boundaries to improve accuracy in a word count system.
  • Code Implementation: Agreed to write code that implements the word count system with practical examples for clarity.
  • D-Mark Concept: Explored the historical and potential modern use of "D-mark" in their project, with differing views on its relevance.
  • Code Alignment: Discussed the importance of proper code alignment for readability and accuracy, along with error-checking.
  • Importance of Practice: Stressed the need for regular practice, even with simpler tasks, to build coding proficiency.

 

b) Video (Tuesday): (1 hour 44 min)

Part 1: Word Count System and Code Alignment

 

d) Files:

Implementing Independent Word Counting in Code

 

e) Class Code:

- Example Usage of isLetterOrDigit() Method & indexOf() Method in Java
 

f) Exercises:

- Sum the digits in a string

 

g) HomeWork Solutions Posting (FB) :

 post answers or link to answer files  

 

28) Class 29 (14 Oct 24 ) :

 

a) Class Summary:

  • Discussed the concept of "conditionality" and the importance of small but significant changes in code to ensure clarity and accuracy.
  • Reviewed mathematical operations like adding numbers within specific ranges and how these concepts apply to coding exercises.
  • Ahmed and Yazid planned for the upcoming exam, including reviewing local and global variables, practicing loops, and clarifying key differences between printing and returning data.

 

b) Video (Monday): (59 min - yazeed deleyed the class for more than an hour)

Part 1: Exploring Conditionality and Mathematical Code Concepts

 

d) Files:

- How Methods work (Module 6 Pearson)

 

e) Class Code:

- Methods examples
 

 

f) Exercises:

- Create a method to sort 3 numbers

 

g) HomeWork Solutions Posting (FB) :

 post answers or link to answer files  

 

29) Class 30 (17 Oct 24 ) :

a) Class Summary:

  • Exam Review and Code Simplicity:
    Ahmed and Zaid discussed their recent exams, emphasizing the need for simplicity in coding to avoid unnecessary complexity. The discussion also touched on using spreadsheets to assist in preparation and planning.

  • Problem-Solving Approach:
    They tackled technical issues related to coding logic, especially comparing numerical values and dealing with system-related problems. Ahmed explained a structured approach that could take months but offered a simple, scalable solution.

  • Max and Min Functions:
    Ahmed introduced the use of max and min functions for comparing numbers, highlighting the importance of these functions in finding the largest or smallest number in a set, which Zaid practiced during the session.

  • Technical Issues and Solutions:
    The class also covered practical problem-solving for technical disruptions, such as sound cuts and device disconnections. Ahmed provided step-by-step guidance on troubleshooting and testing all conditions in the system to ensure correct functionality.

  • Personal Advice and Focus on Skills:
    Ahmed emphasized the importance of documenting solutions, staying organized, and testing all edge cases in the code. He also advised Zaid to balance urgency with thoroughness, especially when preparing for upcoming exams, and encouraged the completion of pending homework and projects.

b) Video (Thrusday): (1 hour 24 min - excused for 10 min)

Part 1: Exam Reviews, Code Optimization, and Problem Solving Techniques

 

d) Files:

-  Sorting Three Numbers - Exercise Answers

 

e) Class Code:

- n/a
 

f) Exercises:

- n/a

 

g) HomeWork Solutions Posting (FB) :

 post answers or link to answer files  

 

30) Class 31 (21 Oct 24 ) :

a) Class Summary:

  • Memory Storage and Data Efficiency:
    Ahmed explained the concept of memory storage, showing how multiple values can be stored efficiently in a single memory location. Yazid gained a better understanding but expressed some confusion.

  • Project Management and Client-Focused Approach:
    The team discussed the need for a well-structured, client-centered approach to their project, emphasizing the importance of defined roles, responsibilities, and effective communication.

  • List Manipulation in Programming:
    Ahmed demonstrated how to create and manipulate lists, including initializing lists, filling them with values, and accessing or modifying elements using indexing.

  • Code Functionality and Data Types:
    Ahmed explained how code operates on list data without altering the original values, introducing Yazid to essential programming concepts like data types, random number generation, and memory optimization.

b) Video (Thrusday): (1 hour 38 min - excused for 15 min)

Part 1: Array Memory Storage, Data Manipulation, and Project Management in Programming

 

d) Files:

-  Module 7 Part 1 (Imam Uni sylbyus)

 

e) Class Code:

- n/a
 

f) Exercises:

Reverse Numbers Array Homework

 

g) HomeWork Solutions Posting (FB) :

 post answers or link to answer files  

 

31) Class 32 (14 Nov 24 ) :

a) Class Summary:

  • Exam Reflections and Insights:

    • Discussed the recent exam experience, emphasizing preparation strategies and lessons learned.
    • Shared tips on staying focused and maintaining clarity under exam pressure.
  • Programming Fundamentals:

    • Explained core programming concepts like memory allocation, pointers, and the importance of understanding vs. rote memorization.
    • Discussed the practical implications of coding practices, including array manipulation and efficient data storage.
  • Problem-Solving Focus:

    • Tackled a coding problem involving array reversal, breaking down the logic step-by-step.
    • Highlighted the importance of iterative practice in mastering problem-solving techniques.
  • Concept Clarification:

    • Clarified technical terms and their application, such as "heap," "safe data storage," and string manipulation.
    • Provided real-world analogies to bridge theoretical concepts with practical understanding.
  • Personal Advice:

    • Encouraged consistent practice and revisiting challenging topics to reinforce understanding.
    • Emphasized the importance of balancing study time with breaks, especially to alleviate stress or fatigue.
    • Suggested actionable steps, such as implementing discussed examples, reviewing foundational concepts, and staying well-rested before the next session.

b) Video (Thrusday): (1 hour 04 min)

Part 1: Exploring Programming Concepts: Exam Prep, Memory Allocation, and Arrays

 

d) Files:

Module 7 - Passing Arrays by Reference, Heap Concepts, and Array Reversal

e) Class Code:

Array_Manipulation_Reverse_and_Method_Demonstration

f) Exercises:

- Reversing Numbers Entered in an Array

 

g) HomeWork Solutions Posting (FB) :

 post answers or link to answer files