Tumgik
myrahasan · 1 month
Text
Computer Science - Dickinson College
Coming into Dickinson and not knowing which direction to take in terms of a major, I wanted to take classes in my first semester that served as potential routes I wanted to explore further. And so, I took a class in the Political Science department, a class in the Computer Science department and a class in the Philosophy department. Although each of these classes expanded my knowledge in different ways, the one class that I enjoyed the most was my Computer Science class, Introduction to Computing. This class environment was not only the most welcoming but the most rewarding too in terms of being able to write lines of code and see that it did computations, created graphics and had an immediate effect and product that came from it. Being an international student unfamiliar with the American culture and on top of that, college culture, being able to work on labs and projects with other people in the class helped me ease into this change comfortably, whereas the other classes primarily emphasized individual learning. Following that first Computer Science class, I was sure that I wanted to major in Computer Science. Hence, the following semester, I was able to take Calculus I, which I needed as a prerequisite to the math that I needed for the major. I was also able to take Principles of Object-Oriented Design. Calculus I was beneficial in laying down and reiterating the mathematical concepts that would be necessary for Single Variable Calculus. Principles of Object-Oriented Design was interesting because while Intro to Computing was primarily focused on Python, this class was focused on Java. It was interesting in this way to notice the similarities and differences between the two languages and how they serve different and similar purposes. It also delved into some more detailed projects and coding methods while still allowing collaboration with others in the major, which was a rewarding and beneficial aspect to the class to be able to build relationships that have lasted throughout my college career. In the subsequent semester, I was able to take up Single Variable Calculus, Foundations of Higher Mathematics and Computing Abstractions in the major. All three of these classes were vividly different from one another but have all connected in the classes in the major. Single Variable Calculus helped solidify some of the mathematical concepts and computations that come up in coding and the principles of coding. Foundations of Higher Mathematics helped detailed ways to write mathematical proofs to be able to prove and disprove elements within Computer Science, namely the computability and complexity of programs. Computing Abstractions laid down the foundation of coding and computing and the most basic elements of what make up a computer, which explained how programs are run and how their efficiencies can be maximized. 
For the following two semesters, I had the privilege to study abroad in Norwich, England at the University of East Anglia where I was able to continue to take classes in my major that translated to Dickinson’s requirements for courses. This transition was stimulating as well as constructive as it offered me an experience extremely diverse from Dickinson, with Dickinson having small class sizes and encouraging group learning, whereas UEA had much larger class sizes and had more of an emphasis on individual learning in ways that I had never experienced before. In England in the Fall, I took Systems Analysis class which stood for the special topics 200-level elective where we focused on the development of computer-based systems. In the Spring, I was able to take Software Engineering, which stood for the half credit courses taken at Dickinson, Comp 190 and Comp 290, which segue into Senior Seminar. In this class, we worked on creating a POS system for a grocery store, with first implementing a class model design and then transitioning that into a working software system, focusing on both, the frontend and backend aspects. I also took Networks, which counted for the Abstraction Implementation requirement for the major. In this class, we focused on encrypting and decrypting a Voice Over IP system as well as making sure the transmission of packets was seamless. We also focused on Network Monitoring, including tracking latency and other components and seeing what aspects affected these elements. Finally, I also took Data Structures which translated to the Data Structures class at Dickinson and helped to familiarize us with the different structures that exist to model computer programs as well as implement them, which was crucial to understand for other classes in the major, such as Complexity and Computability and Analysis of Algorithms. 
Coming back from being abroad, I was able to take Analysis of Algorithms and Senior Seminar, which takes course over a year. Analysis of Algorithms helped build our knowledge on how to analyze how efficient programs are in terms of time and memory and how to improve efficiency. In Senior Seminar, we delved into the principles of Software Engineering, including looking at some practical efficiency techniques used within companies such as Scrum and Kaizen. We also analyzed Open Source projects and software in order to gauge our interest in them as well as our ability to contribute to them and began to work on these in closing issues and adding to them in meaningful and useful ways. Finally, this semester, I am taking Complexity and Computability, which looks into how certain programs are uncomputable and proving this as well as the complexity of programs and modelling programs through Turing machines. I am also taking Senior Seminar, where we are continuing to work on and contribute to our open-source projects as well as looking into the ethics and morals of Computer Science related topics. Lastly, I am also taking Database Systems where we are working with databases and learning to how construct and retrieve information from databases using SQL. 
Reflecting back at all of the Computer Science classes now, it is evident how they all connect and build on each other and it is rewarding think about all the coding languages that we have covered, all the analysis skills we have acquired and can now think critically about matters related to Computer Science, such as computability and complexity but also ethics and morals related to the field. Looking beyond the major, it was also been rewarding to not only be able to gain knowledge related to my major but take classes in all the fields that interested me, including Psychology and Anthropology and understand these and be able to relate these back to Computer Science as well. The combination of the disciplines has helped me to think more critically about the world around me and approach it through different methodologies and as a consequence, act in ways that are influential and make a difference. The study abroad opportunity played an immense role in taking risks and seeing things from different perspectives and how they apply in different contexts and to be comfortable in unfamiliar settings and use this to enhance my skills and knowledge. Within Computer Science, I have learned to adapt and solve problems and transform them to be more efficient, with one specific example being to reduce problems to other uncomputable problems to show an initial problem is uncomputable or to try different approaches to solving one particular issue. The structure of Dickinson’s classrooms also helped me to become comfortable in working with different people and aligning our skillsets to solving issues and making progress. The contrast between Dickinson’s classroom environment and UEA’s classroom environment also gave me the flexibility to adapt in learning environments. I consider it an immense privilege to have had the ability to learn all that I have learned in a short four years, within the classroom as well as beyond it and with skills that can be applied to my major as well as beyond it. It is extremely rewarding to look back and reflect on my progress and how Dickinson has shaped me. 
1 note · View note