CSC 250: Final Project Post

addierose444:

About This Post:

This blog post is a bit different in that it actually serves as a part of my final project for theory of computation (CSC 250). You can read about my other spring 2021 courses here. The objective is to explain a real-world result or application of theoretical computer science. In addition to publishing a blog post, we were tasked with creating a 5-minute video to be shared with the class. While the intended audience is my fellow computer science majors, I’ve tried to make the material more broadly accessible. Furthermore, even if you don’t fully understand everything, this post still serves my blog’s general purpose of providing insight into my Smith College experience. Now on to the actual content!

Checking Addressing Modes with Context-Free Grammars

Introduction:

When you hear the word theoretical, you may assume there are limited real-world applications. In actuality, concepts in theoretical computer science can be applied to fields ranging from biology to the arts. Given my career interests in computer engineering, robotics, or software engineering, I was curious to explore results relevant to electrical engineering and/or computer architecture. The research I will be presenting here is the work of Hawraa S. Hamza of Babylon University. The full paper, Automatic system Design for finding the Addressing Modes based on Context Free Grammar, can be read here

Addressing Modes:

To understand addressing modes, we must start with a quick introduction to assembly code. Assembly code is generated by a compiler from modified source code. (The entire compilation process of a C program involves the preprocessor, the compiler, the assembler, and the linker). Assembly is human-readable text and has a one-to-one correspondence with machine code. When we say that assembly is human-readable, it’s worth pointing out that it’s significantly more difficult to understand than the equivalent code in a high-level language. Pictured below are a simple C program and the corresponding assembly code.

image
image

Each line of the assembly code is a single instruction to be performed by the central processing unit (CPU) and includes an op-code, an address (or addresses), and an addressing mode (or modes). The op-code is the specific operation to be performed by the CPU. The address is to the operand of the instruction. The mode indicates the way in which the operand of an instruction is specified. In other words, the mode tells the computer how to modify the address field before the instruction is executed. 

image

Examples of one-operand instructions are increment and decrement which in the x86 instruction set architecture (ISA) are incl and decl respectively. The operand is the destination that is specified by the address and the addressing mode. Examples of two operand instructions in the x86 ISA include addl (add), subl (subtract), and movl (copy). While unimportant here, note that the l stands for long which is a large integer datatype. In these two-operand instructions, the first argument is the source (specified by an address and addressing mode) and the second argument is the destination (also specified by an address and an addressing mode). 

The main point here is that addressing modes indicate the way in which an address is specified and tell the computer how to calculate an effective address. This is useful because it reduces the number of bits required in the address field. Recall that a bit is simply a 0 or 1 and is the most basic unit of information in computing. Addressing modes are important to assembly programmers, compiler writers, and computer architects. 

We will now consider some specific addressing modes. With some familiarity with computer architecture and systems-level computer science, this should make things a bit clearer. The simplest addressing mode, specified with a dollar sign in the x86 ISA, is immediate and indicates that the operand is supplied directly. As an example, $25 means that the operand’s value is simply the number 25. When the percent symbol is used, it specifies that the operand is to be found in the given register. (Registers are simply the small and fast units of storage found in the CPU. They are for short-term storage of program data and instructions currently in use). For example, %eax means the operand is the value found in register eax. Finally, parentheses around the given register indicate the operand’s value is to be found at the memory location specified in a given registrar. In the assembly code that may look like (%eax). If you are still feeling a bit confused by what an addressing mode is, check out this webpage

Context-Free Grammars:

Context-free grammars (CFGs) are formally defined by a 4-tuple (V, Σ, R, S) where V is a finite set of variables, Σ finite is a finite set of terminals (disjoint from V), R is a finite set of rules, and S is the start variable. The rules have the form A → u where a is a variable and u is composed of variables and terminals. The language of a given context-free grammar is the set of strings containing only terminals that can be derived from the start symbol using the rules. Such languages, unsurprisingly called context-free languages, are an important topic in theoretical computer science. Their associated machine is the push-down automata. Once again, here is a helpful webpage if you’re feeling a bit lost. 

Checking Addressing Modes with Context-Free Grammars: 

With all of that background information under our belts, we are finally ready to tie it all together. The system proposed in the paper included two parts: checking the addressing mode with a context-free grammar (focused on here) and implementing the addressing mode. Here are the rules of the context-free grammar outlined in the paper.

image

Observe that in stage 4 INST is a variable that is used as a placeholder for the various op-codes and that R is used as a placeholder for the various numbered registers. Likewise, in stage 2 each addressing mode type is mapped to the corresponding structure. Note that to check an addressing mode we work backward from a string of terminals up to the addressing mode type. To better understand this process, take a look at the following example. 

MOV R1 , [R2

→ INST R1 , [R2]

→ INST R , [R2]

→ INST R SC [R2]

→ INST R SC [R]

→ CONS [R]

→ Register_indirect

→ Addressing_Mode 

As you will see the first step is to replace MOV with INST. Next, R1 is replaced by R, the comma is replaced with SC, and the R2 is replaced with R. Moving to stage 3 we map the pattern INST R SC to CONS. Finally, we map CONS [R] with the register indirect addressing mode. (Technically the last step is to say that we successfully mapped to an addressing mode, but what matters is the specific addressing mode). As a proof of concept, the paper shows screenshots of a simple program that performs the addressing mode checking.

image

Evaluation:

In summary, the result presented here was a system for using a context-free grammar to parse the addressing mode from an instruction written in assembly language. The paper succeeded in demonstrating this potential use of CFGs. To fully evaluate this result, I would ideally have access actual proof of concept program and the underlying code. The main area of future research is implementing a more robust error detection system that is capable of determining the type of error and suggest ways to fix it. 

Through reading the research paper and preparing my video and this blog post, I gained a better understanding of the way in which various aspects of computer science are applicable to one another. Specifically, in addition to this theoretical computer science course, I was concurrently taking an introductory computer systems course at UMass. In that course, I learned the basics of assembly language and computer architecture among other things. (For more about my specific experience taking a Five College course, click here). As I am generally more interested in computer systems than theory, I really enjoyed exploring a computer systems relevant application of theoretical computer science. In short, while this specific result isn’t the most ground-breaking and exciting, studying it has been meaningful in rounding out my semester. 

Sources:

In addition to the research paper, linked again here, my main informational sources were course notes and materials from CSC 250 with R. Jordan Crouser and COMPSCI 230 with Tim Richards. The final informational source, linked again here, was the GeeksforGeeks article on addressing modes. 

Anonymous asked

How are Smith houses different from regular college dormitories?

Hi! Smith houses are different from regular college dorms in a few ways. The first is the architecture! A lot of the houses are converted buildings (some used to be schools!), so they all have their own unique features. All of the houses have living rooms and a study space, many of the houses have basements that provide another study/hangout space, and every house (except one) has a kitchen and/or dining room. The rooms are also bigger than a lot of other colleges because of the unique architecture!

The other way Smith houses are different is that house community is really big. Every house has their own traditions, self-governing house councils, and a mix of people from all class years. While people do move around for a variety of reasons (I’ve lived in two different houses), it’s not uncommon for people to live in the same house all four years.

Lastly, housing is guaranteed all four years, and most students live on-campus (~98% I believe).

I hope this helps!

-Miranda ‘23J

Anonymous asked

hey! im planning on being a computer science major at smith for the class of 2025. Is getting ap comp sci credit super helpful or are the intro classes for comp sci at smith not too bad to go through? I know at other colleges they are the pain so skipping them with comp sci ap credit is vital. Thank you!

Hi there! I took AP Comp Sci A in high school, so I personally found CSC 111 to be rather easy, so if you also already have a strong foundation with coding Python or Java, I think CSC 111 will also be rather easy and repetitive. I ended up still taking 111 just because I wanted a refresher and I still ended up learning some new things anyway. But it is ultimately up to you though! - Aneliz ‘23

Anonymous asked

I'm an incoming '25 and my friends and I are really interested in the suites in Baldwin. Do first years tend to end up in those triple rooms, or are they usually filled by the time we get housing assignments?

Hi there! First years end up in most of the triple rooms and the quad in Baldwin. One of my best friends lived in the quad her first year, and a suite her second, and both of her rooms were so nice. The quad is really big— the doubles are both spacious, as is the common room.

-Miranda 23J

Anonymous asked

hello! I have just committed to smith and I will need to buy a laptop over the summer since the one I have now belongs to my high school.

would you recommend using the smith computer store? do they give discounts or repairs for students? or is it better to just buy one on my own through a local store? I am probably going to buy a mac

Hi! Congratulations on committing to Smith! I do recommend going through the Smith Computer store because they often have deals for students (for example I got my laptop with free headphones) and if you go on tax free day (usually sometime in August, but you can call them to confirm) you will get a huge discount. They also help you install free Microsoft Office and certain other programs you might need. Good luck!

-Emilia ‘23

A Typical Week: Spring 2021

addierose444:

Before getting into the actual content, I thought I would just point out that this is my 100th blog post! You can check out the full list here

As noted in my fall 2020 version of this post, my week is primarily dictated by my current course schedule. (To check out all of my past courses, click here). Furthermore, the way I write these posts is to focus on academics as they’re a big part of my life, but also the most natural thing to write about publicly. This post should give you a realistic sense of the structure of my week and courses. I thought it may be useful to contrast expectations and reality when it comes to productivity. Early in the semester, I mapped out my idealized homework schedule around my meetings and assignment deadlines. The first row lists deadlines. The other rows are split by my meals (lunch and dinner). Even if I don’t strictly follow the schedule, spending the time to map things out is quite useful. To write about my real schedule, I actually looked back through data from my time tracking application, Toggl Track. I know this is a very long post, but it wasn’t really interesting enough to become a two-parter. 

image

A typical school day starts off with my 9:00 (or 9:10) alarm. I also often have a second alarm set for 9:15 as a backup. Here at college, I simply use the default clock app on my phone and have it play from my favorites playlist on Spotify. I very occasionally need to wake up earlier to finish up an assignment as midnight is my strict cutoff for doing work. I know a consistent sleep schedule is very important, but it’s definitely something I struggle with.

Monday:

My week begins with a 9:20 math class. The specific course is math methods which as previously explained is an applied math course from the physics department that is required for physics and engineering majors. We usually start off by going over the pre-class check in (PCCI) and/or other questions students have. This review is followed by a lecture on new material. Throughout the class, we work through example problems in breakout rooms (on Zoom whiteboards) and answer multiple-choice questions using the poll feature. (The poll questions are anonymous and ungraded). Partway through the class, we get a 4-minute break. One nice thing about this class is that we actually thoroughly go through the example problems when we regroup as an entire class. This is important because, without feedback, practice is of limited utility. Furthermore, going over the problem gives me a chance to get everything into my notes. The integration of lectures with practice is something I really appreciate about this course. In past math classes, the format has been a lecture followed by a worksheet of practice problems. While that model sometimes makes sense, I much prefer this integrated approach.  One issue with leaving practice until the end is that you sometimes run out of time and don’t catch knowledge gaps until the end of class. After math methods, I get a 20-minute break during which I often listen to the latest episode of The Daily (a short new podcast from the New York Times). 

Next up is my philosophy of logic class which starts with a few minutes of breathing and stretching. On the first day of class, I thought this was a really strange thing, but have come to appreciate it. Afterward, we go over any relevant announcements and sometimes debrief the previous class. This class is different from my other classes in that it is reading and discussion-based. We spend most of the class in the main room strengthening our understanding of the reading through full class discussions and mini-lectures. Even though the class is already very small (13 students), we also make use of breakout rooms to work through study questions. Our tests are pyramid style which means we spend one class period working independently and another class on the same questions in a small group. We also have short quizzes, called mini check-ins,  every few weeks. Next up is lunch during which I sometimes listen to a podcast or audiobook. You can check out some of my favorite podcasts and books of 2020 at the associated links.

After lunch, I have my computer systems lab. The teaching assistant of my lab section starts off with a quick introduction to the assignment. We then work independently and ask questions as they come up. Even though we don’t really work collaboratively the lab is sort of fun because it’s less formal than a regular class. For the first part of the semester, the lab assignments often took way longer than the allotted time (and sometimes longer than our projects) so I often spent more of the afternoon finishing up the assignment. Fortunately, the course staff was made aware of this issue and adjusted accordingly. Just for some context, this course is a UMass class which is why there is a whole course team and teaching assistants. To read more about Five College course registration click here. At Smith, while some classes have teaching assistants who help out during class, all of the classes are taught and run by our actual professors. We also have student tutors as an academic resource outside of class. To read more about academic support systems at Smith, click here

After finishing up my lab assignment, I start in on my math methods PCCI. A typical PCCI consists of reading a section or two of the textbook (written by our professor) and completing a short practice problem or so-called discovery exercise. Depending on the week, I either start in on my reading assignment for my computer systems class or logic class. At 4:00, I have my weekly one-on-one meeting with my supervisor for my ResLife job. Following the meeting, I relax by listening to music or an audiobook. At 5:00, I order, pick up, and eat my dinner. After dinner, I complete any remaining readings for my computer systems and logic classes. If I haven’t yet completed my lab assignment or have an exam the following day, I devote some of the night to circuits. Otherwise, I may work on a computer systems project or theory of computation assignment. 

Tuesday:

Tuesday’s are my busiest day of the week in terms of class hours. With that said, it’s nothing compared to my Thursdays last fall. I start Tuesdays off with my circuits class. During class, we learn new circuit theory and circuit analysis techniques. We also go through example problems. While we often run out of time to fully work through the extra practice problems in breakout rooms, fortunately, my professor posts videos going over those problems. After taking our feedback into account, we now get a break partway through the class. Each lecture covers a lot of material, so the brain/screen break is much appreciated. To check in on how the class is feeling about various concepts, our professor has us use the annotation feature on a scale from totally get it to totally lost. 

After circuits is my 20-minute break followed by my theory of computation lecture. The theoretical nature of the material means that it really is a lecture. While we obviously go through examples, there aren’t really practice problems as there would be in a math class. We use the chat to some extent in all of my classes, but to a greater degree in this course. Next up is lunch and a COVID test. At 1:40 I am back to circuits for the lab. Most of the labs are virtual with physical lab equipment, but a few have been in-person so that we could use special equipment. Ironically, one of our in-person labs was actually fully virtual in terms of lab equipment. (We were sitting on the lawn outside of Ford together and running circuit simulators on our laptops). Fortunately, we don’t usually need to stay until 4:30. I tend to just collect my data, ask some questions about the material, and then finish up the write-up at a later point in time. This time block is also the one used whenever we have an exam. 

I always start by doing the textbook reading for circuits. I don’t read super closely, but it’s still a good primer for the next class. In terms of other work, Tuesdays are a bit more unpredictable and really depend on how much I got done over the weekend. Specifically, while I usually finish my math methods assignment over the weekend, occasionally I need to finish it up on Tuesday evenings. Likewise, for circuits, I sometimes finish the last few problems on a Tuesday evening. At 7:00, I have a staff meeting with the other community advisors in my neighborhood and our supervisor. Our meetings usually take place over Zoom, but our most recent one was in-person with ice cream from Herrell’s which was a lot of fun. You can read about some other Northampton food locations (restaurants, cafes, and more) here. In weeks where I haven’t yet started my computer systems work, I do what I would usually have done on a Monday on a Tuesday. 

image

Wednesday:

Wednesdays are similar to Mondays without the computer systems lab and ResLife meeting. In the afternoon I often attend office hours for my theory of computation class to ask questions about the weekly assignment. Even though I don’t have my logic class until the following Monday, I usually just do the reading on Wednesday afternoon. On Wednesday evenings, I typically work through my circuits revisions. I also tend to do a good chunk of my computer systems coursework. This consists of watching lecture videos, taking notes, and taking lesson quizzes. Furthermore, I have definitely spent some Wednesday evenings working through computer systems projects. 

Thursday:

Thursdays are like Tuesdays without the circuits lab. Even though I have the whole afternoon free, unfortunately, I am sometimes having to finish up my theory of computation assignment. It’s also common for me to start working on the new math methods problem set. In the case of this Thursday, I played some guitar and then started writing this post. I also do my circuits reading for Tuesday and take the quick lab quiz. If I have any remaining computer systems coursework, I do that as well.  

Friday:

This semester I only have one class on Fridays, math methods. After class, I get a COVID test and an early lunch. I know it seems crazy how many free afternoons I have given that I am taking 22 credits and am a double STEM major. However, part of this is explained by my UMass computer systems course being asynchronous and the fact that I completed the one-credit companion course in C programming before my Smith semester started. My computer systems class was originally scheduled to meet Monday, Wednesday, and Friday afternoons. Even though I wish the class was synchronous, the flexibility of an asynchronous class has been much appreciated. Furthermore, the class was in a terrible time block that would have caused me to miss most of house tea. Back to what a Friday afternoon looks like! After completing my PCCI for math methods, I often rewatch the lecture videos for computer systems (on double speed) and then take the weekly quiz. I next pick up tea snacks from Cutter-Z and attend house tea at 4:30. After tea, I order dinner and often eat it in the living room with housemates. Fridays are definitely my least productive day and I have definitely taken a few weekly quizzes on Saturday after having planned to take them on Friday. Instead of doing real work, I often spend Friday afternoons writing blog posts. As for this post, I wrote most of it yesterday but spent a good chunk of Friday afternoon on it as well. 

Saturday:

Despite my best efforts to have a consistent sleep schedule, I often sleep in on Saturdays until 10:00. I then have a leisurely hour or so of listening to an audiobook. At 11:00, I get an early lunch. As mentioned in the Friday description, I sometimes end up taking my weekly quiz for computer systems on Saturday. When I have tests in math methods, I typically take them on Saturday night. (The tests are timed but are self-scheduled over the given weekend which includes Friday). When there is not a math test, I often work on my math problem set in the afternoon. Every few weeks, I host POCheese at 4:00. This week we are actually going to be meeting at 5:00 for a ramen night! At 6:00 I have a uke club meeting over Zoom. In weeks where I have already finished my math problem set and don’t have a test, I start in on my circuits problem set.

Sunday:

Sundays start like Saturdays in that I often have a leisurely morning. At 11:00 I get a COVID test and an early lunch. Sundays are almost always devoted to my circuits. This includes working through the problems set, the lab writeup, or studying for an upcoming exam. If my Saturday wasn’t as productive as intended, I do the homework described in that section. At 6:00 I have a Society of Women Engineers (SWE) board meeting. At 7:00, I either lead a community meeting (part of my ResLife job) or attend house council. Afterward, I fill out my weekly report (also part of my ResLife job).

Anonymous asked

Hello! 1) What houses have the strongest communities? 2) Can bipoc freshmen join bipoc housing? Are the bipoc houses still accepting members? Thank you!

Hi there! Currently Smith offers 2 affinity houses for students of color! One being a house for students of color in general, and the other being for just Black students. Before, during its pilot, it did not allow first years to live in the housing, but I believe the rules have since changed. While I do believe that affinity housing prioritize upperclassmen because space is limited, usually other Smith houses save rooms for incoming first years to chose from. Additionally, applying for affinity housing is different than choosing traditional housing, but worry not it’s not too complicated :)

Hope this has helped! - Aneliz ‘23

Anonymous asked

I saw you were dojng a minor and getting the coastal certificate in a previous post. How were you able to pursue a 5 college certification and a minor at the same time? I’m interested in doing a double major but also the coastal science certificate sounds very appealing to me, but I’m not just I want to give up getting a major/minor in my other field of interests. How were you able to work out the certificate plus minor?

serendipitous-smithie:

Hi!

I am not getting the certificate listed on my Smith degree - it will be a separate certificate from the 5 College CMS program. It’s how the registrars office told me I was able to find a loophole to get all of them officially.

Hope this helps,

Hazel

Course Registration

addierose444:

Last Thursday, I registered for my fall 2021 courses. It’s crazy to think that by the time I start those courses I will be a junior and halfway through my time at Smith. Course registration was a bit different this semester as we just transitioned to Workday from BannerWeb. In the old system, you needed a registration code from your advisor and had to manually enter five-digit codes for each course. With the new system, your advisor directly lifts the hold on your account after your advising meeting. You can read more about advising at Smith here. In Workday, you build your planned schedule in advance of registration. When the actual registration window opens, it is as simple and clicking the orange “Start Registration” button under your saved schedule. The new process is super easy and thus didn’t really warrant a whole post.

One aspect of registration that remains the same as in past semesters, but that was new to me was the process of submitting Course Eligibility Waivers (also known as the JOT override form). This form is required for courses that are either full or exclusively do registration by permission/waitlist. Furthermore, the form is necessary in cases where you don’t meet an eligibility requirement (prerequisite, major, class year, etc.), but can justify why you should be allowed to enroll. The form opens on, or just before, the first day of registration and can be found in the academics section of Workday. It’s not clear how much you are supposed to write, but I definitely took the process of outlining my prerequisites and academic/career interests seriously. For my engineering course, which is enrolled by instructor permission only, I was fortunately approved within just a few days. (I submitted the form on Monday and was approved on Thursday). I also submitted an override form for an elective but am still waiting to hear back about it. For some of the more official information about course registration, click here. You can also read about my experience with Five College registration here

As for Workday, I honestly don’t really know what it is. For my entire time at Smith, Workday has been used to manage various aspects of being a Smith employee or student worker. Specifically, Workday is where we submit hours, set up direct deposit, and download tax documents. Furthermore, Workday is where on-campus jobs are posted. You can read more about on-campus jobs here. With the new academics section of Workday, you can also view your academic record.

The most fun part of the registration process is looking through the course offerings. While this can be done directly in Workday, I still prefer to use Course Search as it’s much easier to read the course descriptions. On the other hand, Workday allows you to filter classes by meeting pattern (day and time block). I suspect that the course search functionality of Workday will improve in future semesters. 

In addition to looking at course offerings for next semester, it’s often useful to consider past and future semesters. Specifically, if a particular course that you are excited about is only offered every other fall it may be worth prioritizing over a course that is consistently offered every semester. In addition to the aforementioned course search tools, the actual course catalog can be a good resource. Beyond general trends, you can sometimes get more detailed information about what will be offered the following semester. As an example, in the presentation of the engineering major, they shared a list of the planned courses for spring 2022. I know that seems a long way off, but that information played a key role in my course selections for fall 2021. Furthermore, just by asking my advisor, I was able to get a list of spring 2022 computer science electives. 

I know that this may all sound overwhelming (multiple websites and having to think a year out), but believe me, it’s so much fun exploring the course offerings. While the information about BannerWeb is now obsolete, here is some advice that I wrote specifically for first-years. The one aspect of course registration that is not so fun is trying to deal with schedule conflicts. 

elianthvia:

Pandemic (Mis)adventures

We are seeing the beginning of the end of the pandemic. We just need to hold on for a little longer, but the unexpected always happens.

Quarantine Vol. 2: The Ellery missed me

Two weeks ago on April 10th, I transformed into a number on the Smith College COVID-19 Screening Data: Smith College’s contact tracing team contacted me about my possible exposure to covid and the urgent need for me to quarantine. (Note: Isolation is for students who are tested positive; quarantine is for students who are identified as a close contact with someone who is tested positive. I did not know the student in isolation, but I hope they were doing okay.) One hour after receiving the sudden notice, I was picked up by a car. Back to the Ellery (one of Smith’s quarantine locations) I went. This time, I was to stay there for a week.

image

Due to confidentiality reasons, I won’t go into details about how I was identified as a close contact; rather, I will focus on my own quarantine experience.

Being trapped in a hotel room during the semester when the sky was blue and the weather was warm was not the most pleasant experience, but I learnt to see the glass half full. A private bathroom, a king-sized bed, a mini-fridge, and a Roku TV were all at my disposal. I could sing karaoke, roll on my bed, or turn the hotel room into a movie theatre, whichever option I desire.

image

 Every day in quarantine was surprisingly different. The first day I had a few miniature invertebrate visitors to my lonely abode: ants (because I forgot to bring in my dinner delivery on my doorstep in time.) The uninvited little friends were carefully squished into a mush before they had the chance to enjoy the night. The second day my friend dropped off a greeting card with a personalized crossword puzzle abound with inside jokes outside my room to help me pass time in isolation. On the third day, a contact tracer came and handed me a covid test kit; I was later tested negative. On the fourth day, the quarantine hotel saw new arrivals and I had some neighbors. Later that day when I checked the covid screening dashboard, the number of students in quarantine did jump, reflecting what I witnessed. This time the change in numbers on the screening data felt more personal: These were real people, and they were living down the hall! If we weren’t in a pandemic, I would knock on their door and ask what brought them here. On the fifth day, I was tested again and received a negative result, which heralded my release from quarantine on the next day.

image

The pandemic reveals the best (and the worst) of humanity. During my time in quarantine, I combated with the fear of being judged, as exposure to covid often suggests defiance, irresponsibility, and recklessness. It is associated with shame and guilt. I constantly felt the need to justify, to emphasize that I did not attend a group gathering or purposefully break social distancing guidelines. Stereotyping people who have been unfortunately exposed to or contracted covid does not help battle the virus. My friends and professors, to my relief, showed me genuine care about my well-being and offered me support, all of which warmed my heart.

image

Getting vaccinated

On April 19th, two days after I returned to my on-campus housing assignment, Massachusetts entered Phase 3 of the vaccine distribution plan, which means that everyone over 16 is eligible for the covid vaccine. Snatching a vaccine appointment became the central theme of the week. It was everyone’s dinner topic. Covid vaccine opportunities channels were created on Discord. Guides to finding available appointments were circulated. Request to Leave Northampton Area Forms were filled by students who got appointments in clinics miles away from campus. Rides were arranged in Facebook group chats. Classes were skipped to call parents regarding insurance information.

I, as a socially predictable human being, also did everything to secure a spot to get vaccinated. My effort paid off. I successfully found an appointment for the next day at a vaccine clinic 20 minutes’ walk from Smith, and I patted myself on the back for my quick action and resourcefulness.

My brief moment of pride and ecstasy didn’t last long. Only one day after I booked the appointment, Smith sent out an email announcing that there would be a vaccine clinic open to all students, staff and faculty, on campus, this weekend. While others were overjoyed, I was lamenting the time lost to trying to find a vaccine appointment myself. Now I faced a dilemma: To cancel my old appointment or not to cancel? Should I walk for 20 minutes the next day which was forecasted to be thunderstorming, or should I wait for the weekend?

image

It was a difficult decision to make. My one friend, who also scheduled for a vaccine at the same place on the same day as mine, wisely reminded me that it would be rude to give such short notice to the clinic. So I listened. With two friends who were former Hubbard residents like me, I walked to the clinic on a windy Wednesday afternoon and got soaking wet in the rain on the way back. The trip was worth it, though, to get the spike proteins churning. Besides a sore arm, I didn’t experience other side effects. I so look forward to my second dose, the longed-for immunity, and the liberty we all might soon enjoy again.

Thanks, science and technology, for illuminating the light at the end of the tunnel.

image

theesmithie:

declaring my major!

If I’m being honest with you all, I’ve been saying I’m a Computer Science major probably since my first semester at Smith despite me not actually officially declaring. I was pretty sure of what I wanted to major in before actually coming to Smith, but I wanted to give myself the space to explore some classes before really committing.


It took me until literally the last minute to actually officially declare… not a good idea! Please don’t do this!! I definitely don’t recommend it. I do, however, recommend not declaring right away. Many people have some idea of what they want to major in and declare right away, and some unfortunate people realize too late that their major is actually not what they actually want to study.


No fear! You can always change your major during your first two years of college, but I think giving your space to explore is also very valuable. Especially with Smith’s open curriculum, some may find it rather easy to just take classes that are in their realm of study. However, despite being a STEM major, I actually took a lot of humanities courses alongside my major requirement courses. I’ve really enjoyed them! I think having a balance between the two has made my semesters not too busy but also very interesting.


But alas, after 1 and a half year, I decided that I do indeed want to major in cs and I finally did just that! It isn’t hard at all. For computer science specifically, when you go on the cs page on the Smith website, there is a form you can take to pick an advisor for the major. Before declaring, everyone gets a liberal arts advisor. They may not necessarily be in the field you plan on majoring in, they’re really just there to help you get started! Mine was a Spanish professor, which is obviously very different from CS.


Every time we have registration, we have to meet with our advisors prior to discuss what courses we plan to take for the following semester. Your advisor is there to help you! Sometimes they might recommend a course that you wouldn’t have previously considered, or they might warn you that your workload might be too heavy for you to handle. Previously we did registration on a website called BannerWeb which required a code to be given by our advisors, but we recently switched to do registration on another website. Now, you have to meet with your advisor still, but they just have to take off a hold on your registration account.


Once you declare, you get an advisor that is in your major. You just have to get your new advisor to sign the declaration form, and also get your previous liberal arts advisor to sign, and then you turn it in to the Registrar’s Office so that it can process. It’s really simple!


I think CS is unique with having the advisor form, but no worries! If you take some classes from your major before declaring, you might find that you really like the professor that you took a certain class with. You can even personally ask them to be your advisor. Even if they say no, I’m sure they’d be happy to advise you on who else in the major you can ask.


Usually you will find smithies take pictures in front of the front gate at Smith with their declaration form, but I unfortunately did not have the opportunity to do that because of the pandemic. However, Smith has released plans of having us all be in person for next fall, so maybe I’ll get the photoshoot I’ve been wanting!


Here is a photo proving that I am a CS major anyway :P :

image
tc