I am Josh Westenheffer and this page will help give you an insight into what I am capable of as a coder. The project I have is an Android Studio calendar and these pages will detail my work on it throughout my capstone project. I must note please do not see these pages as the extensive part of what I have done. These pages are meant to summarize key changes I made and provide how these effect my course outcomes and goals. For extensive documentation check my github account or the links at the bottom of this page. Here is some information about my time in the Computer Science Program.
Throughout my time in the Computer Science degree I have coded in a variety of
different languages for different purposes such as java for a travel agency web application,
C++ for a basic artificial intelligence game, and embedded C for a thermostat. Dealing with
multiple languages has given me a broad look at how coding is used across computer
science for everything from defense to commerce. The variety I have seen has given me
appreciation for just how complex some systems can be and how much effort it can take to
maintain them. In turn one key value I have internalized is always focusing on writing
sustainable and understandable code. In a field as broad as computer science I have found
this core value to be integral to working with other people or just sharing what I have done
as an individual. If I can’t produce my code efficiently and coherently for the people, I work
with or the shareholders I work for then the code itself will be without purpose. In essence,
what I am trying to convey is that the backbone of all the code I write is built on sustainable
code that will ensure I can meet the demands of whatever team or shareholders need me.
Passed my main value, while in this program I have had insight into different forms
of computer science values such as working within the SDLC, meeting requirements for
stakeholders, working to create efficient algorithms, and dealing with different forms of
databases and securities. I have had multiple classes focused on what my work would look
like as a member of a team and how I would communicate with the other members of the
team and the stakeholders for my project. Effective communication in my eyes comes from
consistency, and intentionality in focusing on key ideas. Whether it be requirements for
stakeholders or goals for the team focusing on the main intents will keep a team focused
and clear requirements at the forefront of a project’s development. My experience has
entailed working with communication aspects such as code write-ups, reviews, and
charts/graphs to help keep ideas consistent and clear.
As for algorithms and efficiency, the further I got into my degree the more I realized
how important efficient coding is. My capstone was the best example I have for improving
algorithms because my project focused on a calendar app. My original calendar was poorly
coded and featured inefficient code that was nearly impossible to expand upon. When I
began creating my current calendar, I found the importance in creating efficient algorithms
as it will improve the output across the app whether it be viewing the code, speed at which
the code runs, data handling, or code runtimes. The difference was that I created an app
capable of being expanded on and handling much more load rather than hardly running at
all. This gave me great insight into how important data structures are and maintaining
efficiency throughout the code. I now am not only better at working with it but realize the
importance in any application large or small to be efficient and concise.
Databases were difficult in the beginning for me, but having dealt with MongoDB,
SQLite and MySQL I feel much more comfortable. I have used them for different projects
such as large-scale database handling of an animal center, a basic travel website, admin
login and user permissions, and my calendar application. The databases have given me the
best look into computer science security by seeing how important user permissions and
logins are. Learning basic ideas like least permissions, defense in depth, and encryption
are at the forefront of my security mindset nowadays. Seeing how databases integrate
security with their data storage has given me insight into how critical the role of security
principles truly is. I recognize now how databases can be compromised and how security
can be overlooked even when being the focus of such large corporations. My skills with
these databases and security in general come down to consistency and intentionality,
keeping my systems easily manageable is vital for maintaining secure projects.
My artifact is an Android Studio calendar that initially featured one month, a basic
login screen, and a database that handled usernames and passwords. I implemented
functionality to make it feature all twelve months and their days, a specific day information
screen for each day of the year, and a database to handle all this information to allow
multiple users to sign in and out and the information be retained. The artifact is a great
project to show my skills because it allowed me to implement efficient and complex data
structures. It allowed me to get in a security mindset to implement multiple user logins and
information that is specific to them. Finally, I got to use SQLite to create a database that
holds user login information and calendar specific information across multiple logins. Tying
all this together I got to showcase my skills dealing with common coding standards while
creating a common app that showcases, I am capable of coding with industry standards.