CS Practicum Final Report

53

Courses

28

Certificates

12

Projects

277

Engagement Hours

554

Credit Hours

Part 1. Required LinkedIn Learning Modules

36

Courses

4

Learning Paths

11

Certificates

45

Engagement Hours

90

Credit Hours

LinkedIn Learning is an online educational platform that helps you discover and develop business, technology-related, and creative skills through expert-led course videos.

Nature of my Assignments

Lecture Videos
Lecture videos were the primary way of delivering lessons. These videos were by experts and were usually 5 minutes long.
Quizzes
Quizzes were given at the end of each module to assess my knowledge of the topics covered in the module
Assessments
Assessments were given at the end of each course to assess my knowledge of the topics covered in the course.

Courses I have Taken

Design Thinking Learning Module

  • Learning Design Thinking: Lead Change in Your Organization
  • Develop Your Creative Thinking and Innovation Skills Learning Path
  • Develop Critical-Thinking, Decision-Making, and Problem-Solving Skills

Project Management Learning Module

  • Project Management Foundation
  • Become an Agile Project Manager Learning Path

Workplace Management Learning Module

  • Develop Your Communication Skills and Interpersonal Influence
  • Time Management Fundamentals
  • Time Management: Working from Home
  • Business Etiquette: Phone, Email, and Text
  • Getting Things Done
  • Productivity Tips: Finding Your Productive Mindset Certificate of Completion

Timeline of Activities

What I have learned

For the first part of my practicum, I had to take online courses in LinkedIn Learning. Through the courses, I have learned various soft skills that would help me as a future software engineer.

For the design thinking module, I have learned what it takes to create innovative solutions. From the courses, I learned that innovation starts with critical thinking. As defined by Mike Figliuolo, one of the instructors of the courses, critical thinking is the ability to think of the correct decision given bottlenecks, problems, and limited time. Critical thinking is one of the main components of creativity. As defined by Stefan Mumaw, creativity is the ability to create solutions that are both novel and relevant. However, being creative is not enough in the industry. We must also put our creative ideas into practice by being innovative.

As for the project management module, I have learned the process of how to turn ideas into reality. The undertaking of turning an idea to reality is called a project. More formally, a project is a temporary endeavor that has a specific and unique goal, and usually a budget. There are typically two methods for managing projects. There is the traditional way of project management, and there is agile project management. For software projects, agile project management is usually used as it enables the team to quickly deliver value and change depending on the needs of the user.

Part 2. IBM DevOps and Software Engineering Professional Certificate

14

Courses

6

Mini Projects

14

Certificates

165

Engagement Hours

330

Credit Hours

Coursera is a global platform for online learning and career development that offers anyone, anywhere, access to online courses and degrees from leading universities and companies.

Nature of my Assignments

Lecture Videos
Lecture videos were the primary way of delivering lessons. These videos were by experts and were usually 5 minutes long.
Hands-on Lab
Hands on laboratories allow us try out what I have learned in the lecture videos through the hands-on laboratory
Readings
Readings were also provided to elaborate on certain topics of the courses
Interactive Modules
Interactive modules were also provided to help in reviewing the concepts taught in the lecture videos.
Quizzes
Quizzes were given at the end of each module to assess my knowledge of the topics covered in the module
Capstone
The capstone is a project where I have to demonstrate all the concepts that I have learned in the 13 courses.

Courses I have Taken

IBM DevOps and Software Engineerng Professional Certificate

  • Introduction to DevOps
  • Introduction to Cloud Computing
  • Introduction to Agile Development and Scrum
  • Introduction to Software Engineering
  • Hands-on Introduction to Linux Commands and Shell Scripting
  • Getting Started with Git and GitHub
  • Python for Data Science, AI & Development
  • Python Project for AI & Application Development
  • Introduction to Containers w/ Docker, Kubernetes & OpenShift
  • Application Development using Microservices and Serverless
  • Introduction to Test Driven Development (TDD)
  • Continuous Integration and Continuous Delivery
  • Application Security and Monitoring
  • DevOps Capstone Project

Timeline of Activities

What I have learned

In the second part of my practicum, I had to get my IBM DevOps and Software Engineering Professional Certificate through Coursera. In this professional certification, I learned what it takes to be a modern software engineer. The topics that I have learned range from software engineering, DevOps, practices, and tools.

One huge focus of the professional certificate was on DevOps. To understand DevOps, we must first understand what Agile development is. As defined by John Rofrano, the instructor of the professional certificate, agile development is an iterative approach to development done by responsive teams whose purpose is to deliver value to the customer faster. DevOps on the other hand is the extension of the agile development environment to operations that aims to change the process of software delivery. The DevOps methodology tears down organizational silos including development and operations to enable the organization to deliver the software to the user in the best way possible. Through this organizations can leverage and enable disruptive technology.

The professional certificate also covered Software Engineering. Topics that were discussed include the software development lifecycle, the basics of programming, and software architecture design and patterns. While I am already quite familiar with these concepts, the certificate was able to refresh my knowledge of the basics of Software Engineering.

Part 3. Metacrafters Courses

3

Courses

6

Projects

3

Proof of Learns

67

Engagement Hours

134

Credit Hours

Metacrafters is a web3 education platform where developers can Learn & Earn: earn rewards while learning, mentoring others, and upskilling towards a new career. Empowering the builders of the metaverse.

Nature of my Assignments

Lecture Videos
Lecture videos were the primary way of delivering lessons. These videos were by experts and were usually 5 minutes long.
Readings
Readings were also provided to elaborate on certain topics of the courses
Quizzes
Quizzes were given at the end of each module to assess my knowledge of the topics covered in the module
Challenges
In between modules, challenges were provided so that we could test out the concepts that were discussed
Projects
Projects were also given at the end of each module to show our knowledge of the topics covered in the module

Courses I have Taken

IBM DevOps and Software Engineerng Professional Certificate

  • JS PROOF: Beginner Course
  • ETH PROOF: Beginner EVM Course
  • ETH + AVAX PROOF: Intermediate EVM Course

Timeline of Activities

What I have learned

In the final part of my practicum, I had to take three courses in Metacrafters. These courses include a beginner JavaScript course, a beginner Solidity course, and an intermediate Solidity and Avalanche course.

The first course I took was the beginner course on JavaScript. Since I am already familiar with JavaScript, the course was mostly a review for me. However, despite this, I was able to pick up a couple of new things about the JavaScript programming language such as type coercion. All in all, the course was a good refresher on programming with JavaScript.

The second course I took was the beginner solidity course. The course was mostly a review because I have already done some development of solidity in the past. However, despite being familiar with solidity, I still found a couple of new things to learn about the language. The course ended with a project where I needed to create a smart contract that allows users to mint and burn coins. Overall, I gained a deeper understanding of the syntax of solidity through this course.

The third and final course was the intermediate Solidity and Avalanche course. The course discussed more advanced topics in the Solidity programming language such as functions, proxy contracts, and front-end integration. The course also discussed fallback and payable functions, abstract contracts and interfaces, ERC Contracts, and deploying contracts to the Avalanche C Chain.

Overall Synthesis

My practicum was primary divided in three parts. The first part was my required modules that I had to take in LinkedIn Learning. The second part was the IBM DevOps and Software Engineering professional certificate which I had to take in Coursera. The third and final parts were the three modules I had to take in Metacrafters.

Through the three parts of my practicum. I have also learned a lot of new knowledge and skills that I can apply once I am in the workplace. Through my required modules, I have learned how to improve my soft skills including my creativity, critical thinking, project management, and time management. I have learned more about software engineering and DevOps through my professional certificate. I have also learned more about blockchain and smart contracts throughout the course in Metacrafters.

These skills and knowledge would be especially useful for me once I become a part of the workforce as a Junior Software Engineer. For example, as a software engineer, I will be working in a team, and creativity, critical thinking, and communication will be especially useful. The practices and technologies such as test-driven development, CI/CD, and microservices will be especially useful as these are commonly used in the industry. Learning about blockchain and smart contracts also opens more possibilities for innovation and employment.

Through the courses, I have also realized how much more there is to learn. Most of these, we will not be able to learn just by following instructions and watching video lectures. These could only be learned by experiencing them and by actually doing them. However, despite the overwhelming amount of untapped knowledge out there, I am more confident in my skills, and I now have a better idea of which areas I need to improve on.

I also honestly did not expect that learning the modules would be as hard as it was. At first, I thought that if I just need to make some time to watch the modules, I would be doing fine. However, I quickly realized that just allocating time for watching the modules is not enough since I also had to absorb the lessons from the modules. By rushing through the modules, I was able to get a lot done, but I couldn’t learn as much as I want to.

From this experience, I learned how important it is to pace yourself when you are doing work. While it may be tempting to accomplish work all in one go, this increases the risk of having low-quality outputs. In addition to this, I also realized that pacing work improves health. By allocating time, I was able to avoid burning out and I was able to make time for self-care.

All in all, I found the experience of doing this practicum an eye-opener. It opened my eyes to new practices, technologies, and tools. I was able to gain a deeper understanding of these through the courses I have taken. Most importantly, my eyes were also opened to the areas I could improve to become a complete Software Engineer.