Course work from my CS-330 class @ SNHU
-
How do I approach designing software?
o What new design skills has your work on the project helped you to craft?
The project for this course has taught me a lot. Starting with a simple scene and building off that using modular code was an essential part of successfully completing this project. Another skill that I obtained was problem-solving. This project required a 2D image to be analyzed and created in a 3D scene. This required coming up with the shapes that could be used, applying proper texture, and lighting to create a realistic depiction of said scene.
o What design process did you follow for your project work?
I started by analyzing the 2D image and breaking down which simple shapes could be used to create the scene. I could then create a basic scene that would allow for me to visualize the shapes. After the scene was created, I implemented camera controls and validated user input. This allowed me to look around the scene and ensure proper placement of all objects. By modularizing my code, complex shapes could be rendered easily with a few lines of code. After my shapes were created, I would texture them. The last step was implementing light which finished the project.
o How could tactics from your design approach be applied in future work?
The tactics that I implemented can be used in any project. I can analyze the problem at hand, break it down into simple fixes/steps and create a plan. This allows for the completion of one requirement at a time and keeps the application as minimalistic as possible. Continually testing the code improves the odds of success later throughout the project. Finally, modularizing the code ensures that changes can be made quickly without editing multiple lines of code throughout the entire codebase.
-
How do I approach developing programs?
o What new development strategies did you use while working on your 3D scene?
I used incremental and iterative development to break down the project into smaller tasks each week. This allowed for the final project to be slowly completed and efficiently finished by the time it was due. I also implemented concepts that I already knew, which happened to be Object-Oriented-Programming and modularizing code.
o How did iteration factor into your development?
Iteration factored into the development of this project heavily. Iteration was used alongside incremental development to ensure the efficient completion of each week’s assignment and milestone. Iterative development allowed me to design new feature code, then develop and test it in repeating cycles each week. The incremental development allowed for broke down the final project into milestones each week.
o How has your approach to developing code evolved throughout the milestones, which led you to the project’s completion?
In the beginning, I was implementing every new feature into the source code file, and this made working on the project extremely difficult by the fifth week. I fixed this problem by modularizing my codebase and using Object-Oriented-Programming which led to the success of this project. That is practically the only big change that I made.
-
How can computer science help me in reaching my goals?
o How do computational graphics and visualizations give you new knowledge and skills that can be applied in your future educational pathway?
Computational graphics and visualizations have taught me a lot of information about graphics programming and how the code is interpreted to create visualizations in the given scene. This course has given me vital problem-solving skills and a physical application of using mathematics to create objects in a program. I can apply these new-found skills to efficiently problem-solve future assignments and create graphical visualizations when necessary.
o How do computational graphics and visualizations give you new knowledge and skills that can be applied in your future professional pathway?
Computational graphics and visualizations have taught me a lot about OpenGL and c++. OpenGL could come in handy if a position required a working knowledge of OpenGL. Otherwise, the comfort that I have gained from working in c++ will allow me to progress as a developer and create increasingly more difficult projects as time goes on. This course also taught me the importance of modularizing and testing my code, which will be an essential part of my future career.