summaryrefslogtreecommitdiff
path: root/src/2023/March
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-03-17 20:41:53 -0700
committerFuwn <[email protected]>2023-03-17 20:41:53 -0700
commit734e826e2d70f7a6aeb36158dbed16209f0d8b7a (patch)
treee91c032cb147e0864e1048b953b7d95e38cfb090 /src/2023/March
downloadwri_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.tex25
-rw-r--r--src/2023/March/12.tex123
-rw-r--r--src/2023/March/13.tex24
-rw-r--r--src/2023/March/15.tex23
-rw-r--r--src/2023/March/3.tex15
-rw-r--r--src/2023/March/6.tex74
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