Welcome to Jeremy Huesman’s Homepage!
Professional Self-Assessment
Since starting my computer science course, we have learned various skills and topics. Before starting my course, I had worked on fixing computers for friends and family. I had completed the CompTIA A+ certification before enrolling as I was looking to switch to the technology field. During the degree program, I made this switch to a helpdesk job. The courses have helped me gain more understanding of the workings of computers from a programming point of view. I have been able to move up to another position to continue growing in this new career.
Collaborating in a Team Environment
Collaborating in a team environment is important at all levels of Information Technology. The collaboration tools and processes we learned about in CS-250 Software Development Lifecycle had us working with agile and waterfall methods. CS-350 Emerging System Architecture and Technology, we worked with more advanced diagramming techniques that are useful for planning our project to keep the team on track. In CS-310 Collaboration and Team project as a class, we worked together making commits to a codebase with GitHub and bitbucket. The classes helped reinforce the need for team collaboration in the workplace.
Communicating to Stakeholders
The classes referenced in team collaboration also helped reinforce working with the stakeholders and customers. Creating the workflows, charts, and diagrams for the stakeholder’s product provides us with a way to present how we will accomplish what they are requesting. We need to be able to speak in layman’s terms if we are dealing with a non-technical customer and these tools provide a way to visualize the outcome and steps needed to complete the project.
Data Structures and Algorithms
During the degree program, we were introduced to data structures and algorithms in CS-260 represented in Artifact two. Artifact two in my ePortfolio represents this as one of the main categories highlighting its importance in computer science. We worked using these tools to design solutions to the problems given to us. Taking a CSV file and running a binary search tree on it with the provided menu showcases how useful they can be. It allows the user to select from different sorting choices and displays those that fit the criteria. CS-340 Client-Server Development further built upon these concepts to create a system that interacted with a database and provided a G.U.I. on the client-side. During CS-340, we worked on implementing C.R.U.D functions that can be performed on the database from the G.U.I.
Software Engineering
Software engineering was a key concept throughout the degree program. An example of the work done is showcased in artifact one of this portfolio. CS-330 Computer Graphics and Visualization had us set up a scene at our house and take a picture. We then had to take that picture and create it using C++ and OpenGL. We learned to incorporate libraries and adhere to coding best practices when creating our 3D scene. The use of good commenting made it easy to go back and fix the issues I encountered during the project so I could fix and improve them for artifact one. In CS-350 Mobile Architecture and Programming, we had to create a mobile application for Android. We had to use the skills learned in previous courses to create a fully working program to create the application.
Databases
Databases were also a key concept in the degree program. An example of this is represented with artifact three. The course DAD-220 gave us an introduction to working with databases and doing basic C.R.U.D functions to it. These concepts were further reinforced by courses DAT-220 Fundamentals of Data Mining and CS-340 Client/Server Development. We had to work with the databases to pull the correct data and display it to the user. The course work provided us with knowledge of data analysis and manipulation. The CS-340 class had us develop a G.U.I. for the user to interact with data.
Security
The Computer Science program also had us work to ensure our code is secure. CS-320 Software Test, Automation, and Q.A. had us develop unit tests to check our code. CS-405 Secure Coding took testing and checking our code a step further by using CPPCheck to search for vulnerabilities in the code and implementing a better solution to fix the security. The course taught us how to use the tools to find the problems and develop a software development policy that a company would use for the team to adhere to and follow. During CS-405, I learned about null pointers and SQL injections. Working with and seeing what harm they can do was valuable to me in reinforcing a security mindset.
Artifact Introduction
The artifacts I selected for my portfolio showcase a range of projects. Artifact one showcases the knowledge of working with C++ and OpenGL libraries to take a real-world picture and translate it into a 3D scene. The second artifact is a binary search tree that demonstrates working with data structures and algorithms. The project can load a CSV and sort the data based on the user’s choice selected from the menu. The third artifact shows my ability to create a database and tables so that I could add information to them. I could then run commands to manipulate the data. All three artifacts combine to show the wide range of knowledge I have learned through the Computer Science program here at S.N.H.U.
Code Review of the Three Artifacts
Link to the code review of my three artifacts for the CS-499 Capstone Code Review
Category One Enhancement - Software Design and Engineering
The first artifact in my portfolio, Artifact 1 - Jeremy Huesman.zip, is the 3D scene I created for CS-330 Computer Graphics and Visualization course. The project showcases the software and design skills of the Computer Science program. The user can move about the 3D environment and see the objects from all angles. We learned how to apply textures to our objects so that they would replicate the object correctly.
I included this artifact in my ePortfolio to demonstrate the skills of working with C++ and OpenGL. I had to create functions that would take the triangles and render them into the shapes necessary to create the 3D object. Building the functions makes it easier for us to reuse the code and adjust the shape through the main code. The artifact also helps showcase good commenting and following industry standards of variable namings.
To improve and enhance the project, I worked to fix the movement and lighting issues I had during the course. I fixed the lighting and got it working correctly, which I ran into issues with during the coursework. Once I had it working, I could place it correctly in the scene. I also improved the controls to make movement smoother and easier to control for the user. Previously it would move too fast, making it hard for the user to navigate.
Category Two Enhancement - Algorithms and Data Structure
The second artifact in my portfolio: Artifact 2 - Jeremy Huesman, is the binary search tree from CS-260 Data Structures and Algorithms. The search tree uses nodes to search the CSV file to display and sort bids pulled from the CSV file. The user is presented with a menu that provides the options to work with the data from the CSV file.
The binary search tree is included in my portfolio because it showcases working with an algorithm to retrieve the information needed. The program also shows how we can provide choices to the user so that they can sort through a data file to retrieve the necessary information. It is another example of following good commenting and adhering to the industry-standard structures. Following these guidelines makes it easier for the next person working on the code to understand what is being done.
I made enhancements to this project to give the user more options for working with the dataset. I also worked to find the best way to have the file loaded to pull the information requested that was the most efficient. During the courses, we learned that making our code as efficient as possible is what we should strive to accomplish. Giving the user more options for working with the data helps them get the information needed as quickly as possible.
Category Three Enhancement - Databases
The third artifact in my portfolio, Artifact 3 - Jeremy Huesman, is the project from DAD-220 Introduction to Structured Database Environments. We worked in a preconfigured environment to work with a MySQL database. Databases were created along with new tables. We then added data to the table and ran commands to pull the correct information from different tables and display it to the user.
The project helps showcase the database knowledge I gained throughout the degree program. The artifact ran basic C.R.U.D functions on the database and helped familiarize us with creating statements to pull the required information. This artifact was a little trickier to display the work, so I put it in a word document showing all the commands that were run on the database. Artifact three also shows some of my technical knowledge with being able to create a Linux virtual machine and use the command line to install and configure MySQL.
To enhance this artifact, I had to recreate the database in a virtual machine I created with Ubuntu Linux and installed MySQL. Once the virtual machine was created, and MySQL configured, I worked to recreate the database and tables we worked with in the DAD-220. I added more people to the table and more information about Olympic athletes. I then ran various queries and joined the information together to display it to the user.