Sunday, April 21, 2024

Why Does LRCC Gatekeep Its CompTIA CE Classes

gatekeeping classes by ChatGPT


Why Does LRCC Gatekeep Its CompTIA A+  CE Classes Behind a Graduation Requirement?


I'm getting ready to start Finals week at LRCC (Laurel Ridge Community College). I started my ITP100 capstone project early without the full set of instructions. Why am I doing all this work ahead of time based only on the grading rubric the professor made available? Time crunch. Wise or not, I signed up for a CompTIA A+ class from NOVA's (Northern Virginia Community College) continuing education department that runs Tue. - Fri., 9 a.m. to 5:30 p.m., for the next 2 weeks. I finished my ITE 152 class 2 months early because we were allowed to self pace. English 112 - as much as I hate English - I'm proficient and fast at it and turned my final project in last week for grading. Logic (PHIL100) class and ITP100 are all I have left. Getting the bulk of the work done for this class, where all I have to do is modify my code to conform to the actual instructions should be relatively easy.

And "why?" might you ask did I sign up for this class at NOVA? I did not verify the information provided on LRCC's website, but on their website it says if you want to take this same CompTIA class as I am from NOVA, you first have to have completed either a different CompTIA certificate or an A.A.S. in an IT field. Yes, that's correct. LRCC is the only community college in the Virginia System, that I am aware of, that requires you to complete an IT degree program BEFORE taking a CompTIA CEU course. SMH. 

Why? I've got no idea. It's not the first time I've had to deal with a gatekeeping policy at LRCC. I wanted to take a course - ITN 260 - this summer that has as a prerequisite ITN 100. I asked for and was denied permission to take them concurrently - despite the fact that I had previously passed the ITN 100 (Introduction to Telecommunications) some time ago when it was listed under the old IST program. I didn't ask to skip the prerequisite course, just to take it concurrently with another course that requires it as a prerequisite. I'm not going to elaborate on how, but I was able to have the original Dean's decision that denied my request overturned. 

I'm concerned I may have burned some bridges in getting the prerequisite waived for ITN 260, but the gatekeeping of these things is at a next level. I understand it's there for a reason, but if a student can demonstrate a sufficient reason to modify or waive it, it shouldn't take actions that burn bridges or requires a student to apply to a further away community college to get things done. Instead of butting heads with the administration again, this time over the CompTIA certification class prerequisite requirement, I chose to bypass LRCC all together in this decision. Easy enough. No fuss, no fight.

I have one other problem with LRCC's CompTIA classes - they all seem to be in-person/ on campus classes and run on a very limited schedule. NOVA's has a myriad of classes. Zoom, in-person, and hybrid; spanning multiple time frames. NOVA's classes are just more accessible vis-a-vis time and place (NOVA's summer schedule is a little tighter though than when they run classes during the regular semesters. The classes in summer also run on a condensed time frame that is still better than what LRCC offers).










Thursday, April 18, 2024

ITP100 Capstone Project

 

couple coders working in class

ITP100 Capstone Project criteria is up. 


Edit 5/11/2024: Project completed. If anyone in the future is doing their capstone project and finds this blog post here are a few pieces of advice I would give to complete the project. I encountered issues. Take a break. Sometimes you need to let your mind rest and then come back to the problem. When you run into something you think is impossible just remember: There is a way to solve this problem using the information we were taught this semester. Ask yourself, "What did we learn this semester that I can use to solve this problem?" Almost all the solutions can be attained by using the programming methods & practice we learned and did during the course. 


Right now all you can see is the rubric for grading but, there's enough information there that you can start your pseudo coding for the modules your going to create. You should be able to start coding too, you'll just need to adapt your code to whatever requirements we find once the project is unlocked Monday morning. This information is currently available to anyone in the class and you can access it here: Rubric for Capstone Project (you must be logged into your school account to see it) or just clicking on the announcement in Canvas. If your like me and use the weekend to try and get the majority of your school work done this is a big help being able to plan your logic out a few days early.

I'm assuming the project is going to be in Java (since that's what we practiced on the most), but I couldn't tell from what I read. Feel free to share any insights you have below. 


Edited: 4/19/2024 for brevity and clarity.

Edit: 4/21/204 - 

I've got to say that I'm loving this project (I'm saying this with sincerity even though I'm describing my issues below). I feel like it's really forcing me to think and learn. I've had to go back and erase half my code because something I did created an error that I couldn't figure out how to fix. The erasing, rebuilding, and trying again and again is helping to cement things in my mind in regards to how things work - all this and the project technically hasn't even opened up yet (opens up tomorrow). Do I think I'm competent in coding? No. But I'm getting better. I can look at what I've done and understand it. I can look at it and see it's missing something. When it's throwing a compilation error I'm getting better at identifying the error and (hopefully) correcting it. I've realized that my original outline was inefficient and found a way to improve it doing multiple nesting and if statements.


Wednesday, April 17, 2024

Unlocking True Digital Ownership Through NFTs and Blockchain




Unlocking True Digital Ownership Through NFTs and Blockchain

In the physical world, ownership is clear - when you purchase a book, CD or DVD, it belongs to you. You can lend it, resell it, or even misplace it without fear of it vanishing forever. But in our increasingly digital age, the ownership of virtual goods has remained limited by licensing restrictions and reliance on centralized platforms.

That could finally change through harnessing blockchain technology and non-fungible tokens (NFTs). This revolutionary approach mints a unique, secure token on the decentralized blockchain to represent verifiable ownership of a specific digital file - be it an ebook, movie, album or other content. Recorded in an immutable public ledger, the NFT acts as a certificate proving you as the singular owner of that digital copy.

The Limitations and Failures of Today's NFT Landscape

As revolutionary as the concept of NFTs sounds for enabling verifiable digital ownership, the technology's initial entry into the mainstream has been marred by failures and misuse. The first major wave of NFT projects placing crypto asset links on digital art, video clips, and other media revealed critical shortcomings:

Speculative Overhype - Rather than practical ownership use cases, most NFTs became vehicles for rampant speculative investing and wildly inflationary pricing bubbles.

Lack of Utility - Beyond serving as artificial crypto-based collectibles, the majority of NFTs failed to convey any tangible rights, utility or functional ownership over the underlying digital goods.

Scaling Obstacles - With most NFTs minted on the energy-intensive Ethereum blockchain, technical and environmental scaling challenges arose for onboarding digital ownership at a mass consumer scale.

Legally Dubious - Many NFT projects raised intellectual property concerns by tokenizing content they didn't actually have full licensing rights for long-term commercial use.

These issues exposed how the initial NFT wave was greatly disconnected from enabling any legitimate semblance of practical digital ownership rights. They became an unruly speculative playground rather than foundational ownership layer for virtual goods.

Realizing the True Ownership Vision

In order to unlock NFTs' transformative potential for representing authentic digital ownership, an entirely new approach is required that avoids these pitfalls while encoding the key principles:

The Core Concept and Key Principles

 At its core, an NFT-enabled digital ownership model aims to firmly establish and enforce property rights around virtual goods that have been sorely lacking:

True Ownership - Unlike standard licenses, an NFT represents authentic ownership over your digital item with the right to resell, transfer and lend it out.

Portable Access - Content tied to the NFT becomes a transferable asset you can access without relying on any single distribution platform.

Decentralized Rights - No central authority, app store or studio can unilaterally revoke access since ownership is encoded on the blockchain.

Open Marketplace - Owners gain the ability to buy, sell or trade digital NFTs on an open peer-to-peer marketplace enabling legal "secondhand" transactions.

The Freedom and Benefits of Legitimate Ownership

By fundamentally shifting digital media towards this verifiable ownership model, a whole new set of freedoms, revenue streams and use cases open up:

Resale/Inheritance - Just like physical goods, your e-books, movies, games and other digital files gain real, transferable value that can be resold, gifted or inherited.

True Lending - Easily and permissionlessly lend digital goods to friends, family without breaking any license terms as you temporarily transfer the associated NFT. Also applicable with public library lending.

Secondary Markets - A thriving, standardized secondhand market could emerge for digital content resales with funds going to both owners and the state (through sales tax)

Data Portability - No longer locked into a proprietary ecosystem, NFT ownership separates content licenses from access itself, making files freely portable across devices and interfaces.

Consumer Rights - NFT ownership aligns incentives in favor of true customer property rights, rather than limited licenses that grant few protections from loss of access.

Rather than blockchain-based fungible assets, these NFTs would be fundamentally architected as non-fungible licenses and ownership credentials issued through a new creator-partnered ecosystem. 

New Revenue Models - Content creators and platforms can explore new revenue streams within the boundaries of legitimate digital ownership principles. Rather than demanding cuts of secondhand sales that would violate first-sale doctrine, their income opportunities emerge from other value-added services around the ownership ecosystem itself. 

This could include rental fees for commercial lending services that provide temporary access without transferring ownership. Subscription models allowing users to access a catalog of content they don't fully own. Initial sale fees when minting new NFTs linked to their copyrighted works. And potentially additional services, certifications or utilities built atop the digital ownership platform. The key is allowing creators to find sustainable revenue flows without infringing on the public's right to resell their legitimately owned digital goods person-to-person without intermediaries taking a cut, per first-sale doctrine applied to physical goods today.

While seeding this revolution will require overcoming technical obstacles and driving mainstream adoption, the promise of bringing the idea of genuine digital ownership to the world of virtual media is an exciting frontier. Just as blockchain upended digital finance with cryptocurrencies, NFTs could permanently transform how we interact with and own our digital content and goods.

By learning from the failures of the initial NFT boom while adhering to true digital scarcity and ownership principles, a more thoughtful and sustainable path can emerge to realize NFTs' promised ownership use case for digital goods. 

The Limitations of Licensed Digital Goods

While exploring how NFTs could enable legitimate digital ownership, it's important to underscore the restrictive nature of today's licensing models for virtual content:

Limited Financial Rights - Standard licensing means you don't actually own your digital purchases in any tangible way. You cannot resell or transfer them, nurturing a sense of disposable rentals rather than property.

Risk of Lost Access - Content platforms can revoke your access at any time for Terms of Service violations or if they go out of business. Unlike physical media, your purchased item can effectively disappear.

Copy Protection Overreach - Draconian digital rights management (DRM) measures restrict basic lending and personal use rights that are taken for granted with physical goods.

Proprietary Ecosystems - Different e-book, movie and music stores create fragmented digital libraries stuck in multiple incompatible ecosystems rather than unified ownership.

Unclear Preservation - With limited ownership rights, the long-term preservation of digital libraries faces uncertainty as licensing models and technologies rapidly shift over time.

This restrictive licensed approach creates an imbalance where customers have little certainty over their purchased content compared to the latitude of true ownership. NFTs and blockchain could help realign incentives.

As we increasingly exist in digital worlds and economies, tokenizing portable ownership of the virtual items we purchase could one day feel as natural as physical possession does today. The foundations for that future may be getting laid through emerging NFT and blockchain use cases.

By replacing temporarily licensed access with authenticated blockchain-certified ownership, NFTs could help restore a sense of true custodial rights over one's digital purchases. Just as cryptocurrencies empowered individuals with self-sovereignty over their money, tokenized ownership through NFTs could become the deed codes to the virtual items we acquire.

As we increasingly exist in digital worlds and economies, tokenizing portable ownership of the virtual items we purchase could one day feel as natural as physical possession does today. The foundations for that future may be getting laid through emerging NFT and blockchain use cases.

People have been looking at NFTs incorrectly since their inception. They are trying to make millions off of a few things when they should be trying to make a few dollars off of trillions of items. At the same time beneficially conferring property rights to digital items. It's a big miss by industry thus far. I'm talking at you Mr. Wonderful.




The core concepts of this blog post are mine. I did use Claude Sonnet 3 to assist me with fleshing out my ideas, assistance in articulation, and in organizing the post.

Copyright April 17, 2024 - All Rights Reserved.


Tuesday, April 16, 2024

Java Exercise 4-1 Instructions

 

Classroom computer class - by ChatGPT


Thoughts On and Instructions For Successfully Completing Exercise 4-1


We were assigned a java programming exercise in my Software Design class the other day. I started doing it the other night after a long day of work and studying. I had no 'plan' when I started. I took some code I had created earlier from Chapter 4 and tried to modify it to fit the assignment (Each of the chapters has a "You Do It" section where they instruct you in a step by step fashion to write code that is relevant to the material you just covered in the text. It's not necessary to do the coding, but I do it every time it comes up and save it in a library of code on my laptop). I found it overwhelming and just couldn't get it. I gave up that evening feeling extremely dejected.


I woke up in the morning and decided to tackle it with a set of fresh eyes. My first problem from the night before was that I just went in and tried to 'code' the exercise with no game plan. This is where things started to get better in the morning. I went back and found the relative text in the textbook that delt with what we were being asked to do and wrote a set of directions. Afterward, I refined the directions to make them easy to understand and to make it so someone who is familiar with the class should be able to complete the lesson using them (modified them for brevity and clarity). They are below.


What I would say I learned from this is that going in without a game plan is a potential path to failure. If I was good, or at least better, at coding I could have gotten away with it. But I'm not. Using pseudo code would have probably been best from a coder's perspective. But, I'm not a coder and I work better when I can set things out with explanations and a clear set of stepped instructions. I thought I was familiar enough with the material that I could just 'modify' my previous code and get it to work. I was not.


I did not complete the whole exercise (the last step). I ran out of time to tackle that step. And, to be honest, I was just so happy to get the first part done which put me in a 'B' letter grade range that I was okay with not finishing the last step.


One of my issues with coding (to date) is that I just don't remember the form. I constantly have to look up the correct way to write something. I'm thankful that my ITP100 class has been open book for everything. If I had to do any of the requirements from rote memory I would be in a bad position. The other feature of the class that has been good so far is that only 1 assignment (midterm?) was timed. Without a time limitation I'm free to look up answers to make sure I've got it correct. Also, if any questions we have in quizzes or tests have code questions in them, the lack of a timer on them allows me to put the code in an IDE and check what I think the outcome should be with what it is in reality. That has saved me from an incorrect answer a couple of times.



(Tasks 1-5) (pages 119-124 in Java book)

1. In codespaces it's important to follow the instructions (tasks 1-6) step by step. I normally hit the 'check my grade' button to verify a task was done correctly (it's Cengage so that doesn't always work).

2. Use proper java conventions when writing out your gets and sets (the codespaces doesn’t want to give you credit if you don’t).

3. You know how to write a class

            public class ThisIsAClass

            now create one for the Sandwich class

4. The instructions give us the 3 variables (fields) we’re going to use. After writing your class, you must declare your variables. Part A of the instructions gives you all the information you need to complete this.

 

               double price;

    String mainIngredient;

    String bread;

 

 

5. This last step will  accomplish tasks 3-5. Once you do 1, you just have to repeat it 2 more times, modifying it for each data field. We are basically creating a method for working with each field (I’m trying my best to use the correct vocabulary here; I may be wrong in the terms I’m using but my output for the code is correct.)

 

A method is either public or private. I’m using public because I don’t think I’m creating new objects and I’m not worried about hiding data. We’re going to ‘get’ it first, then ‘set’ it. I’m going to use the words get and set together with my data fields. Remember this order: ‘get’ it, then ‘set’ it. 2 methods for each field. Start like this:

 

public String getMainIngredient() to make it easy to follow, and in what I believe is convention, we’re just adding ‘get’ to mainIngredient using the camel casing format and we’re going to ‘return’ the variable. It should look like this when done:

 

public String getMainIngredient()

    {

        return mainIngredient;

    }

 

After we ‘get’ it, we need to ‘set’ it. So now we create a similar method for setting. We’re going to public void setMainIngredient(String newIngredient).  What we’re doing is taking the input that we got from the prior method and setting it into are mainIngredient variable. It should look like this when done:

 

    public void setMainIngredient(String newIngredient)

    {

        mainIngredient = newIngredient;

    }

 

Just repeat this for each data field (variable) we’re going to use.    If I understand things correctly, the reason we leave the ( ) empty in the get method is because we’re getting or returning user input. In the set method, we’re now assigning the data that we got earlier to a new intermittent variable and back to the data field for use in our application.

 

Task 6 TestSandwich

(workInProgress)


Cameras, cats, and computers? This is what you get when you ask ChatGPT for a picture of a java programming class for a blog post!




Saturday, April 6, 2024

LRCC ITP100 Review

 
classroom setting with many students on computers

LRCC ITP100 Software Design Review

I recently took a beginning software design class at Laurel Ridge Community College, located in Middletown, Virginia. The course was ITP100 Software Design and it was conducted by Dr. José M. Nieves. This is my review of the professor and the class:

 

A quick note before my personal opinions on my professor(s): I work full-time. All my classes this semester (Spring 2024) were online with no Zoom meetings or classroom attendance. I think it can be difficult to judge someone personally when the class is conducted entirely online. All interactions with the professor are via email unless you schedule a meeting (in-person or Zoom) due to issues, which I did not.

 

Another thing I'd like to note is the course title - Software Design. I think the course would better named Intro To Software Design & Beginning Programming. The first couple weeks deal with software design such as the software development lifecycle and pseudo code. A lot of the class is starting to learn the basics of the Java programming language; it touches on Python in a similar fashion.


At first Dr. Nieves writing comes across as a bit pretentious. He is clear (in my opinion) on requirements in his course syllabus and module outlines. He was responsive to my emails. However, his initial responses at the beginning were not on point to my inquiries. At one point, I got terse with him, asking him to reread my email before replying (not recommended speaking that way to any professor). My patience wore thin after a few improper responses. Unfortunately, I'm not the most tactful, and my deference for position can be quickly overcome based on my age/ life experience (deference for position vs. deference for age and life experience; in other words I believe that all the professors are due respect based on their position, but I, being older than a typical college student (older than most of my professors) feel entitled to the respect of an apposite response to my inquiries and have no problem stating so as an equal in respect/deference owed due to my age and life experiences). After this brief exchange, where I received a light reprimand by Dr. Nieves about respect, all of Dr. Nieves's responses were on point and thoughtful.

 

I think an all-online beginner programming class is a mistake for those with little or no experience in a software design/ beginning programming class. I would have liked at least Zoom lectures from the professor. This isn't a reflection on Dr. Nieves but more a reality about the difficulty of learning something so new and different from what you may have learned before. If you have prior experience, you'll be fine. If you're new, you're likely to struggle. I put a lot of time and effort into this class. A lot of time. Expect it to be hard if you have little to no experience.

 

In my opinion, Professor Nieves grows on you over time. He repeatedly reminds the class about office hours and his availability to assist. I never utilized anything other than email for direct communication with him, so I can't speak on his in-person help. He coordinated and guided an extra credit activity regarding local data centers, which only a few students participated in (done via Zoom). While reading Rate My Professor, Dr. Nieves seems to get a lot of flack from students about how hard he is. I found this difficult to reconcile with the attendance for the extra credit. It leads me to believe that some people who had problems with his 'toughness' may just not have a great work ethic and are looking for an easy grade. Let me tell you now – it's not easy. It's work. I started out with an unfavorable opinion. My opinion changed over time. I think he's a professor that cares. I think learning programming is hard for people with no experience, and people have unfairly attributed the difficulty of the material to their opinion of the professor.

 

If I were to offer one criticism of the course, it would be that Dr. Nieves time-gates all the material. To me, it doesn't make sense to time-gate the material and prevent those able to proceed at a faster pace from doing so. There are no Zoom lectures or any other professor-led instructions that would warrant this policy. I would speculate that at best, it's to help the professor manage what he has to deal with when responding to student inquiries each day/week; limiting the type and amount of subject matter inquiries. If you're a fast self-pacer you will be disappointed by this restriction.


Would I take a class with Dr. Nieves again? Yes. I'm not really choosy in that manner though (unless it was someone whom I thought was terrible, then I'd avoid them). Bottom line is I'm there to learn. He's knowledgeable, capable, and approachable. He can also be reasoned with. As far as I'm concerned his grading is fair; but know that I put work in to get my (good) grade.


In conclusion,  I'm a little over a week away from our final project in this class, and my initial opinion that I am not made for software design & programming is re-affirmed after taking this class. I came into this class believing programming was not my cup of tea and I'm leaving it feeling the same way. I'm in the Cybersecurity degree program at LRCC and this is one of the required classes for the degree. There's one more I'm dreading - Python for Cybersecurity (okay, I'm also dreading Advanced Linux Administration too). In the end though (so far) I'm glad I'm being forced outside of my comfort zone in learning something new to me /hard for me. I don't regret the experience, the class, or my instructor; I view them all as beneficial to me.


Edit - 5/11/2024: Class is over. Capstone project complete. I loved the capstone project. It was hard for a beginner programmer, yet deeply satisfying to work through and apply all that we learned over the semester to complete the project. I actually got an 'A' on my project - which I was shocked on. I really thought my program looked sloppy (as I imagined an experienced programmer looking at it). I think the sloppiness was in part due to me switching my approach to a solution on more than one occasion. I was also certain the professor would find errors that I had missed in my own review of my programs functionality. If there were any, he did not fault me for them or point them out.


What has your experience been with Dr. Nieves and/or LRCC's ITP100 class? Let me know in the comments below.


another AI generated image of a classroom with computers and students




LRCC ITE221 Review

  ITE 221 PC Hardware and Operating Systems/ Dr. Leach Review Edited December 10, 2024. This Fall 2024, I enrolled in ITE 221 PC Hardware an...