High Level and Low Level

After having a summer off, I was eager to get back to school. This semester would be my first on campus. I found that this semester was when I really started to get into computer science.

CIS*2030: Structure and Application of Microcomputers

START   ORG     $1000

        LEA     MESSAGE,A1
        MOVE.B  #14,D0
        TRAP    #15

        MOVE.B  #9,D0
        TRAP    #15

MESSAGE DC.B    'HELLO WORLD',0

        END     START

Of all the courses I took this semester, this one was my favourite. In this class I got to dive in to the computer at a very low-level. This class taught me a lot about the hardware of the computer as opposed to straight software. I have always been interested in how things work on a fundamental level.

CIS*2430: Object Oriented Programming

package example.helloworld;

public class HelloWorld
{
        public static void main(String args[])
        {
                System.out.print("Hello World!");
        }
}

This was the first time I got to use a programming language with many high-level features. We used Java for the entire course. Having used only C for the previous year, it was refreshing to not have to worry about memory management, janky string manipulation, and creating basic data structures from scratch.

CIS*2520: Data Structures

void push(List* list, int data)
{

        if(list == NULL){ return; }

        Node* node = malloc(sizeof(Node));
        if(node == NULL){ return; }

        node->data = data;
        node->next = NULL;

        list->tail->next = node;
        list->tail = list->tail->next;

}

Data structures are necessary for computer programming, but ended up being my least favourite class of the semester. While I understand the importance of data structures and their use in everyday programming, I don’t have a large interest in the topic.