diff options
| author | Fuwn <[email protected]> | 2023-03-17 20:41:53 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-03-17 20:41:53 -0700 |
| commit | 734e826e2d70f7a6aeb36158dbed16209f0d8b7a (patch) | |
| tree | e91c032cb147e0864e1048b953b7d95e38cfb090 /src/2023/March | |
| download | wri_350_documentation_log_assignment-734e826e2d70f7a6aeb36158dbed16209f0d8b7a.tar.xz wri_350_documentation_log_assignment-734e826e2d70f7a6aeb36158dbed16209f0d8b7a.zip | |
feat: complete book
Diffstat (limited to 'src/2023/March')
| -rw-r--r-- | src/2023/March/1.tex | 25 | ||||
| -rw-r--r-- | src/2023/March/12.tex | 123 | ||||
| -rw-r--r-- | src/2023/March/13.tex | 24 | ||||
| -rw-r--r-- | src/2023/March/15.tex | 23 | ||||
| -rw-r--r-- | src/2023/March/3.tex | 15 | ||||
| -rw-r--r-- | src/2023/March/6.tex | 74 |
6 files changed, 284 insertions, 0 deletions
diff --git a/src/2023/March/1.tex b/src/2023/March/1.tex new file mode 100644 index 0000000..b6c5d8c --- /dev/null +++ b/src/2023/March/1.tex @@ -0,0 +1,25 @@ +\mytitle{A Semi-Normal Day}{\gp} + +Psychology today was of the most efficient, instructive, and productive days +of the semester so far. + +After getting to class in a timely manner, we began cracking down on new senses +instantly. Today we covered the sense of sight, sound, touch and their +respective subsystems. Just two senses might seem like a small amount, but the +amount of information that we covered was quite a bit. Coverage included +anatomy, physiology, and psychology of the senses. + +In addition to the slides that we covered, we took a look at videos and images +which could be described as optical illusions. After falling for these illusions +we were then delivered the explanation of how they worked. I found the +explanation of how our ears worked to be the most interesting, as I had +previously done work with music theory implementations in software where I often +had to deal with various topics such as frequency/ pitch, wavelengths, and the +physical relationship of sound waves relative to different settings such as the +speed of sound in air or a vacuum, simulated in software. Additionally, being +a perfectionist in music and professional audio, I found that learning about +the physical and mental processes of hearing was quite interesting. + +Even though class today covered a large range and depth of information, we were +able to get through faster than most people had expected and we were able to +leave class almost a full 25 minutes early. diff --git a/src/2023/March/12.tex b/src/2023/March/12.tex new file mode 100644 index 0000000..b9e97d1 --- /dev/null +++ b/src/2023/March/12.tex @@ -0,0 +1,123 @@ +\mytitle{The Last Homework of the Term}{\co} + +Now that the term is coming to an end, I am seeing the last couple of +assignments that are being handed out. This week, we had no quiz, but we did +have a homework assignment, and I expect us to have the final exam next week. + +The homework assignment was another MARIE-centric assignment, but featured new +questions that we haven't seen yet. The first two questions were complex +questions which asked us to understand the memory architecture of fundamental +types, and find various pieces of information about their characteristics; +including the number of bits required to represent them, maximum and minimum +values, and more. + +Following that, we had a couple familiar questions that we have seen before, but +in more complex programs, as well as a questions which asked us to draw +flow-charts for the programs that we have written, without using any condition +logic or branching. + +\smallskip + +\begin{tikzpicture}[node distance=2.5cm] + \node + (start) + [draw, rectangle, text centered, minimum width=2cm, minimum height=1cm] + {Start}; + + \node + (loadx) + [draw, rectangle, text centered, right of=start, minimum width=2cm, minimum height=1cm] + {Load X}; + + \node + (addx) + [draw, rectangle, text centered, right of=loadx, minimum width=2cm, minimum height=1cm] + {Add X}; + + \node + (addx2) + [draw, rectangle, text centered, right of=addx, minimum width=2cm, minimum height=1cm] + {Add X}; + + \node + (addy) + [draw, rectangle, text centered, below of=addx2, minimum width=2cm, minimum height=1cm] + {Add Y}; + + \node + (increment) + [draw, rectangle, text centered, left of=addy, minimum width=2cm, minimum height=1cm] + {Increment}; + + \node + (storey) + [draw, rectangle, text centered, left of=increment, minimum width=2cm, minimum height=1cm] + {Store Y}; + + \node + (stop) [draw, rectangle, text centered, minimum width=2cm, minimum height=1cm, left of=storey] + {Stop}; + + \draw [->] (start) -- (loadx); + \draw [->] (loadx) -- (addx); + \draw [->] (addx) -- (addx2); + \draw [->] (addx2) -- (addy); + \draw [->] (addy) -- (increment); + \draw [->] (increment) -- (storey); + \draw [->] (storey) -- (stop); +\end{tikzpicture} + +\smallskip + +The final result looks a little bit like this, with some extra implementation +for the increment subroutine. + +Finally, we had to implement a program which would take two input for two positive numbers, each +less than 20, and output the absolute value of the difference between the second number subtracted +from the first number. I'm not going to write all that out here, since it involves a length of +conditional logic, but it essentially is just a manual implementation of any standard absolute value +function (\verb|abs(first - second)|). + +Within the same program, we had to implement a subroutine that would multiply these two numbers +together. This was tenfold faster to implement since it just requires a looping portion which +decrements one of the numbers every iteration that it adds the other number to the accumulator, +finally storing the result in one of the values. + +Reimplemented in C, that would look something like this: + +\pagebreak + +\begin{lstlisting}[language=c] +int multiply(int first, int second) { + /* Initialize the result to 0. */ + int result = 0; + + /* While the second number is greater than 0, add + * the first number to the result and decrement + * the second number by 1. */ + while (second > 0) { + /* Add the first number to the result. */ + result += first; + + /* Decrement the second number by 1. */ + second -= 1; + } + + /* Return the result (first * second). */ + return result; +} +\end{lstlisting} + +If you have dealt with Riemann sums in calculus before, the above function in C +can be expressed as a Riemann sum, where the function is the first number, the +interval is the second number, and the number of rectangles is the second +number, or vice versa. + +\begin{equation} + \sum_{n=1}^{first}(second) +\end{equation} + +Riemann sums are essentially the \verb|for| loops of calculus. + +As a final evaluation, I would give this assignment a ten-out-of-ten for being a +very in-depth assignment, while still being doable for most of the students. diff --git a/src/2023/March/13.tex b/src/2023/March/13.tex new file mode 100644 index 0000000..f1a93cc --- /dev/null +++ b/src/2023/March/13.tex @@ -0,0 +1,24 @@ +\mytitle{Tutorial Implementation}{\dd} + +Finally, the day I was looking forward to: implementing my tutorial video in +documentation development. + +Despite looking forward to this day, I had a one complication that I did not +anticipate. The first thing that I had changed was the slideshow implementation +that I would use for the video. I had originally planned to use +Slidev\footnote{\url{https://sli.dev/}}, but I forgot what a pain it was to deal +with. I had worked with Slidev before in making complicated and articulate +technical slides that used a lot of custom logic and styling, but I forgot how +annoying it actually is to implement from scratch, especially for a simple +tutorial. + +I switched over to Cleaver\footnote{\url{https://github.com/jdan/cleaver}}, a +really simple, command-line-based slideshow tool that compiles to a single HTML +file and uses Markdown for its content representation. I've also used Cleaver +before in simple presentations, and in hindsight, it should have just been my +first pick. + +All in all, I'm surprised that I was able to get through the entire tutorial +with just one complication, and I think that the final video turned out pretty +well. I tried to be as clear as possible in my explanations, but in the field of +computer science, there's always room for improvement. diff --git a/src/2023/March/15.tex b/src/2023/March/15.tex new file mode 100644 index 0000000..97c8068 --- /dev/null +++ b/src/2023/March/15.tex @@ -0,0 +1,23 @@ +\mytitle{Jeapordy!}{\gp} + +Today within psychology, we played Jeapordy! + +Since the class prior, we had completed our last chapter exam, we were given a +relaxing day to play Jeapordy! with our classmates. Of course, this was a review +game, as we have a comprehensive final exam the following Monday. Regardless, it +was a fun way to end the semester. + +We were split into the left and right side of the classroom, as teams, and we +had three different games of Jeapordy! to play, all of which were review of +the three different chapter exams that we had completed throughout the term. + +The first game was a review of the first few chapters, which were the most basic +concepts of psychology, but proved to be some of the most forgetful as well +\ldots. The subsequent two games were a little easier to complete, since the +information was much more recent. At least, now, I have a better idea of what to +expect on the final exam and what to study for. + +Additionally, today was the cutoff for the three bonus quizzes that we had, +which I had already completed a few days prior. I was happy to see that I had +received a 100\% on all three of them, which was a nice, albeit, tiny, boost to +my grade. diff --git a/src/2023/March/3.tex b/src/2023/March/3.tex new file mode 100644 index 0000000..de0d5df --- /dev/null +++ b/src/2023/March/3.tex @@ -0,0 +1,15 @@ +\mytitle{Tutorial Creation}{\dd} + +Today, we were tasked with creating a memo that outlines the steps and details +of creating a tutorial. Once I begin recording and creating my video tutorial, +this is the outline that I will be following. + +Luckily, I already have a topic that I had in the back of my mind that I wanted +to create a tutorial for; since I've truly had tons of students ask me about +the topic. The topic is how and why constructors and destructors work, +specifically in C++. + +I'm also happy that I was given the choice of choosing my tools for the video +creation as I already have a pretty streamlined process cut out for me. I'll try +to adjust my process to fit the needs of the tutorial, since it's a but +different when you are teaching one-on-one versus teaching to a video. diff --git a/src/2023/March/6.tex b/src/2023/March/6.tex new file mode 100644 index 0000000..4b00a6d --- /dev/null +++ b/src/2023/March/6.tex @@ -0,0 +1,74 @@ +\mytitle{Assembly, at Last!}{\co} + +After a long wait, we finally got to assembly. We began using a simple +assembly-like language called MARIE\footnote{\url{https://marie.js.org/}} which +is implemented as an online simulator, allowing us to write and run our projects +and having simple debugging tools at our disposal. + +Being the first homework, the assignment didn't consist of too many questions +complex questions, but just enough to get us started. + +Questions included introspection of the memory addresses, to figure out the +addresses and values of registers and memory locations. Additionally, we had to +write a simple program that would take two numbers from the user and multiply +them both by three. Since multiplication is not a built-in operation in MARIE, +we had to implement it using addition. Given that the multiplicand is a +constant, three, we could simply add the multiplicand to itself twice, for each +of the input numbers. + +\begin{lstlisting}[language=Ant] + Load a / AC = a (2) + Add a / AC = AC (2) + a (2) + Add a / AC = AC (4) + a (2) + Store a / a = AC (6) + + Halt + + a, DEC 2 / a = 2 +\end{lstlisting} + +That's the basics, but of course we had to implement input and output as well, +which wasn't all that much, just a few extra instructions. + +Following that portion was a set of problems which had us answering what +hexadecimal opcodes would be generated for a given MARIE instruction, but +backwards, so which instruction would be generated for a given opcode. This was +a good exercise to get us familiar with the opcodes and their corresponding +instructions. Additionally, we dealt with a few theoretical problems such as +given a IR (instruction register) and the offsets for the opcode and operand +fields, what we would be able to accomplish with that information. The questions +included things such as the number of opcodes possible, the number of +addressable addresses, the most negative decimal number that would be +represented, and so on. + +Finally, we had to write a program which would take two numbers from the user, +and just swap them around. Similar to how you would implement this in C, we had +to use a temporary variable to store one of the numbers while we overwrite it +with the other number. + +\begin{lstlisting}[language=Ant] + / t = a + Load a + Store t + + / a = b + Load b + Store a + + / b = t + Load t + Store b + + Halt + + a, DEC 1 / a = 1 + b, DEC 2 / b = 2 + t, DEC 0 / t = 0 +\end{lstlisting} + +We had to implement input and output here as well, but you get the idea. + +The quiz for this week was nearly identically to the homework, save for the +programming portion which was worth 40 points compared to the usual 4 or 8. The +question was similar to the homeworks, except we had to add a portion that +calculated the sum of the two numbers.
\ No newline at end of file |