Category Archives: CS@Worcester Blog

Artificial Intelligence and its future

Artificial intelligence (AI) is intelligence demonstrated by machines, as opposed to natural intelligence displayed by animals including humans. Leading AI textbooks define the field as the study of “intelligent agents”: any system that perceives its environment and takes actions that maximize its chance of achieving its goals, Some popular accounts use the term “artificial intelligence” to describe machines that mimic “cognitive” functions that humans associate with the human mind, such as “learning” and “problem solving”, however, this definition is rejected by major AI researchers.

AI in healthcare:

AI in healthcare has gained significant traction during the pandemic. AI has taken on a much bigger role in healthcare during the pandemic. The White House partnered with AI research institutions to mine scientific literature to better understand Covid-19. Biotech companies and big tech players leveraged AI to understand the structure of the novel coronavirus to expedite drug discovery. Social distancing and lockdown measures forced medical labs to accelerate their digital pathology capabilities.   Amid economic uncertainties, healthcare AI companies raised recording funding in Q3’20.

AI will change healthcare by 2030:

This article is part of the World Economic Forum Annual Meeting. By 2030, AI will access multiple sources of data to reveal patterns in disease and aid treatment and care. Healthcare systems will be able to predict an individual’s risk of certain diseases and suggest preventive measures. AI will help reduce waiting times for patients and improve efficiency in hospitals and health systems. The first big consequence of this in 2030 is that health systems are able to deliver truly proactive, predictive healthcare.

AI and the Future of Work:

A recent study from Redwood Software and Sapio Research underscores this view. Participants in the 2017 study said they believe that 60 percent of businesses can be automated in the next five years. On the other hand, Gartner predicts that by 2020 AI will produce more jobs than it displaces. Dennis Mortensen, CEO and founder of, maker of AI-based virtual assistant Amy, agreed. “I look at our firm and two-thirds of the jobs here didn’t exist a few years ago,” said Mortensen.

In addition to creating new jobs, AI will also help people do their jobs better — a lot better. At the World Economic Forum in Davos, Paul Daugherty, Accenture’s Chief Technology and Innovation Officer summed this idea up as, “Human plus machine equals superpowers.” 

Potential to transform businesses and contribute to economic growth:

These technologies are already generating value in various products and services, and companies across sectors use them in an array of processes to personalize product recommendations, find anomalies in production, identify fraudulent transactions, and more. The latest generation of AI advances, including techniques that address classification, estimation, and clustering problems, promises significantly more value still. An analysis we conducted of several hundred AI use cases found that the most advanced deep learning techniques deploying artificial neural networks could account for as much as $3.5 trillion to $5.8 trillion in annual value, or 40 percent of the value created by all analytics techniques. 

Deployment of AI and automation technologies can do much to lift the global economy and increase global prosperity, at a time when aging and falling birth rates are acting as a drag on growth. Labor productivity growth, a key driver of economic growth, has slowed in many economies, dropping to an average of 0.5 percent in 2010–2014 from 2.4 percent a decade earlier in the United States and major European economies, in the aftermath of the 2008 financial crisis after a previous productivity boom had waned. AI and automation have the potential to reverse that decline: productivity growth could potentially reach 2 percent annually over the next decade, with 60 percent of this increase from digital opportunities.

Work Cited:

Artificial intelligence – Wikipedia

The Role of Artificial Intelligence in the Future of Work | Blogs | CDC

AI, automation, and the future of work: Ten things to solve for (Tech4Good) | McKinsey

From the blog CS@Worcester blog – Syed Raza by syedraza089 and used with permission of the author. All other rights reserved by the author.

Where Programming, AI and Cloud are headed in 2021?

This study is based on title usage on O’Reilly online learning. The data includes all usage of O’reilly platform, not just content that O’Reilly has published, and certainly not just books. I have included search data in the graphs.

Programming languages:

In the first figure, you can see year-over-year growth in usage, and the number of search queries for several popular languages. The top programming languages according to O’reilly are Python (up 27%), Java (down 3%), C++ (up 10%), C (up 12%), and JavaScript (up 40%). Looking at 2020 usage rather than year-over-year changes, it’s surprising to see JavaScript so far behind Python and Java. (JavaScript usage is 20% of Python’s, and 33% of Java’s).

Past the top five languages, Go has grown 16% and Rust has grown 94%. Go has clearly established itself, particularly as a language for concurrent programming, and Rust is likely to establish itself for “system programming”

Figure 2 shows what happens when you add the use of content about Python, Java, and JavaScript to the most important frameworks for those languages.

Adding usage and search query data for Spring (up 7%) reverses Java’s apparent decline (net-zero growth). Looking further at JavaScript, if you add in usage for the most popular frameworks (React, Angular, and Node.js), JavaScript usage on O’Reilly online learning rises to 50% of Python’s, only slightly behind Java and its frameworks.

None of these top languages are going away, though their stock may rise or fall as fashions change and the software industry evolves.

We see several factors changing pro‐ gramming in significant ways:

Multi Paradigm languages:

Since last year, According to O’reilly there is a 14% increase in the use of content on functional programming. Object oriented programming is up even more than 29% growth as compared to functional programming since last year. Starting with Python 3.0 in 2008 and continuing with Java 8 in 2014, programming languages have added higher-order functions (lambdas) and other “functional” features. Several popular languages (including JavaScript and Go) have had functional features from the beginning. This trend started over 20 years ago (with the Standard Template Library for C++), and we expect it to continue.  

Concurrent programming:

Platform data for concurrency shows an 8% year-over-year increase.Java was the first widely used language to support concurrency as part of the language.Go, Rust, and most other modern languages have built-in support for concurrency. Concurrency has always been one of Python’s weaknesses.

Dynamic versus static typing:

The distinction between languages with dynamic typing (like Ruby and JavaScript) and statically typed languages (like Java and Go) is arguably more important than the distinction between functional and object-oriented languages. Python 3.5 added type hinting, and more recent versions have added additional static typing features. TypeScript, which adds static typing to JavaScript, is coming into its own (12% year-over-year increase).

Low-code and no-code computing: 

low-code is real and is bound to have an effect.Spreadsheets were the forerunner of low-code computing. When VisiCalc was first released in 1979, it enabled millions to do significant and important computation without learning a programming language. Democratization is an important trend in many areas of technology; it would be surprising if programming were any different.

AI, Machine Learning, and Data:

Healthy growth in artificial intelligence has continued: machine learning is up 14%, while AI is up 64%; data science is up 16%, and statistics is up 47%. While AI and machine learning are distinct concepts, there’s enough confusion about definitions that they’re frequently used interchangeably. We informally define machine learning as “the part of AI that works”; AI itself is more research oriented and aspirational. If you accept that definition, it’s not surprising that content about machine learning has seen the heaviest usage: it’s about taking research out of the lab and putting it into practice. It’s also not surprising that we see solid growth for AI, because that’s where bleeding-edge engineers are looking for new ideas to turn into machine learning.

It’s possible that AI (along with machine learning, data, big data, and all their fellow travelers) is descending into the trough of the hype cycle. We don’t think so, but we’re prepared to be wrong. As Ben Lorica has said (in conversation), many years of work will be needed to bring current research into commercial products. 

The future of AI and machine learning:

  • Many companies are placing significant bets on using AI to automate customer service. We’ve made great strides in our ability to synthesize speech, generate realistic answers, and search for solutions.
  •  We’ll see lots of tiny, embedded AI systems in everything from medical sensors to appliances to factory floors. Anyone interested in the future of technology should watch Pete Warden’s work on TinyML very carefully.
  • Natural language has been (and will continue to be) a big deal. GPT-3 has changed the world. We’ll see AI being used to create “fake news,” and we’ll find that AI gives us the best tools for detecting what’s fake and what isn’t.

Web Development:

Since the invention of HTML in the early 1990s, the first web servers, and the first browsers, the web has exploded (or degenerated) into a proliferation of platforms. Those platforms make web development infinitely more flexible: They make it possible to support a host of devices and screen sizes. They make it possible to build sophisticated applications that run in the browser. And with every new year, “desktop” applications look more old-fashioned.

The foundational technologies HTML, CSS, and JavaScript are all showing healthy growth in usage (22%, 46%, and 40%, respectively), though they’re behind the leading frameworks. We’ve already noted that JavaScript is one of the top programming languages—and the modern web platforms are nothing if not the apotheosis of JavaScript. Twenty-five years later, that’s no longer true: you can still “view source,” but all you’ll see is a lot of incomprehensible JavaScript. Ironically, just as other technologies are democratizing, web development is increasingly the domain of programmers.

Clouds of All Kinds:

It’s no surprise that the cloud is growing rapidly. Usage of content about the cloud is up 41% since last year. Usage of cloud titles that don’t mention a specific vendor (e.g., Amazon Web Services, Microsoft Azure, or Google Cloud) grew at an even faster rate (46%). Our customers don’t see the cloud through the lens of any single platform. We’re only at the beginning of cloud adoption; while most companies are using cloud services in some form, and many have moved significant business-critical applications and datasets to the cloud, we have a long way to go. If there’s one technology trend you need to be on top of, this is it.

The horse race between the leading cloud vendors, AWS, Azure, and Google Cloud, doesn’t present any surprises. Amazon is winning, even ahead of the generic “cloud”—but Microsoft and Google are catching up, and Amazon’s growth has stalled (only 5%). Use of content about Azure shows 136% growth—more than any of the competitors—while Google Cloud’s 84% growth is hardly shabby. When you dominate a market the way AWS dominates the cloud, there’s nowhere to go but down. But with the growth that Azure and Google Cloud are showing, Amazon’s dominance could be short-lived.

While our data shows very strong growth (41%) in usage for content about the cloud, it doesn’t show significant usage for terms like “multi cloud” and “hybrid cloud” or for specific hybrid cloud products like Google’s Anthos or Microsoft’s Azure Arc. These are new products, for which little content exists, so low usage isn’t surprising. But the usage of specific cloud technologies isn’t that important in this context. usage of all the cloud platforms is growing, particularly content that isn’t tied to any vendor. We also see that our corporate clients are using content that spans all the cloud vendors; it’s difficult to find anyone who’s looking at a single vendor.

Security and Privacy:

Security has always been a problematic discipline: defenders have to get thousands of things right, while an attacker only has to discover one mistake. And that mistake might have been made by a careless user rather than someone on the IT staff. 

CISSP content and training is 66% of general security content, with a slight (2%) decrease since 2019. Usage of content about the CompTIA Security+ certification is about 33% of general security, with a strong 58% increase. 

It’s disappointing that we see so little interest in content about privacy, including content about specific regulatory requirements such as GDPR. We don’t see heavy usage; we don’t see growth; we don’t even see significant numbers of search queries.

Work cited: 


Where Programming, Ops, AI, and the Cloud are Headed in 2021 – O’Reilly (

From the blog CS@Worcester blog – Syed Raza by syedraza089 and used with permission of the author. All other rights reserved by the author.


Hello, My name is Syed Minhal Raza. My major is Computer Science and I am a junior student at Worcester State University

From the blog CS@Worcester blog – Syed Raza by syedraza089 and used with permission of the author. All other rights reserved by the author.

Expose your ignorance

Hello everyone and welcome back to another apprenticeship patterns blog post which is going to about expose your ignorance for CS 448. I think it’s an important pattern because I was in the same situation because I was uncomfortable with having the idea I didn’t know what I was doing and I didn’t want other people to think I don’t know what I do so I would stay quiet and try to guess what’s going on and it wasn’t working so well for me just like the article says. I now think it’s better to let people know what you are struggling on so that they can help you through your problems. When I first started my internship at an IT company, I first let everyone know that I didn’t know much or anything about IT, and everyone was very understandable and help me through it. I think if I would of stay quiet and act like I knew what I was doing it would of cause more harm than if I didn’t. I know that in ordered to learn more and grow, you must expose your weakness. I think this pattern does a good explaining that you should find your weakness and work on it and add more to the list as you go and don’t be a shame of it. I agree that you must show the process through your journey for the people that depend on you to know your stuff because if you don’t then you would show no promise. It’s also important to build a strong relationship with people as you are in your journey. All in all, I think this pattern was important because it highlights most of the stuff that should make you successful when on a journey to be a craftsman. I don’t disagree with anything in this article because most of the stuff that it goes, I try to follow every day because its good advice which I hear from successful people. I think it’s important to honest with your self and knows that you still learning and everyone doesn’t know everything and everyone is still learning

From the blog CS@Worcester – Phan's CS by phancs and used with permission of the author. All other rights reserved by the author.


Hello everyone and welcome to another and last sprint retrospective blog post for CS 448. Today I’m going to talk about what went on during our last sprint which is sprint 6. First, what I work on was finishing up the presentation. The steps I took during my steps to finishing up the presentation is that I reverted to the old commit of my original Ampath template because my slides would be about the beginning phases of the project. I made demo clips of both the old left navigation bar and the new left navigation bar to show how it would function. I also created a slide on how to create a blank angular project. I wanted to show I took stuff from the previous class 348 and implement them in this class 448. I also made a slide for the HTML code and the CSS code and I’m planning to explain them during the presentation on Wednesday the 15th. Our group has been working hard to get the presentation finished and we decided that each of us would do 5 slides each. The 5 slides would be about which member work during this semester. I think that we are about done, and the project looks great. During this sprint we didn’t plan much because we were approaching the deadline, so we wanted to just focus our full attention on the polish version of our Ampath project. Mike is going to be presenting the dropdown box during the presentation day and Tim is going to talk about the conversion from GitLab to GitHub. Kat is going to go over the Angular imports and the features that she added. Yensia is going to go over the rest of the Ampath project that she was working on during this semester. All in all, I think I learned a lot during this semester because I felt like this was a good simulation of what a job would be like. I feel way more comfortable in scrum than before. I think the weekly meetings help get used to always working and making sure I stay involve and keep the members of my group updated. I believe that our group works great together and we got many kinds of stuff done during this semester. I think that the left navigation bar was exactly what Greg was asking for at the beginning of the semester. Also, I learned more about Angular while working with this Ampath project. I don’t think there should be any improvements as I thought that the semester went very smoothly, and everything works out. In conclusion, this is the last sprint and the end to a very successful semester and my group was great and I enjoy this experience.

From the blog CS@Worcester – Phan's CS by phancs and used with permission of the author. All other rights reserved by the author.

Sprint 5

Hello everyone and welcome back to another sprint blog post for CS 448. Today blog post is about what I did in Sprint 5. In sprint 5 I focus most of my time working on the presentation. I brain several ideas on what I was going to go over in the final presentation day. During this time, our team was working on a specific feature for the Ampath project. During the meetings we would discuss how we would improve the Application. We would help one another when needed and would advise each other on how to improve the in certain areas. During the project we came into a couple problems because in the beginning as I was creating the project I create it in Gitlab instead of GitHub so that a merging error which we eventually got the project to be converted, thanks to Tim who is a member of our group. I believe the merging and converting took a couple’s days, so we had to wait to push certain commits until the project conversion from Gitlab to GitHub. We are still working on merging our component to the group’s component because the problem that we came across was that the alignment wasn’t right. Also, during this sprint, we were looking into library type things in Angular. We also finished keeping an eye out for Zeplin shared folder – where designs will be. I would also like to say during this sprint we work well together as usual and everyone contribute equally. Mike was working on the drop-down box which he added many cool features. I also had many of the of the meetings on Tuesday and Friday done during this week’s sprint. All in all, I learned a lot from this week sprint 5 like that creating a project and GitLab and trying to paste it in GitHub creates major problems and time to fix. I also learned more about how Angular works by working on this Ampath project during this week. I am also improving on working as a group in scrum while working on this project during this week sprint 5. I think the plan for next week is to finish up on the presentation and have a working polished project to present. I believe that we will have those requirements by the end of the next sprint. To finish up this blog post I would like to go over the objectives for this week sprint 5. First, to get the presentation started and have a template of ideas. Second, we would also be close to finished with the application because we were approaching the end of the last sprint week. Finally, to learned more on Angular applications.

From the blog CS@Worcester – Phan's CS by phancs and used with permission of the author. All other rights reserved by the author.

Find Mentors

Hi everyone and welcome to another apprenticeship pattern blog post. Today apprenticeship blog post is going to about find mentors which I think is important because I’m doing the same thing in my new internship. I realize when you new to your craft or job it’s important because to always ask a question and help when needed and there should be someone you can count on. I agree with this pattern because when working and you come across a problem and have no idea how to fix it, you will need guidance and that will be your mentor. I think the best way to learn is to listen to those who have to be there before. I also agree that everyone will always find a mentor because I think there always someone that is willing to help anyone new that needs help. There might even be more than one mentors that will supervise an apprentice for example in the new job I have many people helping when I have trouble with a problem. I also agree that real-world apprentices have to scratch and claw their way into the lives of master craftsmen and are grateful for whatever attention they can get because I think that some mentors don’t if you want to learn or not so I think it always best to ask question and try to shadow the mentors as much as possible. I agree that when finding a mentor, you shouldn’t expect the mentor to know everything because no one does, and you are still walking the long road too. I like how the actions give a good tip on finding a mentor because it’s important to find the right one especially one the is patient with you. All in all, I think this apprenticeship pattern find a mentor is helpful and important. I know when I first started my job, I was looking for a mentor to help me when needed and I lucky to have a few that is patients with me. I feel like it was really important because I don’t think I can progress fast without taking the knowledge of others.

From the blog CS@Worcester – Phan's CS by phancs and used with permission of the author. All other rights reserved by the author.

Sprint 4

Hi everyone and welcome back to another sprint retrospective blog post. This will be the fourth sprint retrospective blog post of this semester. During this sprint number 4, we had many objectives completed. We added some new features like the hyperlinks to the database so that when the tab has been clicked it would navigate to the new link. We reformat the whole prototype so it would look more cleaner and more better-looking product. We decided on what device we were going to scale the application to which was an iPad mini. The scale will only look exact on that certain device and not any other because we haven’t made that a priority. We are just waiting to have a working finished prototype before thinking ahead and making the applications more universal. The styling was easy, once we decided the font, color, etc. Every meeting we had went smoothly as we discuss the future of our component. There some of the stuff that we are still working on like moving the Trello issues to GitHub and investigate the library type things in Angular. So far have been using a device simulator to test the applications as it is the closest thing, we can to think of to test it. We did more research on mobile angular documentation so we can benefit from the perks that mobile angular has to offer. We added a couple of new stories to our sprint backlog. First, as a developer working on ng2-amrs I need to learn about testing in Angular so I can write tests for our new code. Also, as a developer working on ng2-amrs I need to watch the provided YouTube tutorials on the #ampathoffcial Slack channel, to get a better idea about what kind of web applications we’re building. I also started working on the PowerPoint for our presentation because we are almost coming to the end and finishing our application. We also finished some of doing task which we move to done column like for example we moved keep an eye out for Zeplin shared folder – where designs will be to done folder and sign up for zeplin – send info to bio Greg – verify email. There is some other task that we are also working on the side like figuring out the mocking database, duplicating amrs service – possibly using json file to store data. All in all, we are almost finish with the ampath left navigation bar application. Everyone in the group so far has done a good job contributing to the project. We doing a good job coming up with new feature to add to the project every meeting we have. We can very familiar with the method of scrum now and see why it is a great system when working with a group because it keeps everything organize so things will move smoother. I also like to mention that I like where we are at in the project and happy with how the product has turn out so far.

From the blog CS@Worcester – Phan's CS by phancs and used with permission of the author. All other rights reserved by the author.

sweep the floor

Hello everyone and welcome back to another apprenticeship pattern blog post. Today blog post is “sweep the floor” which Is basically about what happens usually you’re a newcomer. The task will be simpler than you expect but as the more you learn the more skill you become and eventually you will start to have more complex tasks. I learned that when you are in a team and you don’t know your place on the team and the team is unsure of you, you should try to find some way to contribute so you can earn some trust from the new team. I agree with this completely because when I start with a new team I always try to contribute as much as possible, so I don’t feel like I’m not contributing. I learned from experience that it’s best to contribute early as possible because you don’t want to give a wrong impression even if you don’t mean it. The more you put in to the project the more people will respect you because if you don’t put in any effort, they will all think that you shouldn’t be on the team and you don’t know what you are doing. I learned that its’s really important to volunteer for any task even if the task is not unglamorous but necessary tasks. I agree that it show you can do any job and gives you a chance to display your work. I learned that I should tackle the grungiest task that everyone is putting off because it will show people that you know what you are doing and it’s a way to exceeds people’s expectations. Always try to make the task more creative so that it can be more fun to work on. All in all, I think this individual apprenticeship pattern sweep the floor is really important pattern to learn because it teaches you how to function when working within a new group. I took a lot from this pattern and agree with every information that it gives. I have implemented most these tips in my daily life and benefit from them.

From the blog CS@Worcester – Phan's CS by phancs and used with permission of the author. All other rights reserved by the author.

Sprint 3

Hello everybody and welcome to another sprint retrospective blog post. Today sprint retrospective blog post about what I have done during sprint 3. Some of the things we had on our sprint backlog is if we have login information – examine screen code for some examples of screens on AMPATH site. Figure out if we’re getting information to access AMPATH site. If we have time – read more about Angular unit testing – mocking. If we have time – read more about Angular unit testing – mocking. Read mobile angular docs I also sign up for Zeplin and send my information to Greg so he can verify my email. I also kept an eye out for Zeplin shared folder – where designs will be. I also to work on the navigation bar tool for the Ampath project. I created a skeleton for the Ampath project and discuss roles for stories that will about the project. After the second sprint I realize that I was getting more comfortable with scrum. I can now easily now login on to Trello and understand what’s going on and what I can do and what other did and are in the progress of doing. When I finished the skeleton, I posted on Gitlab instead of Github because there wasn’t a repository for at the moment and I was more comfortable with Gitlab. I also lookup more sample of a navigation bar so I can see what features other navigation contains. One of the problems that I have so far was to get the toggle button to drop down when click because the code actually to drop down when hover. I think the scaling of the project is not going to be a problem because I tested the component and it look fine in a iPhone simulator. There were others stuff I think has to be done like adding information and hyper link to the navigation tabs so that when clicked it would navigate to a different view controller. I think design is also important later to make the component more presentable. I also ran the project on a web browser, and it was fine too. During the standup, I got more comfortable with the time schedule. I haven’t missed a stand up. I realize the importance of the standup so that we can keep track on our progress. All in all, I think this sprint all went very well, we got a lot done, I think. I also found many ideas on how to show that link actually works by inserting hyperlinks and navigate to that site. I think it is a good way to show how the component performs. I didn’t have much problem during this sprint and expecting the same going forward. The only problem is that we don’t have access to the service right, but I don’t think its issue because we don’t really need it to have the component to work. This sprint was fun, and everyone was on the same page, until the next sprint retrospective blog

From the blog CS@Worcester – Phan's CS by phancs and used with permission of the author. All other rights reserved by the author.