I have learned many things while being enrolled in this course. When I originally decided to sign up for the class in computing, I was just assuming that it would basically just teach me about how to use basic computing principles and it would teach me about how to use things like Microsoft Word and Paint. However, to my amazement, I was rapidly overwhelmed with much more complex things like algorithms and hardware. I learned certain things I never would have even imagined in this class like the difference between software and hardware and how to type codes for web pages. Before this class, I knew nothing about Java, C++ codes, binary numbers, or a very long list of other things. Some of my favorite activities include when we took apart a hard drive with tools and using Alice. I enjoyed taking apart the hard drive because it was interesting to see how it was all put together and what was inside of it. I never really thought about all of the little detail in it and how it all works together to help the computer run more efficiently. Alice was very fun to work with as well because I was able to make animated worlds and design projects that I never would have known how to do otherwise. I found myself proud to show my friends the projects I was completing because it consisted of so much effort and little details that I was so proud of myself for figuring out how to do it. It amazes me that some people have the codes memorized to write html programs and it is very interesting to be involved in such a distinct field. I think my favorite section of the course was the encryption of messages and their secret codes in Chapter 15. I was very interested to find that these messages, often containing great value and importance, are going right by my nose and I have no way of knowing them at all. Over the past few decades, computing has become amazingly detailed and advanced. It is obvious that this is a rapidly growing field and a career in computer science is one that will pay off and provide a successful future. Although some things stressed me out and were very confusing like turning a word document into html, dragging it onto the desktop, creating a zip folder, then putting it all together and submitting it. This was a very confusing process for me and it was something that I needed help on repeatedly when the assignments were due. I found myself struggling on the homework assignments because they did not seem to reflect to what we were learning in class as much, but I felt relived and proud of myself to be able to go through the book and figure them out on my own. In some of my courses, I found myself not very interested to be there and I was often wondering why I was taking that course because it really did not pertain to any importance in my life or societies for that matter. However in computer science, I was learning about real things that make up our whole lifestyle and I knew that the topics were important and were definitely making a huge impact and difference on the world. Another thing that sparked my interest in computer science is that it is something that used worldwide and is the same in every country. They all have their distinct set of codes and can be as simple as creating a website, to as complex and valuable as sending information to another country about war related topics. I really enjoyed the professor as well. Doctor Kihlstrom really shows her students that she cares about them and is very passionate about her subject. It is inspiring to see someone care so much about what they do and allows the students to know that they are happy to be there. She is an amazing example of a follower of Christ and how to serve others. She is always eager to help us and she answer questions with whatever we need. It has been helpful to see a female in the department as well to set off the stereotype of nerdy computer guys that just sit in their cubical all day typing nonsense. I feel like she has been my most inspirational professor thus far in my college career and I have only felt encouraged and inspired by her teaching. I appreciated her taking the time to inform the class of her story and where she is coming from. We were able to see how she came to love computer science and how God worked in her life to bring her to where she is and build her into the person that she is today. She bakes us cookies and brownies and seven layer bars and muffins, which were delicious and definitely helped us look forward to coming to class. I heard rumors about her cookies and I was very delighted to find that they were well up to my expectations. I attended several of the extra credit seminars and Wednesday night dinners and it was very interesting for me to hear from some of the guest speakers and have fellowship with other people who love computer science as well. It seems like such a nice idea that the department would meet once a week just to be together and talk and it is definitely something that is rare to find among other departments or schools. It was helpful for me to see grown-ups and what they have decided to do with their future and career in computer science. There are so many routes to take that it is slightly overwhelming to think about what I want to do with my future. I used to think that I had it all figured out and I knew what I wanted to do with my life after college, but I now find myself evaluating the so many choices out there knowing that any decision I make may change my life forever. Choosing a career affects where I live, who I am friends with, possibly who I decide to marry depending on how I meet them, our income, and a wide variety of other things. It was comforting for me to hear how some of the speakers or teachers in the dinners thought they knew what they wanted to do with their life as well as I thought I once did but how they ended up working somewhere or doing something completely different than what they had planned. They openly talked about how God worked in their life and how He shifted their plans to bring them exactly to where they are today. I was comforted knowing that God is doing things in my life that I have no way of comprehending and I should stop worrying and thinking that I need to be so concerned with my future because He has it completely under His control. I enjoyed going to the Artificial Intelligence class a couple of times and seeing what they were doing and how it related to what we were doing on a more advanced level. Dr. Iba seems like a very good teacher and his students seem like they have learned a lot and are interested in what they are doing in that class. From creating simple codes to complex video games, this male dominant class seemed like they always look forward to coming to class and are eager to show off their accomplishments and what they have learned. I was extremely shocked by the amount of detail put into their course and had no idea that Artificial Intelligence was such an interesting topic. I learned about the different types of machines and their languages, including language translation, assembly language, their drawbacks, and the relationship between high-level languages and translation. I learned about programming and computer engineering. Previous to this class, I had no interest in computer science or it’s job opportunities. I now see the high demand for women in the field and the offers that would be presented in such a major. I feel like this course has benefited me a lot because it has taught me a wide overview of topics that will be necessary in the increase of demand in computer science. In this class I had the opportunity of  learning about object-oriented programming and its contribution to the subject. We covered input statements as well as output statements. We learned that input statements “collect a specific value from the user (or from a file) for a variable within the program.” Output statements “write a message of the value of a program variable to the user’s screen (or to a file).” I came into this class having no idea what a pseudocode was and I left knowing that it “is a set of English language constructs that are designed to resemble statements in a programming language but that do not actually run on a computer.” One of the major things that I learned because of this class is Boolean logic, operators and conditions. I am very satisfied with my decision to take this course not just because it covered the reasoning abstractly portion of the GEs and I’m terrible at math, but because I am leaving more informed of how my computer works and with knowledge that I know will come to great use in the future.

For problem number one in my midterm, I explained, compared, and contrasted machine language, assembly language, and high-level programming language. I gave the key features of each type, and talked about translation programs used for assembly language and high-level languages. Machine language is a form of instructions that can be used to figure out the part of the computer known as the control unit by executing it and decoding it. It uses ones and zeros. Assembly language is a more simple, modern form of machine language that can be used by computers or people to allow an easier to use, more productive environment. It uses mnemonics and one to one correspondence with machine language. High-level programming language are easy to use, can be used by people and machines, and are designed with both mathematical and natural notations. It takes one translation and translates it into many machine translations. A translation program for assembly language is the moderations made over time through assemblers and generations and how they adjust to increasing technology. Translation programs used for high-level languages and the compiler range from all sorts of hardware and their adjustments from low-level languages used for machines to natural languages, which have nothing to do with hardware such as foreign languages and cultures.

For problem number two in my midterm, I described the term abstraction, discussed why it is important in computer science, and gave an example of the use of abstraction. Abstraction is the difference between the small details of an operation or an entity and the way they are put together separated from the more broad, important outlook at them as a whole. It is described as “the separation of the high-level view of an entity or an operation from the low-level details of its implementation.” Abstraction is important in computer science because it is necessary for society to be able to comprehend any kind of system that may be too complex or large for out understanding. It allows someone to focus on the importance of computers as a whole without getting distracted by the millions of bits that cause potential problems. Abstraction is used in computer science frequently because “of the complexity of hardware and software. For example, abstraction allows us to view the hardware component called “memory” as a single, indivisible high-level entity without paying heed to the billions of electronic devices that go into constructing a memory unit.” An example of the use of abstraction would be my dad who owns a mortgage company is able to look at the quality of the company, the loans that they are distributing, and what he can do to contribute to the company’s success without having to focus on each individual employee and dollar being distributed.