Author Archives: anairdoduri

New Semester, New Topics.

As we start the Spring 24 Semester we turn a new page and focus on new courses and topics which will be closely followed during the upcoming months.

 Before I go deeper into what we are focusing on this semester, let me remind everyone of you who continues to read my blog entries of who I am.

My Name is Anairdo Duri or Ano if it’s easier for any of you. I am a Junior Computer Science student at Worcester State University hoping to graduate next year.
Now that we got that out of the way let’s continue.

 The main focus of my blog entries this semester will be focusing on Software Quality Assurance & Testing. I will be looking into various topics related to Software Testing which will include Test cases and evaluation, levels of testing, unit testing, system testing, test automation, code reviews, and so on.

 Software Quality Assurance (SQA) and testing are crucial components of the software development life cycle, aimed at ensuring the delivery of high-quality software products. SQA is a systematic and comprehensive process that ensures the development and maintenance of software meet established quality standards and customer requirements.

  Testing is the process of executing a software application or system with the intent of finding defects and ensuring that it behaves as expected. Its main objectives are to identify defects and ensure they are fixed before software release, to verify that the software meets specified requirements, and to ensure the software functions correctly in different scenarios.

Photo by Sora Shimazaki on Pexels.com

 My goal this semester is to obtain a greater understanding of these two important concepts in the large spectrum of computer science concepts as I already know that it will be useful in my desired career as a computer scientist.

Let’s hope that this semester is as successful as the past ones have been and as always,

Ano out.

References:

https://www.simplilearn.com/software-quality-assurance-article
https://www.ibm.com/topics/software-testing

From the blog CS@Worcester – Anairdo's WSU Computer Science Blog by anairdoduri and used with permission of the author. All other rights reserved by the author.

The Art of Coding: Clean Code.

In the everyday life of a computer science enthusiast we are caught up in complex stuff like algorithms and coding languages, but there is a crucial aspect that we cannot overlook, writing clean code. In this blog post, I will show you some coding principles that make your code look good and make life easier for you and whoever reads your code.

  1. Clean Code is not just a fancy choice, it’s a must. Robert C. Martin says, “Clean code is simple and direct. It reads like well-written prose.” This basically means writing a clean code isn’t just for others, it’s a great help to you as well.
  2. Naming things by what they are supposed to do makes total sense. Dont aim for cryptic names, go for clarity. Think of good names as a map, it tells you what is what without a guide.

    Python Example:
    <<
    #Confusing variable name
    x = 5
    #Clear variable name
    total_items = 5
    >>

  3. Consistent formatting is your code’s best friend. Follow a set of indenting and formatting rules and stick by it till the end. Most IDE’s or coding tools make your code look neat automatically but putting some effort yourself goes a long way.

    Java example:
    <<
    // Messy formatting
    public void exampleMethod(){
    if(condition){
    statement();
    }
    }
    // Clean formatting
    public void exampleMethod() {
    if (condition) {
    statement();
    }
    >>

  4. Break things down and chop your code into smaller bits (this part exists in all of my blog posts by now). Each bit needs to have one main job or function. This makes your code easier to understand and saves you from later headaches.
  5. A little comment goes a long way. Try to think of comments as salt, a pinch is just right, and a lot ruins the dish (and gives you high blood pressure). Use your comments for tricky parts and remember to keep them updated.
  6. A lot of us are familiar with Legos which makes Test-Driven Development somewhat easier to grasp. Before building a great pyramid, try to plan it out with smaller bricks (tests). Not only does it ensure your code works but it helps in keeping things organized.

To conclude: Diving deeper into the coding world the smartest move you can make is writing clean code. Not only to impress the others but to make your life smoother. To put this in other words my generation understands writing clean code is the “ultimate flex”. Until next time keep it clean.

Ano out.

References: 
“The Clean Code Blog

by Robert C. Martin (Uncle Bob)” – https://blog.cleancoder.com/

From the blog CS@Worcester – Anairdo&#039;s WSU Computer Science Blog by anairdoduri and used with permission of the author. All other rights reserved by the author.

Late-Night Coding: Personal Experience Tips & Tricks.

As final’s week approaches I find myself coding through the night more and more accompanied by my two best friends, my IDE, and the lo-fi girl(if you know you know). Late-night coding sessions are practically a rite of passage in the computer science world as the thrill of solving problems and watching your code come to life is extremely rewarding. However, the toll it takes on your physical and mental health is also extremely undeniable. This semester I have had the privilege of sleeping most mornings as my classes and part-time jobs are in the afternoon or past that, so sleeping late at night has not bothered me as much as it would have if I had early-morning obligations. Even though I’m getting around 5-7 hours of sleep, the irregular sleep patterns and long hours in front of my computer bring challenges that are worthy of discussion.

  1. Irregular Sleep Patterns:
    Late-night coding more than often leads to irregular sleep patterns which disrupt the circadian rhythm, this results in fatigue and creates difficulties in concentrating let alone long-term health issues.
  2. Sedentary Lifestyle:
    Long periods of coding mean long periods of sitting. The sedentary lifestyle created as a result can contribute to health problems like obesity(my excuse for getting a beer belly at 20), back pain, and even cardiovascular issues. This can also decrease your stamina to the point that even going through 2 flights of stairs can cause you to have short breath.
  3. Mental Burnout:
    When you keep pushing yourself too hard for extended periods of time the only thing you’re gonna end up with is having mental burnout. Have you ever gone to class and could not remember how to write a for loop? That’s exactly what mental burnout is. The lack of motivation, increased stress, and plunged creativity are just a couple of the symptoms that can throw all your hours of coding into the trash bin.

Even though these challenges might seem harsh at first, there are some practices you could follow that ease the strain on your body during this hard work.
Creating a consistent sleep routine will lead to better health. You can sleep even during “unconventional” hours, it just matters that it remains consistent and your body will thank you for the predictability.
Taking regular breaks can combat the negative effects of prolonged work sessions. The most popular practice is the 20-20-20 rule in which every 20 minutes you look at something 20 feet away for 20 seconds to reduce eye strain. Personally, I have never liked this rule as getting away from work every 20 minutes really disrupts my workflow and most of the time it distracts me from solving particular problems that I may have been working on, so I came up with my own method. Every 50 minutes, I give myself 20 minutes of break time dedicated to anything else besides sitting in front of the computer. Stand up, do some stretching, grab a bottle of water, grab a snack, open up a window, and just stare outside. If you’re at the 50-minute mark but don’t feel like disrupting your workflow? Continue working but when the time to take the breaks comes again give yourself 5 extra minutes for every 10 minutes you kept working.
Doing something physical during the break time is even better. You can do simple exercises that do not require much room or any equipment. My personal favorites:Toe touches, that thing you do where you pretend you’re a sea lion(I forget the name of the stretch), and push-ups.

In one of my previous blog entries “Scruming through the semester”, I mentioned that breaking the work into smaller more manageable tasks helps in productivity, that advice is valuable here again as this not only makes your work more achievable but it also prevents burnouts.

What’s more important is to know when to stop. Start recognizing the burnout signs and know when to step away. Good work comes from a healthy mind and more than often the best solution to a hard problem is some good quality sleep. It’s easy to prioritize code over your well-being in the fast-paced world of computer science. However, keeping your mental well-being and physical health is a crucial step to sustain success in this field. Incorporating good and healthy habits into your coding routines can ensure that your overnight sessions are productive and sustainable in the long run. As one of my good professors has said: “You can save your code and work on it later, you can’t save your health and load it when you get sick.”.

Ano out.

From the blog CS@Worcester – Anairdo&#039;s WSU Computer Science Blog by anairdoduri and used with permission of the author. All other rights reserved by the author.

JavaFX: First Touch

Hello to all 3 people who read my blogs. Today I want to share with you the most recent reasons for my ever-so-constant headaches, JavaFX. JavaFX is a powerful framework for building graphical user interfaces (GUIs) in Java. The main reason why I’m dedicating time to it is that I need to hone my skills to make one of my projects more user-friendly and a tad bit more professional and appealing.

One of the first challenges I faced while beginning to work with it was the actual setup. Many different IDEs require a different set of requirements to be installed or added before using a specific language or module. In my personal case, setting up JavaFX with my preferred IDE which is IntelliJ proved to be a little more challenging than usual as the video tutorial I was following had an older version of both JavaFX and IntelliJ which had fewer options than my versions which made it hard to find the correct “buttons” to set everything up, but nevertheless I made it work.

When the time came to actually create the interfaces I’ll admit that I was a little overwhelmed as I did not even know where to start, but following free online tutorials helped me a lot to create my first interface. Here is a sample of what JavaFX code looks like.

// Sample code for creating a simple JavaFX UI

public class MyJavaFXApp extends Application {
public static void main(String[] args) {
launch(args);
}

@Override
public void start(Stage primaryStage) {
    primaryStage.setTitle("My JavaFX App");

    Button btn = new Button("Click me!");
    btn.setOnAction(e -> System.out.println("Button clicked!"));

    StackPane root = new StackPane();
    root.getChildren().add(btn);
    primaryStage.setScene(new Scene(root, 300, 200));

    primaryStage.show();
}

}

This code creates a new window that has a single button that says “Click Me!”

It may not look like much but after spending close to three hours just setting everything up, ending with this feels like a great achievement.

Unfortunately, the project that I am working on requires far more functionality as it is meant to do something meaningful and useful (Stay Tuned for the project blog), so my next milestone into the JavaFX journey is going to be adding this functionality and handling the different user-oriented events that will be in the framework of my project.

In conclusion, learning about JavaFX has been a very enlightening experience. I have only scratched the surface of what this framework can do but needless to say, I’m happy with my progress and far more excited about learning more in the future. If any of you fellow students are interested in GUI programming with JavaFX, I highly recommend giving it a try as there are a lot of possibilities with it and apparently, the learning curve is very rewarding.

Till next time. Ano out.

From the blog CS@Worcester – Anairdo&#039;s WSU Computer Science Blog by anairdoduri and used with permission of the author. All other rights reserved by the author.

Scrumming through the Semester

As we go towards the last “Sprint” of this semester I find it obligated to write about the Scrum methodology and how what at first appears as just “something” you deal with during a course, surprisingly turns out to be a methodology that can help you ace your academic endeavors.

Photo by cottonbro studio on Pexels.com

An explanation to my readers who are first reading about Scrum here:

Scrum is a framework used in the agile project management methodology, primarily in software development, to enhance collaboration, flexibility, and the speed of development. It provides a structured yet flexible way for teams to work together on complex projects. Key elements of Scrum include:

  1. Roles:
    • Product Owner: Represents the stakeholders and is responsible for defining the product backlog.
    • Scrum Master: Facilitates the Scrum process and removes impediments to the team’s progress.
    • Development Team: Cross-functional individuals responsible for delivering the product increment.
  2. Artifacts:
    • Product Backlog: A prioritized list of features, enhancements, and bug fixes that constitute the product.
    • Sprint Backlog: The subset of items from the product backlog that the team commits to completing during a sprint.
    • Increment: The sum of all completed backlog items at the end of a sprint, representing a potentially shippable product.
  3. Events:
    • Sprint: A time-boxed period (usually 2-4 weeks) during which a potentially shippable product increment is created.
    • Sprint Planning: A meeting at the beginning of each sprint where the team plans the work to be done.
    • Daily Scrum: A brief daily meeting where the team discusses progress, plans for the day, and identifies and removes obstacles.
    • Sprint Review: A meeting at the end of each sprint where the team demonstrates the completed work to stakeholders.
    • Sprint Retrospective: A meeting at the end of each sprint where the team reflects on its performance and identifies areas for improvement.1

Now that we got that out of the way let me show you how applying Scrum methodology as a student can help you manage your time, stay organized, and drastically enhance collaboration during those obligatory group projects.

My first step would be creating a “Student Backlog” which Identifies your academic goals, assignments, and projects. Break them down into smaller more manageable tasks and prioritize the tasks based on deadlines and importance.
Secondly, define your “Sprint length” by which I mean study periods. You can determine the duration of your “sprints” by a week or two depending on your own preferences and the nature of your tasks or assignments.
The Third point would be “Sprint Planning”. At the beginning of each sprint plan what tasks you will focus on considering your class schedule, deadlines, and other commitments. Remember to have realistic time estimates for each task.
The Fourth point is having a personal “Daily Scrum” in which you review your progress and plan for the day while identifying any challenges or roadblocks that you may face.
Scrum is all about enhancing collaboration in groups so if you have group projects, introduce scrum to your groupmates and try to implement Sprint Planning and Daily Scrums to keep everyone on the same page. I found that using tools that boost collaboration also works miracles during group projects. Tools like “Jira” or “Trello” can help you succeed during these said projects. Adaptability is a huge part of Scrum so try to be open to adjusting your plan as needed when unexpected events and new priorities arise.
The last and most important lesson that I’ve learned from scrum is to track continuous improvement. Try to get feedback from your professors, friends, mentors, and even from yourself to continually improve your studying and refine your methods based on what works best for you.

Photo by ThisIsEngineering on Pexels.com

With all that being said, I wish that everyone achieves their goals in one way or another, remember that for all of this to happen you first need to stay fit and healthy so don’t sacrifice your well-being in order to achieve “fast” results. Success takes time.

Ano out.

  1. Information from Scrum.org ↩

From the blog CS@Worcester – Anairdo&#039;s WSU Computer Science Blog by anairdoduri and used with permission of the author. All other rights reserved by the author.

Hello World!

Hello Everyone!

My name is Anairdo Duri.
I am a Computer Science student at Worcester State University.

In the ever-evolving landscape of technology, the role of a computer science student is akin to that of an explorer in uncharted territory. As we embark on this thrilling journey through the realm of algorithms, data structures, programming languages, and cutting-edge innovations, we find ourselves at the crossroads of tradition and transformation. This blog is dedicated to the passionate and curious souls who have chosen to embrace the world of ones and zeros, where code is the universal language, and innovation knows no bounds.

Welcome to a space where the binary meets creativity, where logic converges with imagination, and where the pursuit of knowledge is as endless as the digital universe itself. Whether you’re a seasoned computer science enthusiast or just taking your first steps into this fascinating discipline, our goal is to be your trusted companion, providing insights, inspiration, and practical guidance as you navigate the exciting terrain of computer science.

Together, we’ll delve into the mysteries of machine learning, dissect the intricacies of software development, unravel the secrets of cybersecurity, and explore the diverse facets of computer science that shape our rapidly advancing world. Along the way, we’ll share stories, offer tips and tricks, and connect you with a community of like-minded learners who share your passion for all things tech.

So, fasten your seatbelts, dear reader, as we embark on a journey where algorithms are our maps, and innovation is our destination. Together, we’ll explore the digital frontier, unlocking the potential of the digital age, one line of code at a time.

Photo by Josh Sorenson on Pexels.com

From the blog CS@Worcester – Anairdo&#039;s WSU Computer Science Blog by anairdoduri and used with permission of the author. All other rights reserved by the author.