<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.3">Jekyll</generator><link href="https://jcsnap.github.io/blog/feed.xml" rel="self" type="application/atom+xml" /><link href="https://jcsnap.github.io/blog/" rel="alternate" type="text/html" /><updated>2026-05-24T20:42:03+08:00</updated><id>https://jcsnap.github.io/blog/feed.xml</id><title type="html">Blog by JCSnap</title><subtitle>This is my writing space. I write about things that interest me, from tech to philosophy to random thoughts.</subtitle><entry><title type="html">Thoughts on AI</title><link href="https://jcsnap.github.io/blog/jekyll/update/2026/05/24/thoughts-on-ai.html" rel="alternate" type="text/html" title="Thoughts on AI" /><published>2026-05-24T00:00:00+08:00</published><updated>2026-05-24T00:00:00+08:00</updated><id>https://jcsnap.github.io/blog/jekyll/update/2026/05/24/thoughts-on-ai</id><content type="html" xml:base="https://jcsnap.github.io/blog/jekyll/update/2026/05/24/thoughts-on-ai.html">&lt;h2 id=&quot;some-background&quot;&gt;Some background&lt;/h2&gt;
&lt;p&gt;I studied CS and was part of the few batches that experienced the whole AI transition within my college lifetime. In year 2, I was coding a &lt;a href=&quot;https://github.com/JCSnap/the-alien-that-eats-the-carrot&quot;&gt;2D RPG game&lt;/a&gt; from scratch without AI - building the game engine, tracing bugs through the physics engine, and in year 4, I was running 6 Claude Code sessions in parallel building
&lt;a href=&quot;https://reneducation.com&quot;&gt;ren.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have some thoughts on AI, but I am still trying to consolidate them, so maybe I’ll start by focusing more on the practical side of things from the perspective of someone who has been using it quite extensively while building a startup. It’s a dump so it might be a bit all over the place, but I hope it can be useful to someone.&lt;/p&gt;

&lt;h2 id=&quot;is-ai-going-to-replace-software-engineers&quot;&gt;Is AI going to replace software engineers?&lt;/h2&gt;
&lt;p&gt;A heuristic I have been using is: can &lt;em&gt;a non-technical Claude Code power user that I know&lt;/em&gt; do the things that I do at ren?&lt;/p&gt;

&lt;p&gt;If the answer is yes, that would be quite worrying, because it either means that software engineering is solved, or that I have a skill issue.&lt;/p&gt;

&lt;p&gt;But if the answer is no, then why? What are the things that I do that a non-technical power user can’t do?&lt;/p&gt;

&lt;p&gt;When “vibe coders” confront me with such questions, as much as I can throw around terms like “design patterns”, “software architecture”, “maintainability”, it’s very difficult to put across the value of these things concretely.&lt;/p&gt;

&lt;p&gt;“But I can just ask Claude Code to suggest the best design pattern for this problem, and it will do it for me, right?”&lt;/p&gt;

&lt;p&gt;I think what differentiates an engineer and a non-technical power user is one’s ability to internalize the tradeoffs and pushback if necessary. But instead of trying to explain in abstract terms, what I find to be more effective is to show specific examples where my input as an engineer has altered the course of Claude Code (in a good way).&lt;/p&gt;

&lt;p&gt;And to have this “bank” of examples, I created a skill that I call &lt;a href=&quot;https://github.com/JCSnap/claude-code-skills/blob/main/skills/pushback-vault/SKILL.md&quot;&gt;pushback vault&lt;/a&gt;. Every time I have to push back on Claude Code, an entry is automatically written to the vault, which contains:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;context of the problem at hand&lt;/li&gt;
  &lt;li&gt;verbatim quote of the user message that “pushed back” on Claude Code&lt;/li&gt;
  &lt;li&gt;what changed as a result&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most recent example is where we are working on an experimental feature where we want to give interns different permissions to our admin dashboard. Claude Code suggested we add boolean flags for the permissions, and I pushed back to use JSON. Here is the entry:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;## Context

We were changing Rubric manage access so product interns could view Overview and Insights without getting access to content, grants, or other admin actions. I started implementing fixed boolean columns on `PrepUser` for each capability, while preserving `Teacher.isAdmin` as a superuser fallback.

## The pushback(s)

### 1. Match the existing permission model

&amp;gt; &quot;do we want to set in stone the different permissions as db columns, or deal with it the way we deal with the apikey and organisation permissions, where we use json?&quot;

I had moved too quickly from capability design into concrete boolean columns. The user pointed out that the repo already has a precedent for flexible permission arrays in org roles and API key scopes, which is the more appropriate model for a growing Rubric permission surface.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The state of the codebase is a cumulation of many such “small” decisions. It requires technical knowledge, a good mental model of the core system, and intuition about tradeoffs to maintain the integrity of the codebase, especially with AI.&lt;/p&gt;

&lt;p&gt;If I ever reach a point where there are no longer any pushbacks, one of these must be true:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;I have figured out how to break tasks down into small enough problems that I can completely trust Claude Code’s judgment (in which case the act of breaking down the problem is my value add as an engineer)&lt;/li&gt;
  &lt;li&gt;I have become lazy, which means the entropy of the codebase is bound to increase (that is a sign to slow down and start focusing on technical debt)&lt;/li&gt;
  &lt;li&gt;I have reached a skill ceiling where I can no longer recognize the problems that need to be pushed back on (which is a sign that I need to start learning more and leveling up my skills)&lt;/li&gt;
  &lt;li&gt;Software engineering is solved&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As an engineer, a good mental model to have is: “is what I’m doing now replaceable by another Claude Code tab?”&lt;/p&gt;

&lt;p&gt;If the answer is no, you don’t have to worry too much (yet). If the answer is yes, I’m not sure if I’m in a position to give advice - but it might be worth reflecting and seeking advice elsewhere.&lt;/p&gt;

&lt;p&gt;Sidenote: I also have a &lt;a href=&quot;https://github.com/JCSnap/claude-code-skills/tree/main/skills/se-insights&quot;&gt;skill&lt;/a&gt; that auto runs in the background to provide bite-sized and non-trivial SWE concepts to mitigate some of the brain rot from using Claude.&lt;/p&gt;

&lt;h2 id=&quot;on-productivity-with-ai&quot;&gt;On productivity with AI&lt;/h2&gt;
&lt;p&gt;I scroll TikTok (a lot), and I’ve been seeing a lot of comments calling AI “overhyped” and claiming it provides “no value”. I suspect that a lot of these comments are from people who did not go beyond (or found a use case for) entering prompts into ChatGPT’s web interface.&lt;/p&gt;

&lt;p&gt;Maybe I’m “AI pilled”, but as someone running a small startup, I realised that we have been able to do so much more with the same amount of resources, and I’m not just talking about coding.&lt;/p&gt;

&lt;p&gt;For instance, our accounting bookkeeping is hosted on a private GitHub repo. Because we use &lt;a href=&quot;https://github.com/beancount/beancount&quot;&gt;beancount&lt;/a&gt;, entries are just text files, which means we can just say “Justin paid $20 for Vercel this month” and Claude Code can:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;interpret the human language, translate it into double entry bookkeeping format, and add it to the ledger&lt;/li&gt;
  &lt;li&gt;run beancount commands to check if the ledger is balanced&lt;/li&gt;
  &lt;li&gt;version control using git&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We have Openclaw set up where we could just send the receipt to a Telegram channel, and Openclaw will help us commit the change to the ledger.&lt;/p&gt;

&lt;div style=&quot;text-align: center&quot;&gt;&lt;img src=&quot;/blog/assets/images/ren-finance.png&quot; alt=&quot;ren finance&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;

&lt;p&gt;I’ll go as far as to say that this is more “correct” and “maintainable” than having an Excel sheet or accounting software for startups at our scale.&lt;/p&gt;

&lt;p&gt;Likewise, we use a variant of Andrej Karpathy’s &lt;a href=&quot;https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f&quot;&gt;LLM Wiki&lt;/a&gt; for our internal docs, which also allows us to query it in natural language on Telegram through Openclaw.&lt;/p&gt;

&lt;p&gt;We built a crawler that runs in the background for hours or days, scraping and indexing past year papers, and we have open sourced it as &lt;a href=&quot;https://rex.reneducation.com&quot;&gt;rex&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We taught our non-technical marketing interns to create custom skills for marketing and operations tasks, which has been a huge force multiplier for us. We created a brand kit to make it easy to create documents using LaTeX / HTML to PDF.&lt;/p&gt;

&lt;p&gt;For the tech interns, they just need to clone a “master” repo, which contains all the custom skills we created, including skills to clone other repos, install dependencies, set up the environment (like creating the local database), and it even ends off with “check Bitwarden for the env variables”.&lt;/p&gt;

&lt;p&gt;Using AI has reduced the cognitive overhead of doing a lot of ad hoc tasks (who wants to waste time maintaining an Excel sheet for bookkeeping?) and allowed us to focus our mental energy on the things we care about.&lt;/p&gt;

&lt;h2 id=&quot;on-ai-coding-workflow&quot;&gt;On AI coding workflow&lt;/h2&gt;

&lt;p&gt;The bottleneck of AI coding is not the speed of writing code, but verifying correctness.&lt;/p&gt;

&lt;p&gt;So a substantial effort should be put into building the correct harness, such that we can improve the agents’ ability to run long-running tasks without human intervention without undermining the quality of the output.&lt;/p&gt;

&lt;h3 id=&quot;treat-cli-as-first-class-citizen&quot;&gt;Treat CLI as first class citizen&lt;/h3&gt;

&lt;p&gt;For simple applications, AI can verify correctness trivially - start the server, curl the endpoints, done.&lt;/p&gt;

&lt;p&gt;The harder case is when correctness depends on side effects. Consider a feature where a user uploads a PDF on the frontend: the backend uploads it to S3, writes metadata to the DB, and enqueues a job. A worker then picks up that job, downloads the file, fetches the metadata, and does complex processing.&lt;/p&gt;

&lt;p&gt;To test the correctness of the “complex processing”, you’d have to: go to the client, upload the file, wait, copy the error to Claude Code, repeat. That loop has too much human-in-the-middle friction for AI to iterate quickly.&lt;/p&gt;

&lt;p&gt;The fix is to expose a CLI wrapper over the core logic using the &lt;a href=&quot;https://refactoring.guru/design-patterns/adapter&quot;&gt;adapter pattern&lt;/a&gt; or otherwise, so the worker’s domain logic can be invoked directly, without the queue, S3, or frontend:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ python -m some_module.some_logic --file some_file.pdf --metadata some_metadata.json
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This is the same principle as designing server code to be injectable for unit tests, except we are designing it to be injectable for the CLI too. AI can then run the command, observe the output, and iterate without any human interaction in the loop. &lt;a href=&quot;https://github.com/HKUDS/CLI-Anything&quot;&gt;CLI-Anything&lt;/a&gt; might be a good start to convert some of your side projects to CLI.&lt;/p&gt;

&lt;p&gt;One example we have with this pattern is &lt;a href=&quot;https://github.com/ren-education/ren-rex/tree/main/server&quot;&gt;rex&lt;/a&gt;, where domain logic is shared between the API and the CLI, except in this case the app is probably trivial enough for us to not need a CLI.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/blog/assets/images/rex-cli-api.png&quot; alt=&quot;server architecture&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Likewise, when dealing with infra (e.g. provisioning servers or DBs in AWS), I prefer to use CLI over GUI.&lt;/p&gt;

&lt;h3 id=&quot;debugging&quot;&gt;Debugging&lt;/h3&gt;
&lt;p&gt;It’s crazy how much AI agents can help with debugging (without human intervention) when you give them the correct tools.&lt;/p&gt;

&lt;p&gt;We use AI to debug production issues by:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;giving Claude Code a read-only role for our prod DB&lt;/li&gt;
  &lt;li&gt;giving Claude Code access to our AWS CLI with read-only access to CloudWatch and S3, where it can query our backend logs&lt;/li&gt;
  &lt;li&gt;integrating Sentry MCP (fallback to Vercel CLI) to query Next.js error logs and events&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All these are noted down in a custom skill.&lt;/p&gt;

&lt;p&gt;For local development:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;full psql access to our local DB&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/ChromeDevTools/chrome-devtools-mcp&quot;&gt;Chrome DevTools MCP&lt;/a&gt; to spawn headless browsers for frontend testing (we bypass and hardcode auth for local development)&lt;/li&gt;
  &lt;li&gt;a curated directory of resources (since we deal a lot with grading, we need sample PDFs for testing), and making our backend CLI-friendly allows for this&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also have a custom skill for local debugging.&lt;/p&gt;

&lt;p&gt;For instance, this is one example of a debugging workflow:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Bug is reported, human invokes custom skill&lt;/li&gt;
  &lt;li&gt;Claude Code starts investigating. If it is a frontend or Next.js backend bug, it filters Sentry or Vercel logs in the past 1 hour. If it is our backend services bug, it uses AWS CLI to pull backend logs&lt;/li&gt;
  &lt;li&gt;Based on the information, it traverses the codebase to find the cause&lt;/li&gt;
  &lt;li&gt;If needed, it psqls into prod DB using the read-only role to find exact data with the bug, and downloads the exact files from S3&lt;/li&gt;
  &lt;li&gt;It spawns a headless browser using Chrome DevTools MCP if it’s a frontend bug, and injects the exact data or file to our local backend to recreate the bug&lt;/li&gt;
  &lt;li&gt;Once the bug is recreated and identified, it uses red-green TDD to make the code changes&lt;/li&gt;
  &lt;li&gt;It verifies the fix using Chrome DevTools for frontend or CLI for backend&lt;/li&gt;
  &lt;li&gt;It commits, pushes and creates a PR using the GitHub CLI&lt;/li&gt;
  &lt;li&gt;Human reviews and merges&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As we can see, the human intervenes at steps &lt;strong&gt;1&lt;/strong&gt; and &lt;strong&gt;9&lt;/strong&gt;, and steps &lt;strong&gt;2&lt;/strong&gt; to &lt;strong&gt;8&lt;/strong&gt; can run autonomously in loops by agents.&lt;/p&gt;

&lt;h3 id=&quot;building-with-ai&quot;&gt;Building with AI&lt;/h3&gt;

&lt;h4 id=&quot;coding-agents&quot;&gt;Coding agents&lt;/h4&gt;
&lt;p&gt;I’ve tried Claude Code, Codex, Opencode (with Kimi K2.5), Pi (with Kimi K2.5), Cursor, Gemini (now Antigravity).&lt;/p&gt;

&lt;p&gt;Anthropic models used to be the SOTA, but I think OpenAI models are equivalent now. We have a 5x Claude Code subscription but if we ever need to increase usage, I would get a 5x Claude and a 5x Codex. The Codex harness is way less buggy and the &lt;a href=&quot;https://github.com/openai/codex/issues/21258&quot;&gt;bug report&lt;/a&gt; I made was responded to in one day. On the other hand, the Claude Code &lt;a href=&quot;https://github.com/anthropics/claude-code/issues/14399#event-25178671520&quot;&gt;bug report&lt;/a&gt; I was monitoring has not been addressed after almost a year, and it was even marked as complete!&lt;/p&gt;

&lt;p&gt;I stopped using Cursor a while ago. I only use Opencode and Pi when I have free credits to burn but they look promising. Gemini was bad. I will try and form my opinions on Antigravity soon.&lt;/p&gt;

&lt;h4 id=&quot;skills-and-guardrails&quot;&gt;Skills and guardrails&lt;/h4&gt;
&lt;p&gt;For non-trivial features, we use the &lt;a href=&quot;https://github.com/obra/superpowers&quot;&gt;superpowers&lt;/a&gt; skill. gstack is an obnoxious bloatware.&lt;/p&gt;

&lt;p&gt;For UI/UX, apart from the commonly known frontend design skill, I find &lt;a href=&quot;https://impeccable.style/&quot;&gt;impeccable&lt;/a&gt; to be quite useful. For instance, you can run the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npx impeccable detect&lt;/code&gt; command to detect AI slop.&lt;/p&gt;

&lt;p&gt;I am still experimenting with this, but we use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CLAUDE.md&lt;/code&gt; to enforce certain standards, and include patterns where we keep having to correct AI mistakes in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;lessons.md&lt;/code&gt;. The default models are very smart - don’t oversaturate them with trivial information like tech stack, patterns, etc. since those can mostly be inferred from your codebase.&lt;/p&gt;

&lt;p&gt;For reference, here are some rules we have included in our frontend &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CLAUDE.md&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;lessons.md&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;other than type linting, we run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;yarn impeccable&lt;/code&gt;, which runs &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npx impeccable detect&lt;/code&gt; to flag out potential cases of AI slop&lt;/li&gt;
  &lt;li&gt;we want features to be localized - e.g. UI, logic, types, tests for a specific feature or page should be in the same directory. The point is to clearly differentiate the “leaf nodes” as referenced in &lt;a href=&quot;https://www.youtube.com/watch?v=78EYLieMpvc&quot;&gt;Anthropic’s talk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;never use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;any&lt;/code&gt; for TypeScript&lt;/li&gt;
  &lt;li&gt;JSON objects that cross the frontend to backend boundary (e.g. DB columns) need to have contract tests&lt;/li&gt;
  &lt;li&gt;user-facing copy (e.g. tooltips, labels, error messages) are written for [insert target audience], since AI has a tendency to add very descriptive text using developer vocabulary. For example, we have features where we save to local storage first before saving to DB. The AI has a tendency to write toasts like “Changes persisted to database.” instead of “Your changes are saved.”&lt;/li&gt;
  &lt;li&gt;domain-specific vocabularies&lt;/li&gt;
  &lt;li&gt;validate with Zod instead of typecasting&lt;/li&gt;
  &lt;li&gt;prefetch on hover, and other rules&lt;/li&gt;
  &lt;li&gt;enforce permission gates server-side instead of client-side&lt;/li&gt;
  &lt;li&gt;use the specified source of truth for routes or S3 key builder&lt;/li&gt;
  &lt;li&gt;prefer parallel execution for independent async operations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For backend:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;use Pydantic models or TypedDicts instead of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Dict[str, Any]&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;modularise to make injection for testing or CLI easier&lt;/li&gt;
  &lt;li&gt;some framework-specific quirks like eager-loading when using SQLAlchemy&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;evals-and-goal-driven-tasks&quot;&gt;Evals and goal-driven tasks&lt;/h4&gt;
&lt;p&gt;I’m sure some of you have heard of &lt;a href=&quot;https://deepmind.google/blog/alphaevolve-a-gemini-powered-coding-agent-for-designing-advanced-algorithms/&quot;&gt;AlphaEvolve&lt;/a&gt; or &lt;a href=&quot;https://github.com/algorithmicsuperintelligence/openevolve&quot;&gt;OpenEvolve&lt;/a&gt;. The reason they work is because there is a quantifiable metric for “good” and “better”.&lt;/p&gt;

&lt;p&gt;Surprisingly, AI agents are quite good at solving optimisation problems, taking inspiration from OpenEvolve and Andrej Karpathy’s &lt;a href=&quot;https://github.com/karpathy/autoresearch&quot;&gt;autoresearch&lt;/a&gt;. The trick is identifying such problems which we can turn into optimisation problems.&lt;/p&gt;

&lt;p&gt;Suppose I want to create a service that takes in a PDF with handwritten text and extracts the words or sentences that are cancelled out. Like any other GPT wrapper, I would probably call OpenAI’s API with something like:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Hey ChatGPT, extract the cancelled out words, make no mistakes.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;alongside the essay PDF.&lt;/p&gt;

&lt;p&gt;But the AI would probably perform badly.&lt;/p&gt;

&lt;p&gt;Interestingly, we can apply principles of machine learning to prompt engineering (I’m not kidding).&lt;/p&gt;

&lt;p&gt;The first step is creating the dataset. We can manually look through a few handwritten PDFs and extract the words that are struck through, and put them in a structured format (JSON or YAML). This will make up our gold standard.&lt;/p&gt;

&lt;p&gt;Depending on the use case, we can define an evaluation criteria. For instance, if we want to grade the PDFs, false positives and false negatives are probably equally bad, so we could use F1 score as the evaluation metric.&lt;/p&gt;

&lt;p&gt;The AI agent can then call the service with the PDFs, compare the LLM’s identified crossed-out words against the gold standard, and calculate the score accordingly.&lt;/p&gt;

&lt;p&gt;You can then use the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/goal&lt;/code&gt; command to run it with the necessary guardrails - for instance:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;giving it the freedom to modify the prompt (without hardcoding)&lt;/li&gt;
  &lt;li&gt;giving it the freedom to modify the &lt;a href=&quot;https://developers.openai.com/cookbook/examples/multimodal/document_and_multimodal_understanding_tips&quot;&gt;parameters&lt;/a&gt;, such as setting the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;detail&lt;/code&gt; field, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;verbosity&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;reasoning&lt;/code&gt;, and adding a code interpreter&lt;/li&gt;
  &lt;li&gt;giving it the freedom to modify the architecture, add phases, add tools to zoom in, etc.&lt;/li&gt;
  &lt;li&gt;giving it the freedom to change models and providers (just make sure you have the API keys of the other providers in your .env)&lt;/li&gt;
  &lt;li&gt;giving it web search ability (e.g. using Firecrawl) to do research for new experiment ideas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Make sure it writes the different experiments and findings to a markdown file.&lt;/p&gt;

&lt;p&gt;It will then be able to run for hours, doing research, conducting experiments, running evals, and exploring and hill climbing until it finds the most optimal prompt or parameters to extract crossed-out words from PDFs.&lt;/p&gt;

&lt;p&gt;Of course, just like how you would treat machine learning tasks, you would have to set proper guardrails to prevent overfitting, such as leaking gold standard details into the prompt.&lt;/p&gt;

&lt;h2 id=&quot;end-of-sentence&quot;&gt;End of sentence&lt;/h2&gt;
&lt;p&gt;I’m still learning how to make use of AI effectively, but these are what I have for now. As for my actual thoughts on AI, I’m still thinking - so I might have to write another piece.&lt;/p&gt;</content><author><name></name></author><category term="jekyll" /><category term="update" /><summary type="html">Some background I studied CS and was part of the few batches that experienced the whole AI transition within my college lifetime. In year 2, I was coding a 2D RPG game from scratch without AI - building the game engine, tracing bugs through the physics engine, and in year 4, I was running 6 Claude Code sessions in parallel building ren.</summary></entry><entry><title type="html">Advice to Juniors from the Future (ongoing)</title><link href="https://jcsnap.github.io/blog/jekyll/update/2024/04/14/advice-to-juniors.html" rel="alternate" type="text/html" title="Advice to Juniors from the Future (ongoing)" /><published>2024-04-14T15:47:50+08:00</published><updated>2024-04-14T15:47:50+08:00</updated><id>https://jcsnap.github.io/blog/jekyll/update/2024/04/14/advice-to-juniors</id><content type="html" xml:base="https://jcsnap.github.io/blog/jekyll/update/2024/04/14/advice-to-juniors.html">&lt;h2 id=&quot;preface&quot;&gt;Preface&lt;/h2&gt;

&lt;p&gt;Firstly, there are a lot of good advice &lt;a href=&quot;https://github.com/nushackers/notes-to-cs-freshmen-from-the-future&quot;&gt;here&lt;/a&gt; so do take a look at it first. This article will be somewhat similar, given from my own personal perspective. Rapid bullet style. Note this list is not intended to be followed rigidly!&lt;/p&gt;

&lt;h2 id=&quot;you-are-in-year-1-now-what&quot;&gt;You are in year 1. Now what?&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Take CS1101S seriously. Finish the quests on top of the missions, talk and discuss with your friends if needed. You will learn a lot and build up your foundations&lt;/li&gt;
  &lt;li&gt;Understand and practice &lt;a href=&quot;https://dev.to/_bigblind/quick-tip-programming-by-wishful-thinking-3hn&quot;&gt;Wishful Thinking&lt;/a&gt; (or &lt;a href=&quot;https://math.hws.edu/javanotes/c4/s1.html&quot;&gt;Blackbox-ing&lt;/a&gt;), you will start to appreciate it more and more&lt;/li&gt;
  &lt;li&gt;Create a Github account&lt;/li&gt;
  &lt;li&gt;Join the &lt;a href=&quot;https://t.me/nushackers_chat&quot;&gt;NUS Hackers&lt;/a&gt; chat&lt;/li&gt;
  &lt;li&gt;Look out for CS related CCAs where you can work on technical stuff. Raffles Hall Developers for instance, or NUS Fintech Society, or Google Development Club. Note that StartIT, Computing Club, and NUS Hackers are more “committee” based clubs rather than technical clubs&lt;/li&gt;
  &lt;li&gt;Take part in CS1101S’s sumo-bot challenge. It’s a fun experience!&lt;/li&gt;
  &lt;li&gt;Join some Hackathons. Eg. Hack and Roll (by NUS Hackers), Hack for Good (by GDSC), or the ones organised by other universities / organisations&lt;/li&gt;
  &lt;li&gt;Start learning version controls (eg. Git)&lt;/li&gt;
  &lt;li&gt;Start exploring the basics of frontend development - CSS, HTML, Javascript&lt;/li&gt;
  &lt;li&gt;Try creating a simple project and upload it to Github (A telegram bot, a static personal website)&lt;/li&gt;
  &lt;li&gt;Attend NUS Hackers events. Go for Friday Hacks talks once in a while. There are many interesting talks (and pizza and bubble tea)&lt;/li&gt;
  &lt;li&gt;Consider following &lt;a href=&quot;https://nuswit.wixsite.com/nuswit&quot;&gt;Women in Tech&lt;/a&gt; and joining their events (if you are a girl)&lt;/li&gt;
  &lt;li&gt;Start using the terminal and do some basic &lt;a href=&quot;https://mally.stanford.edu/~sr/computing/basic-unix.html&quot;&gt;UNIX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Join the &lt;a href=&quot;https://t.me/projectintern&quot;&gt;Project Intern&lt;/a&gt; chat&lt;/li&gt;
  &lt;li&gt;Consider taking &lt;a href=&quot;https://nusmods.com/courses/CP3108B/independent-work&quot;&gt;CP3108B&lt;/a&gt; to contribute to Source Academy&lt;/li&gt;
  &lt;li&gt;Get Github copilot (It’s free if you use your student account)&lt;/li&gt;
  &lt;li&gt;Do some sports. Join some fun CCAs for your hall/NUS, make new friends&lt;/li&gt;
  &lt;li&gt;Explore and learn a bit of &lt;a href=&quot;https://www.markdownguide.org/&quot;&gt;Markdown&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Start exploring &lt;a href=&quot;https://vim.rtorr.com/&quot;&gt;Vim keybindings&lt;/a&gt;, or take it seriously when doing CS2030S (you might end up using it even after the course ends)&lt;/li&gt;
  &lt;li&gt;Don’t whine on &lt;a href=&quot;https://t.me/NUSConfessIT&quot;&gt;Confessit&lt;/a&gt; or Reddit. Don’t let your grades affect your learning&lt;/li&gt;
  &lt;li&gt;Start working on your resume&lt;/li&gt;
  &lt;li&gt;Start thinking about what you want to do during the summer&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;it-is-almost-y1-summer-now-what&quot;&gt;It is almost Y1 summer. Now what?&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Set up a Linkedin account and start applying for internships&lt;/li&gt;
  &lt;li&gt;One: If you are a beginner and you want to learn about building cool stuff (+ 4MC), consider doing &lt;a href=&quot;https://orbital.comp.nus.edu.sg/&quot;&gt;Orbital&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Two: If you manage to secure an internship in a tech role, considering going for it&lt;/li&gt;
  &lt;li&gt;Three: If you are a bit more experienced and you did not secure an internship, consider &lt;a href=&quot;https://www.comp.nus.edu.sg/~vwo/&quot;&gt;CVWO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Four: If you are interested in research, I think they have a new programme for it&lt;/li&gt;
  &lt;li&gt;Five: You can consider applying for &lt;a href=&quot;https://summerofcode.withgoogle.com/&quot;&gt;Google Summer of Code&lt;/a&gt;, or contribute to open source projects like &lt;a href=&quot;https://github.com/nusmodifications&quot;&gt;NUSMods&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Six: Consider going for &lt;a href=&quot;https://github.com/NUS-SoC-TIPS&quot;&gt;TIPS&lt;/a&gt; if you want to learn how to prepare for technical interviews. They will send out an email closer to summer&lt;/li&gt;
  &lt;li&gt;Seven: Relax and travel, spend time with your family and friends. It’s okay to spend time for yourself&lt;/li&gt;
  &lt;li&gt;Learn about how different technologies come together to make software works. Have a general understanding of what is frontend, what is backend. Server vs server-less. Frameworks vs libraries. How to host applications etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;you-are-in-year-2-now-what&quot;&gt;You are in year 2. Now what?&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Start following more tech-ish content like &lt;a href=&quot;https://news.ycombinator.com/&quot;&gt;Hackernews&lt;/a&gt;, or “tech influencers” like &lt;a href=&quot;https://www.youtube.com/@ThePrimeTimeagen&quot;&gt;ThePrimeagen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Start reading up more about &lt;a href=&quot;https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29&quot;&gt;clean code&lt;/a&gt; and &lt;a href=&quot;https://refactoring.guru/&quot;&gt;good architecture&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;If you have not, start exploring popular technologies not taught in class (eg. React, Tailwind etc.).&lt;/li&gt;
  &lt;li&gt;Don’t just use a technology, try alternatives and understand what problems they solve. Try creating a project using vanilla javascript, then try it with React. Try creating a project with inline CSS, then try using Tailwind. Try creating a project using React useContext hooks, then try using Redux. Try creating your own components from scratch, then try using component libraries like Material UI, then try Shadcn. Understand tradeoffs and differences&lt;/li&gt;
  &lt;li&gt;Try creating a personal website&lt;/li&gt;
  &lt;li&gt;Try blogging. Write about anything of your interest and share them! It can be philosophy, tech, baking, or anything!&lt;/li&gt;
  &lt;li&gt;If you like entrepreneurship, consider applying for &lt;a href=&quot;https://enterprise.nus.edu.sg/education-programmes/nus-overseas-colleges/&quot;&gt;NOC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;If not, start researching what countries and universities you are interested to go for Exchange&lt;/li&gt;
  &lt;li&gt;Try being a TA for a mod you did well in&lt;/li&gt;
  &lt;li&gt;Try applying for interesting part time internships or research under NUS &lt;a href=&quot;https://inetapps.nus.edu.sg/nsws/app/login&quot;&gt;NSWS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Consider taking mods to contribute to NUS open source &lt;a href=&quot;https://nus-oss.github.io/&quot;&gt;projects&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Now you should have a better idea of what each computing CCAs does, consider joining one&lt;/li&gt;
  &lt;li&gt;Start thinking about what focus areas and industries you are interested in. Plan your mods for the next 3 years, accounting for NOC etc.&lt;/li&gt;
  &lt;li&gt;Join communities that align with your interests. Eg. If you are interested in AI, consider joining &lt;a href=&quot;https://t.me/+etXPUa9I5Ss3YTFl&quot;&gt;AI Space&lt;/a&gt;. If you are interested in entrepreneurship, consider going for events organised by &lt;a href=&quot;https://nus.campuslabs.com/engage/organization/nus-entrepreneurship-society&quot;&gt;NES&lt;/a&gt; or applying for &lt;a href=&quot;https://enterprise.nus.edu.sg/education-programmes/nus-overseas-colleges/nhouse/&quot;&gt;nHouse&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Don’t be shy. Start engaging with the communities. Ask questions in the telegram groups, reply to people. Create Github issues. Resolve them. Share your blog. Talk to people&lt;/li&gt;
  &lt;li&gt;Participate in the &lt;a href=&quot;https://adventofcode.com/&quot;&gt;Advent of Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Start spending more time to build things outside of academic related work. Work in a team, work on your own project, it does not matter. Start pushing code!&lt;/li&gt;
  &lt;li&gt;If your project starts to get serious, consider applying for the &lt;a href=&quot;https://enterprise.nus.edu.sg/funding/nus-venture-initiation-programme/&quot;&gt;Venture Initiation Program&lt;/a&gt; at SoC for 10k and mentorship to take your project further&lt;/li&gt;
  &lt;li&gt;Start looking at interesting Github projects and starring them. Look at code. Look at other people’s code. Understand other people’s code. Navigate through large codebases&lt;/li&gt;
  &lt;li&gt;Start learning to work on large codebases (internship, open source projects etc.). Working on small personal projects and working on large projects with other people’s code is very different&lt;/li&gt;
  &lt;li&gt;Read documentations. Read Stackoverflow answers. Do not rely too much on ChatGPT.&lt;/li&gt;
  &lt;li&gt;Take difficult but interesting modules and don’t put too much emphasis on grades. Take &lt;a href=&quot;https://www.facebook.com/notes/789807688528347/?paipv=0&amp;amp;eav=AfYukHhL7Dk22Cn2p4DgXAjyCgpKfMbNcAWkyLAyKHr8NjUdQ1NDz6zn-becLwXXP3A&quot;&gt;CS3216/CS3217&lt;/a&gt; if you want to challenge yourself and learn how to be a better developer. Do not take “easy” modules for the purpose of pulling up your CAP. Take modules to learn&lt;/li&gt;
  &lt;li&gt;Start applying for internships&lt;/li&gt;
  &lt;li&gt;If you want, start applying for overseas internships&lt;/li&gt;
  &lt;li&gt;Start getting serious with types. If you use Javascript a lot, start exploring Typescript. if you use python a lot, start adding type annotations to your python code&lt;/li&gt;
  &lt;li&gt;Understand tradeoffs, form opinions. Tailwind vs Styled Components? Server vs Serverless? Should functions be short?&lt;/li&gt;
  &lt;li&gt;Remember when I mention to follow “tech influencers” and “news”? Form your opinion about what you see based on your own experiences. Someone tweeted about why Vim sucks? Do you agree with their take? Why and why not?&lt;/li&gt;
  &lt;li&gt;If you have not, start exploring other paradigms that you are less familiar with. If you mainly work with web development, explore “low” level languages like C or Rust. Explore machine learning with python, explore mobile development with Swift. Explore game development!&lt;/li&gt;
  &lt;li&gt;If you have not, start exploring the different software engineering practices. Understand what AGILE, TDD is.&lt;/li&gt;
  &lt;li&gt;Start learning scripting with Bash. Start learning how to automate things. Start learning CI/CD&lt;/li&gt;
  &lt;li&gt;Start being serious about good pratices. Doing projects is no longer about getting things to “work”. Learn about &lt;a href=&quot;https://refactoring.guru/design-patterns/catalog&quot;&gt;design patterns&lt;/a&gt; like strategy pattern, factory etc. Apply them in your personal projects. Learn to detect &lt;a href=&quot;https://refactoring.guru/refactoring/smells&quot;&gt;code smell&lt;/a&gt; and avoid them. Refactor them. Follow &lt;a href=&quot;https://www.w3schools.com/js/js_conventions.asp#:~:text=Coding%20conventions%20are%20style%20guidelines,space%2C%20indentation%2C%20and%20comments.&quot;&gt;coding conventions&lt;/a&gt; strictly but not religiously.&lt;/li&gt;
  &lt;li&gt;If you have not, learn about database operations&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;its-year-2-summer-now-now-what&quot;&gt;It’s year 2 summer now. Now what?&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;If you manage to secure an internship. Good! Focus on learning&lt;/li&gt;
  &lt;li&gt;If not, you should have the basic skillset to be able to build stuff. Work on an interesting project, or contribute to open source&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;you-are-in-year-3-now-what&quot;&gt;You are in year 3. Now what?&lt;/h2&gt;

&lt;p&gt;Come back in the future.&lt;/p&gt;

&lt;h2 id=&quot;you-are-in-year-4-now-what&quot;&gt;You are in year 4. Now what?&lt;/h2&gt;

&lt;p&gt;Come back in the future.&lt;/p&gt;</content><author><name></name></author><category term="jekyll" /><category term="update" /><summary type="html">Preface</summary></entry><entry><title type="html">Should You Do a Double Degree in Business Administration?</title><link href="https://jcsnap.github.io/blog/jekyll/update/2024/01/28/double-degree.html" rel="alternate" type="text/html" title="Should You Do a Double Degree in Business Administration?" /><published>2024-01-28T15:47:50+08:00</published><updated>2024-01-28T15:47:50+08:00</updated><id>https://jcsnap.github.io/blog/jekyll/update/2024/01/28/double-degree</id><content type="html" xml:base="https://jcsnap.github.io/blog/jekyll/update/2024/01/28/double-degree.html">&lt;p&gt;I am currently taking a double degree in Computer Science and Business Administration. I received a lot of messages from my friends and juniors asking if my combination is any good. So hopefully this post will help you a bit.&lt;/p&gt;

&lt;h2 id=&quot;table-of-content&quot;&gt;Table of Content&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#table-of-content&quot;&gt;Table of Content&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#preface&quot;&gt;Preface&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#introduction&quot;&gt;Introduction&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#myth-1-double-degree--double-workload&quot;&gt;Myth 1: Double degree = double workload&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#myth-2-double-degree--higher-workload&quot;&gt;Myth 2: Double degree = higher workload&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#myth-3-double-degree-makes-me-more-employable&quot;&gt;Myth 3: Double degree makes me more employable&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#myth-4-double-degree-is-useful-for-entrepreneurship&quot;&gt;Myth 4: Double degree is useful for entrepreneurship&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#myth-5-having-a-double-degree-gives-you-soft-skills&quot;&gt;Myth 5: Having a double degree gives you soft skills&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#myth-6-double-degree-has-no-benefit&quot;&gt;Myth 6: Double degree has no benefit&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#myth-7-more-is-always-better&quot;&gt;Myth 7: More is always better&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#myth-8-having-a-double-degree-gives-you-access-to-jobs-in-both-industries&quot;&gt;Myth 8: Having a double degree gives you access to jobs in both industries&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#myth-9-having-a-double-degree-gives-you-less-opportunities-than-a-single-degree&quot;&gt;Myth 9: Having a double degree gives you less opportunities than a single degree&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#myth-10-having-a-double-degree-gives-you-an-edge-in-quant&quot;&gt;Myth 10: Having a double degree gives you an edge in quant&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#should-you-take-a-second-degree-in-bba&quot;&gt;Should you take a second degree in BBA?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;preface&quot;&gt;Preface&lt;/h2&gt;

&lt;p&gt;This is solely based on my opinion and my experiences. Also, this post assumes that you are already doing Computer Science. So it’s not about whether or not you should take a double degree in Computer Science and Business Administration, but rather whether you should take a second degree (Business Administration) on top of Computer Science.&lt;/p&gt;

&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;

&lt;p&gt;I have heard quite a bit of misunderstanding and myths surrounding a double degree, so I will try my best to clear any misconceptions.&lt;/p&gt;

&lt;h3 id=&quot;myth-1-double-degree--double-workload&quot;&gt;Myth 1: Double degree = double workload&lt;/h3&gt;

&lt;p&gt;Normal degree workload = 160 MC = 4 years&lt;br /&gt;
CS (Honours) and BBA (Honours) = &lt;a href=&quot;https://nus.edu.sg/prog/bizsoc/2023-bba-hons-cs-hons.html&quot;&gt;around 198 MC&lt;/a&gt; = 5 years&lt;br /&gt;
CS (Honours) and BBA = &lt;a href=&quot;https://nus.edu.sg/prog/bizsoc/2022-bba-cs-hons.html&quot;&gt;around 178 MC&lt;/a&gt; = 4.5 years&lt;br /&gt;
Note that you can reduce your graduation time if you take on higher workload each sem.&lt;/p&gt;

&lt;h3 id=&quot;myth-2-double-degree--higher-workload&quot;&gt;Myth 2: Double degree = higher workload&lt;/h3&gt;

&lt;p&gt;Depends. You can have the same workload (20 MC a sem) and graduate later.&lt;br /&gt;
But I am overloading like most people (around 24 - 28 MC a sem) to squeeze 4.5 years into 4 years.&lt;br /&gt;
Since I am taking 20% - 40% more MCs a sem, does that mean I have 20% - 40% more workload?&lt;br /&gt;
Not necessarily, since business modules are generally less time sinking. For reference, in year 2 sem 2 I took 7 modules - 3 CS, 3 BBA, 1 GE. I still spend around 85% of my time doing CS. This is not far off from someone taking only a CS degree. It is normal for you to spend &amp;gt; 10 hours per CS mod per week (including problem sets, tutorials, lectures, labs etc.) while business mods generally take around 3 hours a week during non-peak period (might be a bit more during presentation/ project submission weeks). One caveat is that I have only taken the core business mods for now. Since I intend to specialize in finance, the future modules might be more vigorous and hence more time sinking.&lt;br /&gt;
At least for the core mods now, I would think that my workload is only 10-20% higher every semester.&lt;/p&gt;

&lt;h3 id=&quot;myth-3-double-degree-makes-me-more-employable&quot;&gt;Myth 3: Double degree makes me more employable&lt;/h3&gt;

&lt;p&gt;Not necessarily true. I would even argue the opposite. Unless you are aiming for roles like Product Manager, having a second degree in BBA will not give you an advantage in technical roles like Software Engineering. For me, it is just one line in my resume under Education:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;- Bachelor of Computing (Honours) in Computer Science
- Bachelor of Business Administration
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And having that additional line will not give you any advantage.&lt;/p&gt;

&lt;p&gt;On the other hand, I argue that it will disadvantage you if you don’t play your cards properly, and here’s why:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;You are less specialized in CS. For CS students, it is common for people to use their unrestricted electives (UE) to take on another focus area. You only need one focus area for the degree requirement, but most people have around two. As a DDP student, you only have the bandwidth to take on one focus area. Apart from focus areas, many students also spend their UEs on adjacent technical modules like CP2106 Orbital, Engineering modules, or modules like CS3216/7. As a DDP student, you don’t have any UE as they are allocated to non-technical business modules. This means that techical wise, all else remains equal, you are less advantageous compared to your CS peers who choose to use their UE on technical modules.&lt;/li&gt;
  &lt;li&gt;You have less time to improve your employability. As much as we might not like it, projects, leetcode and internships are essential in CS. This means that if your workload is 20% higher every sem, you have 20% less time for all of those above. Furthermore, your GPA in CS could be affected since you do not have UEs to “pad” it.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;myth-4-double-degree-is-useful-for-entrepreneurship&quot;&gt;Myth 4: Double degree is useful for entrepreneurship&lt;/h3&gt;

&lt;p&gt;I think I am guilty for this as well. When someone asked me why I choose to do a second degree in BBA, I would say that I am interested in entrepreneurship on top of tech. However, there is not much correlation between a BBA degree and entrepreneurship. Perhaps there are modules that indirectly gives you a bit more exposure in that area, but for the most part, it &lt;a href=&quot;https://jcsnap.github.io/blog/jekyll/update/2023/11/14/mod-review.html#business-administration&quot;&gt;does not help at all&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you are interested in entrepreneurship, join relevant &lt;a href=&quot;https://www.comp.nus.edu.sg/studentlife/clubs/&quot;&gt;CCAs&lt;/a&gt;, join &lt;a href=&quot;https://enterprise.nus.edu.sg/education-programmes/nus-overseas-colleges/nhouse/&quot;&gt;events&lt;/a&gt; organized by N-House, NUS Hackers, NES etc.&lt;/p&gt;

&lt;h3 id=&quot;myth-5-having-a-double-degree-gives-you-soft-skills&quot;&gt;Myth 5: Having a double degree gives you soft skills&lt;/h3&gt;

&lt;p&gt;To be very honest, I think that the stereotype that business people “can speak well” and CS people are “socially awkward nerds who can’t speak” is very outdated. I am currently 2 years in but I do not notice much difference between the oratory ability of CS and BBA students. This might be an outlier but I notice that my classmates from CS2101 (a communication mod in CS) have better presentation skills on average than my BBA peers. However, my observation might be difference in year 4, if nurture does indeed play a huge role. I will update this section when the time comes but for now, I doubt the forced class participation and the once-a-sem presentation is going to help much in developing soft skills, much more than what CS already offers in CS2101 and ES2660. From a quantitative perspective, BBA only has around 4 more core mods than CS that require presentation. I highly doubt 4 presentations is likely to make a dent in one’s ability to speak.&lt;/p&gt;

&lt;h3 id=&quot;myth-6-double-degree-has-no-benefit&quot;&gt;Myth 6: Double degree has no benefit&lt;/h3&gt;

&lt;p&gt;There are certain side benefits that having a DDP can give.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;It gives you one additional card to sell yourself. I have seen many people use the “I am a double degree student in X and Y, so I am interested in Z” card. For example, my NOC programme has a disproportionate number of CS and BBA DDP students, and I think this stem from the bias of the program manager. During my interview, she was rather impressed by my DDP, saying something along the lines of “you can provide value for the start-up in both the technical side and the business side”. Personally I haven’t used this card much, but I do see the intangible side benefits that it can bring for first impressions.&lt;/li&gt;
  &lt;li&gt;It increases your network. For example, I get to participate in both the Computing and Business orientation camps, and I get to meet really fun and nice people from both camps, some of which I am still friends with. Beyond that, I still mainly mingle with CS people but I do think that if you put in more effort than me, it could open up many doors.&lt;/li&gt;
  &lt;li&gt;I might have been a bit too harsh in myth 5 in claiming that BBA does not give you soft skill. One thing about soft skill is that they are… soft. Which means that it is difficult to quantify the results. For all I know, I might have improved a lot, and gained intangible skills that will not be noticed until years down the line. I would say that BBA is useful for soft skill to the extent where PW in JC for soft skill. You might feel that you benefitted from it, or not.&lt;/li&gt;
  &lt;li&gt;You are more resources. First, you will be in the mailing list of both CS and BBA, so you get updates about opportunities, talks etc. from both sides. You have access to the career guidance department of both schools. Your card can access the biz lounge. You can two welfare packs. I am not sure whether this is a BBA specific thing but I had access to VMock, an AI resume grader with 10 free grading attempts. There are probably many other more resources that I am not aware of. Having said that, I find that I did not capitalize much on these alternative resources as I mainly stick with the CS school. Your gains might differ if you choose to capitalize on them more.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;myth-7-more-is-always-better&quot;&gt;Myth 7: More is always better&lt;/h3&gt;

&lt;p&gt;Is a double degree in CS (honours) and BBA (honours) better than a double degree in CS (honours) and BBA?&lt;br /&gt;
My answer would be no. I initially enrolled in the former, but I soon realize the downsides of DDP as stated in &lt;a href=&quot;#myth-3-double-degree-makes-me-more-employable&quot;&gt;myth 3&lt;/a&gt;. Having an additional honours just means spending more time on your second degree with limited advantage. Is it worth going through half a year more doing FYP (which would incur a lot of opportunity cost) for one additonal word in your resume?&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;- Bachelor of Computing (Honours) in Computer Science
- Bachelor of Business Administration (Honours)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Maybe not for me since I have decided to focus on the SWE track.&lt;/p&gt;

&lt;h3 id=&quot;myth-8-having-a-double-degree-gives-you-access-to-jobs-in-both-industries&quot;&gt;Myth 8: Having a double degree gives you access to jobs in both industries&lt;/h3&gt;

&lt;p&gt;I think this narrative has been floating around for a while and there are some truth in it, though I think its advantage has been overstated.&lt;br /&gt;
Firstly, I think if you are aiming to break into competitive industries (eg. Software Engineering, Investment Banking), you would have known that degrees don’t get you jobs, experiences do.&lt;br /&gt;
And a natural implication is that anyone who is in a DDP would be forced to “specialize” very early on. After all, you only have around 3-4 summers before you graduate. In order for you to have “access to both industries” upon graduation, you would have to split your limited resources (summer) among two baskets (eg. having 1 SWE internship and 2 IB internship). This means that when you are applying for internships/jobs, you are also less competitive compared to your single degree peers who specializes in that one industry with 3 summers worth of relevant experiences. Many end up choosing a side anyways. This is consistent with my observation of those around me in a DDP as well, where you can pretty much tell which side they lean - eg. 3 SWE internships + hackathons with 0 BBA related internships, or 0 SWE internship with 3 IB internships and case competitions. Me personally, I am also filling up my experience bucket is only SWE related experiences. With 0 relevant experience in the other industry, it would be extremely difficult for you to break into the industry. If I do decide to apply for finance/ business related internship/ jobs now, I would have a hard time competing with those with a degree and relevant experiences. So by the time you graduate, you more or less only have access to one of the industries.&lt;/p&gt;

&lt;h3 id=&quot;myth-9-having-a-double-degree-gives-you-less-opportunities-than-a-single-degree&quot;&gt;Myth 9: Having a double degree gives you less opportunities than a single degree&lt;/h3&gt;

&lt;p&gt;Even though I mentioned in myth 3 that you have no UE to spend on adjacent modules, that does not mean that you cannot take them. You can still take them, it just won’t be counted towards your graduation requirement.&lt;br /&gt;
Personally, I have taken CP2106 Orbital (Independent Software Engineering Project) which most CS students will take in their first year summer. Since I have no UE to spare, taking it does not count towards anything, but there are still a lot of &lt;a href=&quot;https://jcsnap.github.io/blog/jekyll/update/2023/11/14/mod-review.html#cp2106-independent-software-development-project&quot;&gt;benefits&lt;/a&gt; that come with taking it. Arguably, it has been a huge selling point for NOC and my subsequent internships.&lt;br /&gt;
I’ve also gone for NOC even though it can only count 12 MC (Instead of the usual 20 MC) for the sem.&lt;br /&gt;
Furthermore, I also took &lt;a href=&quot;https://nusmods.com/courses/CS3217/software-engineering-on-modern-application-platforms&quot;&gt;CS3217&lt;/a&gt;, which has a reputation for being very &lt;a href=&quot;https://nuswhispers.com/search/cs3217&quot;&gt;high in workload&lt;/a&gt;. Not having any UE to spend, on top of not being to overload due to the high workload, means that I could be behind in terms of graduating requirement, but to me I think the things that I get to learn make it completely worth it.&lt;br /&gt;
Also, I intend to have 2 focus areas.&lt;br /&gt;
This means that instead of the required 178 MC, I would be graduating with 190 MC. You still have access to all the opportunities that a single degree has, just that you have to be prepared to take a higher workload than you are required. This means that if you are doing a double honours, that could go up to 200+ MC instead of the required 190 MC.&lt;/p&gt;

&lt;h3 id=&quot;myth-10-having-a-double-degree-gives-you-an-edge-in-quant&quot;&gt;Myth 10: Having a double degree gives you an edge in quant&lt;/h3&gt;

&lt;p&gt;Nope.&lt;br /&gt;
Unless your second degree is Math, or you have 10 years of C++ knowledge, or you are a competitive programmer with olympiad background, or you somehow won the genetic lottery, having a second degree in business administration will not help at all, even if you specialise in Finance.&lt;/p&gt;

&lt;h2 id=&quot;should-you-take-a-second-degree-in-bba&quot;&gt;Should you take a second degree in BBA?&lt;/h2&gt;

&lt;p&gt;This might sound dissapointing but I do not think that this decision can be reduced to a “take the second degree only if…” statement. My advice is that, ask yourself why you want to take the second degree, and check if anything here challenges any assumptions you might have. Seek more opinions since this post is not reflective of the experience that you might have. If you still cannot decide, there is no harm in taking it first then dropping it after if you change your mind.&lt;br /&gt;
If you do end up taking the second degree, do not come in with the mentality that you are somehow better than your peers because you have the second degree become the truth is - you are not. You are less specialised, and hence need to work harder to get on equal footing with your peers, especially if you are going down the technical path.&lt;br /&gt;
Good luck!&lt;/p&gt;</content><author><name></name></author><category term="jekyll" /><category term="update" /><summary type="html">I am currently taking a double degree in Computer Science and Business Administration. I received a lot of messages from my friends and juniors asking if my combination is any good. So hopefully this post will help you a bit.</summary></entry><entry><title type="html">Why Negative Utilitarianism is Better than Normie Utilitarianism</title><link href="https://jcsnap.github.io/blog/jekyll/update/2023/11/15/negative-utilitarianism.html" rel="alternate" type="text/html" title="Why Negative Utilitarianism is Better than Normie Utilitarianism" /><published>2023-11-15T15:47:50+08:00</published><updated>2023-11-15T15:47:50+08:00</updated><id>https://jcsnap.github.io/blog/jekyll/update/2023/11/15/negative-utilitarianism</id><content type="html" xml:base="https://jcsnap.github.io/blog/jekyll/update/2023/11/15/negative-utilitarianism.html">&lt;blockquote&gt;
  &lt;p&gt;It’s for the greater good&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’m pretty sure you have heard of this phrase before, yet you’ve probably never heard of&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;It’s for the lesser bad&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My suspicion is that, the principle of utilitarianism is so widespread that most people just happen to adopt it as the default view, because it makes sense (at least at first glace), and they have never really been exposed to its variants.&lt;/p&gt;

&lt;p&gt;Before we venture too deep, let’s first get the definitions sorted out.&lt;/p&gt;

&lt;p&gt;The utilitarianism popularized by Bentham (what I think to be the default one) is the belief that the moral action is the one that results in the greatest utility (or happiness). Mathematically, given a set of actions, assuming you can quantify the happiness gained from each of them, the moral action would be choosing the one that results in the greatest happiness, which can look something like this - $\sum_{i=1}^{n} h_i$, where n is the number of beings affected by the decision, h is the intensity of the happiness and for the ith being. Don’t mind me, I am just finding excuses to make use of my CS knowledge… But you basically just sum up all the happiness.&lt;/p&gt;

&lt;p&gt;On the other hand, negative utilitarianism, like the name suggests, is akin to the “inverse” of utilitarianism. Instead of summing up all the happiness, you sum up all the pain and make the decision that results in the least amount of pain.&lt;/p&gt;

&lt;p&gt;If you are an economist, this distinction might not be meaningful. After all, utility is just a negative cost, and a cost is just negative utility. However as normal human beings, this distinction matters.&lt;/p&gt;

&lt;p&gt;Regardless of which one it is, utilitarianism in general has a lot of flaws, but most people believe in it anyways. My aim therefore is not to convince you to discard utilitarianism as a principle, but to convince you to switch over to negative utilitarianism.&lt;/p&gt;

&lt;p&gt;Firstly, I think the best way to challenge your intuition is to take each of the principles to the extreme. I would illustrate the extreme cases with 2 examples each.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Utilitarianism&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Le Guin’s &lt;em&gt;The Ones Who Walked Away From Omelas&lt;/em&gt; illustrates this with a story on how the prosperity of a whole town is the result of torturing a child in a basement. Note that in the original utilitarianism, we do not take into account the pain caused, but only sums up all the happiness. In this case, when we sun up the happiness of the whole town, the utility gained from the action of torturing the child now justifies the action.&lt;/li&gt;
  &lt;li&gt;In a perfectly utilitarian world, it would be justfied to harvest your organs without consent to save the lives of 5 others. If we sum up the happiness of the 5 people saved without consideration of the pain, this action would appear to be justified.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Negative Utilitarianism&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Antinatalism#:~:text=Antinatalism%20or%20anti%2Dnatalism%20is,should%20abstain%20from%20having%20children.&quot;&gt;Anti-natalism&lt;/a&gt; would be justified if we take negative utilitarianism to the extreme. I could write a whole essay about this but it is the view that it is immoral to procreate and have children. Yes I know… It sounds dumb and I was so confused when I first read about it. But if you disect the argument &lt;em&gt;rationally&lt;/em&gt;, it makes sense. The argument goes as such:&lt;/p&gt;

    &lt;ol&gt;
      &lt;li&gt;If the baby is born, it now has the capacity to suffer.&lt;/li&gt;
      &lt;li&gt;If the baby was not born, it will be in nonexistent.&lt;/li&gt;
      &lt;li&gt;A being in nonexistance does not have the capacity to suffer.&lt;/li&gt;
      &lt;li&gt;Thus the natural conclusion is that you should not bring a child to this world so as to not cause suffering. Of course you might argue that by bringing a child to this world you are introducing it to more happiness than suffering. That is valid, but remember, just like how utilitarianism cares about happiness and not suffering, negative utilitarianism cares about suffering and not happiness. To them, regardless of how much happiness the child gains, the fact that it has to capacity to suffer makes it unjustified. Of course I am simplifying this argument a lot, I would probably dedicate a blog for it someday.&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;World destruction: This has the same rationale as the one above. Beings in nonexistent do not have the capacity to suffer. By pressing the nuclear button, even though you are causing them immediate suffering (to die), that is nothing compared to the generations of suffering you prevented. Remember, beings in nonexistance do not have the capacity to suffer. If there is no living beings, there is no suffering. Again like before, a negative utilitarian would not include happiness in the equation.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now that we have gone through the implications if we take both utilitarianism and negative utilitarianism to the extreme, what can you conclude?&lt;/p&gt;

&lt;p&gt;Personally, I can accept the implications that come with negative utilitarianism, but that is an essay for another time. I suppose for most people, both extremes seem &lt;em&gt;intuitively&lt;/em&gt; problematic. This, combined with many other limitations of utilitarianism not covered in this essay, are reasons why utilitarianism (negative or not) is inherently flawed.&lt;/p&gt;

&lt;p&gt;That is however not the purpose of this essay, suppose we still want to subscribe to utilitarianism (for whatever reason), I want to show you that it still makes more sense to adopt the negative counterpart.&lt;/p&gt;

&lt;p&gt;And the argument hinges on one very important assumption - which is that there is an asymmetry between happiness and suffering in terms of moral weight. As Schropenhauer puts it, happiness is desirable, but the absense of suffering is a necessity.&lt;/p&gt;

&lt;p&gt;All else remains equal, the loss of the same amount of suffering is worth &lt;em&gt;more&lt;/em&gt; than the gain than the same amount of happiness. I can go into more details about the psychological reasons (such as losing 50 dollars vs gaining 50 dollars) but I am not going to do so since this is more of a philosophical piece rather than a practical one (and also I might just be lazy).&lt;/p&gt;

&lt;p&gt;I hope that this assumption is not be too controversial to accept. Most people, when given the choice to increase happiness or reduce suffering by the same amount, would choose the latter.&lt;/p&gt;

&lt;p&gt;However, that is for the case where the quantity of happiness is comparable to the quantity of suffering. What about cases where the quantity of happiness far outweights the quantity of suffering (Like the 2 extreme examples given)?&lt;/p&gt;

&lt;p&gt;This is the part where things become more complex so this is the part where we resort not to reasoning but to intuition. Like many people (hopefully), my intuition tells me that alleviating suffering has an inherent value that cannot be outweighed by any amount of happiness increased, especially when the suffering is severe (like in the case of torturing). This is perhaps why we find Le Guin’s story of the child in the basement morally repungant.&lt;/p&gt;

&lt;p&gt;So tbe next time you want to justify a decision, use&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;It’s for the lesser bad&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;instead.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: if you want to explore the responses to the criticisms of Negative Utilitarianism, I am writing one soon (hopefully)&lt;/em&gt;&lt;/p&gt;</content><author><name></name></author><category term="jekyll" /><category term="update" /><summary type="html">It’s for the greater good</summary></entry><entry><title type="html">Mod Review</title><link href="https://jcsnap.github.io/blog/jekyll/update/2023/11/14/mod-review.html" rel="alternate" type="text/html" title="Mod Review" /><published>2023-11-14T15:47:50+08:00</published><updated>2023-11-14T15:47:50+08:00</updated><id>https://jcsnap.github.io/blog/jekyll/update/2023/11/14/mod-review</id><content type="html" xml:base="https://jcsnap.github.io/blog/jekyll/update/2023/11/14/mod-review.html">&lt;p&gt;My mod review for NUS, mainly Computer Science and Business Administration, and some GE modules though.&lt;/p&gt;

&lt;h2 id=&quot;table-of-content&quot;&gt;Table of Content&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#table-of-content&quot;&gt;Table of Content&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#computer-science&quot;&gt;Computer Science&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#cs1101s-programming-methodology-i&quot;&gt;CS1101S Programming Methodology I&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#ma2001-linear-algebra-i&quot;&gt;MA2001 Linear Algebra I&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#cs1231s-discrete-structures&quot;&gt;CS1231S Discrete Structures&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#cs2030s-programming-methodology-ii&quot;&gt;CS2030S Programming Methodology II&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#cs2040s-data-structures-and-algorithms&quot;&gt;CS2040S Data Structures and Algorithms&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#ma1521-calculus-for-computing&quot;&gt;MA1521 Calculus for Computing&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#cs2100-computer-organization&quot;&gt;CS2100 Computer Organization&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#cp2106-independent-software-development-project&quot;&gt;CP2106 Independent Software Development Project&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#cs2103t-software-engineering&quot;&gt;CS2103T Software Engineering&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#cs2101-effective-communication-for-computing-professionals&quot;&gt;CS2101 Effective Communication for Computing Professionals&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#cs2109s-introduction-to-ai-and-machine-learning&quot;&gt;CS2109S Introduction to AI and Machine Learning&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#cs3217-software-engineering-on-modern-application-platforms&quot;&gt;CS3217 Software Engineering on Modern Application Platforms&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#cs2105-introduction-to-computer-networks&quot;&gt;CS2105 Introduction to Computer Networks&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#st2334-probability-and-statistics&quot;&gt;ST2334 Probability and Statistics&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#business-administration&quot;&gt;Business Administration&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#bsp1702-legal-environment-of-business&quot;&gt;BSP1702 Legal Environment of Business&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#bps1703-managerial-economics&quot;&gt;BPS1703 Managerial Economics&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#bpm1701-bpm1702-bpm1705&quot;&gt;BPM1701, BPM1702, BPM1705&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#mno1706-organisational-behaviour&quot;&gt;MNO1706 Organisational Behaviour&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#mkt1705-principle-of-marketing&quot;&gt;MKT1705 Principle of Marketing&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#mno1701-accounting-for-decision-makers&quot;&gt;MNO1701 Accounting for Decision Makers&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#mno2705-leadership-and-decision-making-under-uncertainty&quot;&gt;MNO2705 Leadership and Decision Making under Uncertainty&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#fin2704-finance&quot;&gt;FIN2704 Finance&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#bsp2701-global-economy&quot;&gt;BSP2701 Global Economy&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#other&quot;&gt;Other&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#is1108-digital-ethics-and-data-privacy&quot;&gt;IS1108 Digital Ethics and Data Privacy&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#gea1000-quantitative-reasoning-with-data&quot;&gt;GEA1000 Quantitative Reasoning with Data&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#es2660-communicating-in-the-information-age&quot;&gt;ES2660 Communicating in the Information Age&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#gess1029-everyday-ethics-in-singapore&quot;&gt;GESS1029 Everyday Ethics in Singapore&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;computer-science&quot;&gt;Computer Science&lt;/h2&gt;

&lt;h3 id=&quot;cs1101s-programming-methodology-i&quot;&gt;CS1101S Programming Methodology I&lt;/h3&gt;

&lt;p&gt;Regardless of who you are talking to, if he/she is from CS, you probably would’ve heard about this module from them. This is the rite of passage for all CS students, and I think I could not have asked for a better first mod to take to expose myself to the field of CS. It is so well designed that it is not too overwhelming to even the most beginner of beginners, yet challenging enough to push the more experienced coders.&lt;/p&gt;

&lt;p&gt;In week 1, you learn about variables and functions. You know, the easy stuff.&lt;/p&gt;

&lt;p&gt;In week 2, you are hit with recursion, and it is downhill from there.&lt;/p&gt;

&lt;p&gt;For the whole module, you are required to code in &lt;a href=&quot;https://sourceacademy.org/playground&quot;&gt;Source Academy&lt;/a&gt;, which I think has made the experience very enjoyable throughout (on highsight…of course. I could not speak for myself while I was doing the module in the midst of all the hall commitments that I have). However, be prepared for it to take up the bulk of your time, especially if you are new to coding. I took 6 modules that semester, but this mod manages to take up like 60% of the time I spend on work.&lt;/p&gt;

&lt;p&gt;Since we are forced to use the custom IDE and programming language, it does not feel AS overwhelming, because you know that you can (and you should) solve the problem with whatever functionalities that are available to you. This is unlike the other CS modules where the more experienced coders would use some libraries or APIs to solve the python problem in one line while newbies are left to suffer through the whole process.&lt;/p&gt;

&lt;p&gt;I also like the fact that it manages to introduce many real life CS concepts that are nicely integrated into the missions, such as:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Robotics&lt;/li&gt;
  &lt;li&gt;Graphics generation&lt;/li&gt;
  &lt;li&gt;Audio processing&lt;/li&gt;
  &lt;li&gt;Image processing&lt;/li&gt;
  &lt;li&gt;Video processing&lt;/li&gt;
  &lt;li&gt;Many more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of the highlight is the sumo bot competition, which I joined together with my tutorial (they call it studio?) mates. Even though we enter the competition without much experience and expectations, we still manage to have a lot of fun building our own robot and creating our own program (well it was hardcoded, but it works…. 20% of the time). It was overall a very fun experience and I highly recommend you to join it, not for marks or something (because honestly you don’t get much), but to experience it and expose yourself to the idea of BUILDING. Being a newbie, that experience plays a large part in making me more comfortable and confident in BUILDING later down the line.&lt;/p&gt;

&lt;p&gt;One last thing, I would highly recommend you to do the optional quests. When you are stuck, have someone to discuss with, struggle with. This mod builds a strong foundation for future mods down the line, and do not go in with the mentality of wanting to SU it.&lt;/p&gt;

&lt;h3 id=&quot;ma2001-linear-algebra-i&quot;&gt;MA2001 Linear Algebra I&lt;/h3&gt;

&lt;p&gt;A lot of lectures that are very theoretical, and a lot of proving. Personally I find it difficult to disgest many of the abstract concepts. I think &lt;a href=&quot;https://www.youtube.com/@3blue1brown&quot;&gt;3Blue1Brown&lt;/a&gt; has helped me a lot in visualzing many of the abstract concepts. I also found that doing examples from one of the Linear Algebra textbooks is more helpful than trying to understand the slides. This works for me but might not work for others but I think that the textbook did a better job introducing concepts sequentially and simplifying it in a way that I understand.&lt;/p&gt;

&lt;h3 id=&quot;cs1231s-discrete-structures&quot;&gt;CS1231S Discrete Structures&lt;/h3&gt;

&lt;p&gt;A lot of people hate this mod with a burning passion, and a lot of people came in with the intention of SU it, understandbly so since discrete math nutoriously known to be difficult. But I think that this is one of the most fun mods out there, exams aside of course. I took Knowledge and Inquiry in JC, which for those that do not know, is like Philosophy (or more specifically, epistemology), where we deal with the nature of knowledge. We are required to evaluate to evaluate the &lt;strong&gt;line of reasoning&lt;/strong&gt; of arguments, not the content of their arguments. To some extent, I have had the opportunity to deconstruct arguments made (eg. to evaluate an author’s argument for validity by formalizing it: if p then q, the author argues p, therefore q follows). However, taking this mod has introduced me to the realm of the formalization of logic.&lt;/p&gt;

&lt;p&gt;Instead of using words to evaluate logic, now I am required to use symbols to evaluate logic.&lt;/p&gt;

&lt;p&gt;I find the proving in this mod easier than that of MA2001, but that’s just me. Though many people are not able to see the real life application of the knowledge that they learn here, I think that taking this mod has definitely helped developed my analytic reasoning ability, which you cannot really quantify. Even if you are not convinced of the usefulness of this module, I urge you to give this mod a chance, not from an academic standpoint, but from an interest standpoint. The idea of vacuously true, and different levels of infinity has blown my mind so much. I remember watching the &lt;a href=&quot;https://www.youtube.com/watch?v=Uj3_KqkI9Zo&quot;&gt;Infinite Hotel&lt;/a&gt; video by Ted Ed when I was young and it made 0 sense to me. Now it still made 0 sense, but at least it is a smaller 0 than before. After learning about some of the concepts taught, I remember sending some of the slides to my JC classmates, who took knowledge and inquiry with me, and we just started talking about it. Again, not from ab academic standpoint, but from a point of interest. None of us know what we are talking (for the most part), but we gained a lot of insights from it nonetheless. Please do not let the bell curve and exams hinder you from enjoying this mod, and you do not need to be good at it to enhoy it. I can assure you that this is one of the mods that you will remember years down the line.&lt;/p&gt;

&lt;h3 id=&quot;cs2030s-programming-methodology-ii&quot;&gt;CS2030S Programming Methodology II&lt;/h3&gt;

&lt;p&gt;Introduction to java and object oriented programming. Honestly like the rest of the people, there are a lot of things that do not make sense initially - Why are we forced to use vim?&lt;/p&gt;

&lt;p&gt;Now that I am a bit more experienced, I am convinced that being forced to use vim has exposed me to the realm of vim. And currently, I unironically use Vim. Not the vim Vim but vim plugins for my VSCode and Intellij, as I find the vim key bindings to be a huge productivity boost to my workflow. Well I hoped that I started loving vim sooner, because I did not do as well for this mod as I wanted, one reason being my inability to navigate efficiently with vim.&lt;/p&gt;

&lt;p&gt;In terms of the actual content, there is not much to say about it to be honest, other than it is a good introduction to java and object oriented programming. Make sure your code compiles for practical exam though.&lt;/p&gt;

&lt;h3 id=&quot;cs2040s-data-structures-and-algorithms&quot;&gt;CS2040S Data Structures and Algorithms&lt;/h3&gt;

&lt;p&gt;Probably one of the most important mods, pracmatically. Let’s face it, you probably know the importance of leetcode and stuff. This mod is very well designed. Even if you are a God at leetcode, the science behind the data structurse and algorithms cannot be neglected. Also, the problems are way harder than leetcode hard, and I would say there’s more application.&lt;/p&gt;

&lt;h3 id=&quot;ma1521-calculus-for-computing&quot;&gt;MA1521 Calculus for Computing&lt;/h3&gt;

&lt;p&gt;Not much comments. It’s another math mod.&lt;/p&gt;

&lt;h3 id=&quot;cs2100-computer-organization&quot;&gt;CS2100 Computer Organization&lt;/h3&gt;

&lt;p&gt;Probably your first deep dives into the low level stuff, going into 1s and 0s territory. This is one of the mods people question their usefulness to real life, especially since their interests are not low level programming. However, I think that even if you are set to go into frontend development, or any subfields that do not deal with 1s and 0s, you should still take this mod seriously. Again, not from an acadamic standpoint, but from a point of interest. Growing up, I have heard the phrases CPU, RAM etc. thrown around but to me, they are just magic words. I did not really know the difference between an 8GB RAM and a 16GB RAM, except Fallout 4 requires at least 8GB of RAM. What are bytes anyways?&lt;/p&gt;

&lt;p&gt;After taking this mod, I can say that I at least are more confident in knowing how a computer actually works. In case someone asks me, I can still string out an answer, else it might be embarassing for me to not know anything as a computer science student.&lt;/p&gt;

&lt;p&gt;Jokes aside. I do think this is one of the more important mods, that not only introduces you to Assembly and C, but also teaches you how things work at the very lowest level.&lt;/p&gt;

&lt;p&gt;If Hogwarts offer you a place to study wizardry and magic would you take it? If your answer is yes, this is the closest we can get to magic. How computer works from 0s and 1s used to be magic to be, now I get the privilege to learn how this magic is dowe.&lt;/p&gt;

&lt;h3 id=&quot;cp2106-independent-software-development-project&quot;&gt;CP2106 Independent Software Development Project&lt;/h3&gt;

&lt;p&gt;Optional mod, but since most people take it, you take it anyways. After all, it is free 4MCs of credit right?&lt;/p&gt;

&lt;p&gt;Yes, but beyond the credits offered, I do think this is a very good mod to take at your year 1 summer. For myself, since I am doing a double degree, I do not have any unrestricted electives (UE) to fill and taking this mod does not really help me fulfill any graduating requirement, but I still chose to take it and here is why:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;It is (probably) your first exposure to software engineering.&lt;/strong&gt; If you are intending to pursue software engineering, it could be a neat little project for your portfolio, since many year 1s would not have many interesting experiences and projects to showcase anyways. If you are not, at least now you know you do not enjoy it.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;It forces you to be productive.&lt;/strong&gt; Of course, you can build projects without joining Orbital, but would you? Sometimes we need the extra push, and Orbital’s milestones do just that. If you want to chill during the holiday, that is completely fine. Everyone should take a well deserved break after surviving year 1. I still think that you can do Orbital (spending only a few hours a week) and still a lot of time left to spare. There are various achievement levels that you can opt for.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;It makes you a better develpoer.&lt;/strong&gt; Honestly, I have learnt a lot from Orbital, I learnt mobile app development, database design and management, cloud functions, authentification, Restful APIs, CI, unit-testing, Project Management, deploying to appstore and playstore, and many more. All these are not taught in your typical CS mods. Needless to say, I have struggled a lot through the whole process, and came out as a better developer, and I am proud to be able to publish my first app to appstore and playstore.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;It gives you a testimony for NOC.&lt;/strong&gt; This is for those interested in NOC, but take this as a side-effect, don’t make it your main reason though.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;It is fun.&lt;/strong&gt; Some people might disagree with me on this, but for me, Orbital has been a fun experience. If you come in with the mindset of wanting to clear an easy CS/CU 4 MC mod, you might not enjoy it. But I had an app that I thought off and wanted to built for quite a while and Orbital provides me with the platform to do so. Since I am building something I am passionate about, I enjoy the process throughout (albeit a bit of frustration here and there when debugging and meeting milestones). Thus, I think it is important for you to think hard about what interests you. Afterall, there are no restrictions and you can build ANYTHING! I have seen some really cool games built during the poster sharing session. You can look at the 518 &lt;a href=&quot;https://nusskylab-dev.comp.nus.edu.sg/public_views/public_projects&quot;&gt;projects&lt;/a&gt; for my batch for interesting ideas!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you are wondering whether or not it is possible to do an internship and Orbital at the same time, I think it is possible and doable, and the commitment level is up to you. For me, I did an internship and started off with Apollo for Orbital. But after making significant progress in the first few weeks and having a big vision for the app, I discussed with my partner and we agreed to upgrade to Artemis. Since we did not start off with Apollo, we were not allocated an external mentor and thus need not conduct meetings with them, which is great given my internship commitment. In the end, we managed to get the Judge’s Choice Award!&lt;/p&gt;

&lt;p&gt;Honestly I do not really recommend doing Artemis and internship at the same time. I have to spend a significant amount of time at night and my whole weekends working on the app, leaving little to no room for leisure. Summer is meant for you to rest up so it is completely fine to take it slow. In my case, I am deeply passionate about the app, which is why I am willing to spend so much time working on it. In fact, now that Orbital is over, we plan to continue working on the app!&lt;/p&gt;

&lt;p&gt;For those interested, I created SoulScribe with my partner, a gamified AI powered journaling app that generate arts and highlights based on users’ journal entries.&lt;/p&gt;

&lt;h3 id=&quot;cs2103t-software-engineering&quot;&gt;CS2103T Software Engineering&lt;/h3&gt;

&lt;p&gt;It introduces many software engineering workflows, might not not seem foreign if you have some experience, or if you use proper git workflow for your Orbital.&lt;/p&gt;

&lt;p&gt;This is a project intensive module, with a little bit of content sprinkled every week. The content is mainly the various kinds of UML diagrams and their intricacies, which is onveremphasised as compared to the real world. Honestly, I think the biggest learning come with working as a group, which aims to simulate real life software engineering projects.&lt;/p&gt;

&lt;p&gt;It felt like there are a mix of collaborative and competitive culture in this mod.&lt;br /&gt;
Collaborative - having to do the team project in a group.&lt;br /&gt;
Competitive - peer review system is zero sum in an atempt to be comprehensive, by rating someone more, you are going to rate someone else less. People are then incentivised to work beyond what is required. In the end, the workload for everyone increases. Furthermore, you have to find bugs of other teams in the practical exam, and they loss marks for them. The same will be done to you and your group’s product.&lt;/p&gt;

&lt;p&gt;Depends on how you see it, the competitive and zero-sum nature of the mod might make it seem a bit toxic.&lt;/p&gt;

&lt;h3 id=&quot;cs2101-effective-communication-for-computing-professionals&quot;&gt;CS2101 Effective Communication for Computing Professionals&lt;/h3&gt;

&lt;p&gt;This is a twin mod of CS2103T, where we are attending the same lesson with our groupmates and classmates from CS2103T. Generally for a communication module, I think it is very well designed. I liked the fact that it is intertwined with our project for CS2103T, such as having to give a pitch for our CS2103T app. There are many presentations, many of which are “provisionals”, or preparations for the actual presentations.&lt;/p&gt;

&lt;p&gt;I would think that your experience would depend heavily on your class - your tutor and your classmates. Our tutor is very vocal and passionate, which makes the lessons engaging and it felt like she truly wants to help me improve. Shoutout to Ms Serene Eng.&lt;/p&gt;

&lt;p&gt;Clasmates are also chill, which makes the presentations less intimidating, as you know that you can fail without being judged. Since there are a lot of feedback sessions, having good enthusiastic classmates makes the experience so much better.&lt;/p&gt;

&lt;h3 id=&quot;cs2109s-introduction-to-ai-and-machine-learning&quot;&gt;CS2109S Introduction to AI and Machine Learning&lt;/h3&gt;

&lt;p&gt;Interesting module. The content covers breadth instead of depth. There is also a lot of emphasis of the science behind AI and ML. If you just want to learn how to start doing ML, you might not appreciate it since many of the functions that we are implementating are actually abstracted away in libraries like pyTorch. However, you are required to implement them from scratch, which I enjoy since it allows for a deeper understanding of how ML works from the ground up. The last few weeks are where you start using the libraries’ APIs to solve problems.&lt;/p&gt;

&lt;p&gt;Some of the lectures are hard to follow, which is understandable given that the mod is relatively new and they are still experimenting with what works. I find &lt;a href=&quot;https://www.youtube.com/@statquest&quot;&gt;Stat Quest&lt;/a&gt;’s videos to be very helpful in visualizing and understanding a lot of the concepts.&lt;br /&gt;
Midterm is a theoretical pen and paper test while finals is a practical train-your-own-ML-model test.&lt;/p&gt;

&lt;h3 id=&quot;cs3217-software-engineering-on-modern-application-platforms&quot;&gt;CS3217 Software Engineering on Modern Application Platforms&lt;/h3&gt;

&lt;p&gt;Taking now. So far I am learning a lot. The focus is on creating scalable systems with clean code and good architecture. Workload is high:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Problem set 0 (week 0 before school starts): around 1.7k lines of code (LoC)&lt;/li&gt;
  &lt;li&gt;Problem set 1 (week 1): around 2.3k LoC&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For reference, CS2103T individual project is around 1.6k LoC for the whole 5 weeks or so.&lt;/p&gt;

&lt;p&gt;Midterm reflection: It’s currently recess week so I survived the first half of CS3217. I would say that it has been an enjoyable learning experience the past few weeks and I feel like I walked out of it a better software engineer.&lt;/p&gt;

&lt;p&gt;Take this mod if you want to be challenged to be a better software engineer, even if it means forgoing your CAP/ mental health. I think your mileage might vary, but I do not think that it is an understatement to claim that the workload is very very high. I would say it is around 3 times of CS2030S/CS2040S, or even more. Furthermore, they are very punishing when it comes to grading your problem sets, so finishing the problem sets does not guarantee you good marks as you will get deducted a lot of marks for criteria beyond the requirements of the mark allocation.&lt;/p&gt;
&lt;h3 id=&quot;cs2105-introduction-to-computer-networks&quot;&gt;CS2105 Introduction to Computer Networks&lt;/h3&gt;

&lt;p&gt;Content and intensity wise, I think it is one of the chillest mods (relative to a typical CS mod). For a rough gauge - this mod is about 3 hours of work per week (40 minutes of tutorial, 1 hour of lecture assuming you watch at x2 speed, &amp;lt; 1 hour of attempting tutorial). Of course this might be more when there is assignment to submit.&lt;/p&gt;

&lt;h3 id=&quot;st2334-probability-and-statistics&quot;&gt;ST2334 Probability and Statistics&lt;/h3&gt;

&lt;p&gt;Taking now. Still forming opinion.&lt;/p&gt;

&lt;h2 id=&quot;business-administration&quot;&gt;Business Administration&lt;/h2&gt;

&lt;p&gt;I want to preface this by saying throughout the reviews, I use a lot of words like “useful” or “fluff”, which are value laden in nature. What I consider “useful” might be different from what you consider “useful”. Maybe this is influenced by my technical background in Computer Science, but I generally consider mods that teach hard knowledge as more “useful” than others, though that is not always the case. I am pretty sure that a lot of the mods that I describe as “fluff” do teach a lot, maybe in ways that are not immediately quantifiable, so just take whatever written with a grain of salt.&lt;/p&gt;

&lt;h3 id=&quot;bsp1702-legal-environment-of-business&quot;&gt;BSP1702 Legal Environment of Business&lt;/h3&gt;

&lt;p&gt;Probably one of the few truly useful Business mod, you get exposed to the various legal aspect of business, such as contract law, the difference between a company, an LLC etc.&lt;/p&gt;

&lt;p&gt;I remember applying the knowledge learnt in one of the conversations that I have (it is about how even if you include an exemption of liability clause in your contract, that term might not be valid if it involves injuries or deaths).&lt;/p&gt;

&lt;h3 id=&quot;bps1703-managerial-economics&quot;&gt;BPS1703 Managerial Economics&lt;/h3&gt;

&lt;p&gt;JC Economics lite, with more calculations.&lt;/p&gt;

&lt;h3 id=&quot;bpm1701-bpm1702-bpm1705&quot;&gt;BPM1701, BPM1702, BPM1705&lt;/h3&gt;

&lt;p&gt;Just get it done and over with.&lt;/p&gt;

&lt;h3 id=&quot;mno1706-organisational-behaviour&quot;&gt;MNO1706 Organisational Behaviour&lt;/h3&gt;

&lt;p&gt;In terms of content, I do not find anything interesting or useful. It felt like the course is trying too hard to apply theoretical frameworks to what would be perceived as common sense. Eg. terms like hygiene factors, frameworks like Maslow’s hierachy of needs etc. are used to explain phenomena that I think can easily explained with common sense.&lt;/p&gt;

&lt;p&gt;There are around two group activities, one require a workshop/presentation, another is a video format of an interview + analysis. I did well because my group members are all motivated. There is a final essay component.&lt;/p&gt;

&lt;p&gt;All in all, this is one of the mods that you take because you have to. I walked out not learning much. It is also a good “padding mod” for your other intensive modules. I was overloading with 7 mods (with CS2030S and CS2040S) so this is a much needed fluff mod.&lt;/p&gt;

&lt;h3 id=&quot;mkt1705-principle-of-marketing&quot;&gt;MKT1705 Principle of Marketing&lt;/h3&gt;

&lt;p&gt;In terms of content, I think it is just an example bomb every session. The professor goes through various marketing strategies and examples, and evaluate the rational behind and maybe limitations etc.&lt;/p&gt;

&lt;p&gt;To be very honest, I am not very satisfied with the mod since I feel like there is not much depth in terms of the marketing concepts taught, which could be intended since it is an introductory module. However, it seems as if there is a lot of “smoke” when the Professor tries to explain why a specific marketing campaign work or fail. It seems like there are:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;A lot of very critical evaluation on hindsight (X company conducted this campaign, but received this backlash, they should not have gone through with it because A, B, C). I feel like it is easy to criticize when we already know the campaign failed, but that does not give us much insight on how to create a good marketing campaign since:&lt;/li&gt;
  &lt;li&gt;There are a lot of contradictions. I cannot really think of specific examples since it was a while ago but I remember having a lot of moments where I was quite unsatisfied. For example, company A create this unique but odd ad and receives a lot of attention, it was praised for being unique and differentiating itself from competitors. Few lessons later, another example was brought up of company B creating a unique but odd ad, except it fails. The professor would then talk about how the reason it fails is because it is straying away from what works. Note that this is a fake example as I could not really remember much, but it seems like the professor always tries to explain backwards, fitting whatever narrative based on the outcome of the campaign. This is why is feels so “smoke-y”. I would prefer for the evaluation to “predictive” instead of “explanatory”. After all, we want to learn how to do proper marketing.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There is a video component and a presentation (with paper writing) component. I suffered through both of them since my group mates are not particularly motivated. It was a bad experience for me. I think this is another mod that is very group dependent. There is also one final individual essay component.&lt;/p&gt;

&lt;p&gt;I did decently well for this mod though despite my groupmates, which makes me think that the curve might not be as punishing.&lt;/p&gt;

&lt;h3 id=&quot;mno1701-accounting-for-decision-makers&quot;&gt;MNO1701 Accounting for Decision Makers&lt;/h3&gt;

&lt;p&gt;Like &lt;a href=&quot;#bsp1702-legal-environment-of-business&quot;&gt;BSP 1702&lt;/a&gt;, this is one of the few useful mods in the first half of BBA. It introduces you to the basic accounting concepts. Lectures are not recorded but reading the handouts alone should be sufficient.&lt;/p&gt;

&lt;h3 id=&quot;mno2705-leadership-and-decision-making-under-uncertainty&quot;&gt;MNO2705 Leadership and Decision Making under Uncertainty&lt;/h3&gt;

&lt;p&gt;Honestly I find this mod a bit fluff as well, which is a good “padding” mod if you are taking other intense CS mods. The highlight would be the simulation that we went through in class where we have to make decisions as the CEO, after being presented with different informations presented. Initially I thought the purpose of it is to evaluate the effectiveness of our decision making, but it was later revealed that it is actually to highlight our biases, as the class has received the same simulation with minor tweak in information presented for A/B testing. I find this seesion to be very insightful, as you experience first hand how even yourself are prone to the biases subconciously despite being aware of them from the get go. Other than that, the content felt a bit fluffy to me.&lt;/p&gt;

&lt;p&gt;There is a group presentation, and an individual open book assessment.&lt;/p&gt;

&lt;h3 id=&quot;fin2704-finance&quot;&gt;FIN2704 Finance&lt;/h3&gt;

&lt;p&gt;Taking now. Still forming opinion.&lt;/p&gt;

&lt;h3 id=&quot;bsp2701-global-economy&quot;&gt;BSP2701 Global Economy&lt;/h3&gt;

&lt;p&gt;Taking now. Still forming opinion.&lt;/p&gt;

&lt;h2 id=&quot;other&quot;&gt;Other&lt;/h2&gt;

&lt;h3 id=&quot;is1108-digital-ethics-and-data-privacy&quot;&gt;IS1108 Digital Ethics and Data Privacy&lt;/h3&gt;

&lt;p&gt;fluff&lt;/p&gt;

&lt;h3 id=&quot;gea1000-quantitative-reasoning-with-data&quot;&gt;GEA1000 Quantitative Reasoning with Data&lt;/h3&gt;

&lt;p&gt;hmm&lt;/p&gt;

&lt;h3 id=&quot;es2660-communicating-in-the-information-age&quot;&gt;ES2660 Communicating in the Information Age&lt;/h3&gt;

&lt;p&gt;fluff&lt;/p&gt;

&lt;h3 id=&quot;gess1029-everyday-ethics-in-singapore&quot;&gt;GESS1029 Everyday Ethics in Singapore&lt;/h3&gt;

&lt;p&gt;Taking now. Still forming opinion.&lt;/p&gt;</content><author><name></name></author><category term="jekyll" /><category term="update" /><summary type="html">My mod review for NUS, mainly Computer Science and Business Administration, and some GE modules though.</summary></entry><entry><title type="html">Should AI Art be Given Copyright?</title><link href="https://jcsnap.github.io/blog/jekyll/update/2023/11/10/ai-copyright.html" rel="alternate" type="text/html" title="Should AI Art be Given Copyright?" /><published>2023-11-10T15:47:50+08:00</published><updated>2023-11-10T15:47:50+08:00</updated><id>https://jcsnap.github.io/blog/jekyll/update/2023/11/10/ai-copyright</id><content type="html" xml:base="https://jcsnap.github.io/blog/jekyll/update/2023/11/10/ai-copyright.html">&lt;p&gt;My essay for ES2660, which I thought through a bit before writing. I enjoyed writing this since this is the first time I wrote an argumentative piece in a long while. Word cap is 850.&lt;/p&gt;

&lt;h2 id=&quot;beyond-human-hands-the-case-for-copyrighting-ai-generated-art&quot;&gt;Beyond Human Hands: The Case for Copyrighting AI-Generated Art&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Criteria for copyright&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As if ripped from a science fiction novel, a painting not born of human hands has swept through the art world by storm, stirring as much admiration as controversy. This piece in question, Théâtre D’opéra Spatial sparked a fiery debate when its application for copyright protection got denied &lt;a href=&quot;https://www.reuters.com/legal/ai-generated-art-cannot-receive-copyrights-us-court-says-2023-08-21/&quot;&gt;1&lt;/a&gt;: should AI artworks be granted copyright protection?&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;I believe that AI artworks, like other digital artworks, deserve copyright considerations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Criteria for copyright&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yet many balk at this notion. When US District Judge Beryl Howell rejected copyright for the AI artwork, she claimed that “human authorship is a bedrock requirement of copyright” and dismissed AI art as “absent of any guiding human hand” &lt;a href=&quot;https://www.theverge.com/2023/8/19/23838458/ai-generated-art-no-copyright-district-court&quot;&gt;2&lt;/a&gt;, which highlights the importance of human agency in copyright considerations. This makes sense since in order for one to “own” a piece of something, you have to at least be involved in the creation of that something. Apart from authorship &lt;a href=&quot;doi:10.1093/oso/9780198768692.003.0002&quot;&gt;3&lt;/a&gt;, two other crucial components of copyright considerations are originality and creativity &lt;a href=&quot;https://scholarship.law.duke.edu/cgi/viewcontent.cgi?article=4136&amp;amp;context=lcp&quot;&gt;4&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;This essay does not aim to redefine the criteria for copyright, but rather, make the case that AI generated art should be considered for copyright under existing criteria. In other words, I accept that human agency (or authorship), originality and creativity are crucial considerations for copyright. What I disagree with Judge Beryl and critics is that AI art is absent of any guiding human hand, lacks originality and creativity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do AI artworks fit in?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Firstly, it is important to note that the “human hand” mentioned in this context is not meant to be taken literally, evidently with the copyright of digital art that are aided by computer programmes such as Adobe Photoshop (which itself is a software that also employs some form of AI technology) &lt;a href=&quot;http://www.theinformedillustrator.com/2016/09/digital-art-copyright-law.html&quot;&gt;5&lt;/a&gt;, or photographs (which is aided by a camera) &lt;a href=&quot;https://www.format.com/magazine/resources/photography/photography-copyright-law-guide#:~:text=Copyright%20in%20photography%20means%20that,the%20button%20owns%20the%20copyright&quot;&gt;6&lt;/a&gt;. For the former, despite the aid from tools, there is human agency involved in choosing the idea to convey, what to draw, how to draw, with each stroke being a decision itself. For the latter, it involves choosing the subject and choosing how to shoot. For AI art, people often underestimate how much guidance is needed to reach the end product. From choosing a subject, to styles, lighting and dimensionality, and even the way sentences are phrased can have a huge effect on the end result &lt;a href=&quot;https://github.com/willwulfken/MidJourney-Styles-and-Keywords-Reference&quot;&gt;7&lt;/a&gt;. Just like illustration softwares and cameras, generative AI is just a tool, and requires human agency that is deliberate, purposeful, and intentional to create the artworks.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;However, you might not be fully convinced. After all, the act of creating digital art seems to demand a more intensive decision-making process than AI art. One requires hundreds (or thousands) of strokes that are meticulously pieced together by the individual, while the other requires just typing in a few sentences. Right?&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Maybe, but this hinges on the assumption that the volume and intensity of decision-making dictate authorship. Have you ever gazed at an artwork and wondered “How is this considered art?”. Despite how one may feel, abstract artworks like the Green White by Ellsworth Kelly (sold for $1.7 million) &lt;a href=&quot;https://www.christies.com/en/lot/lot-5147465&quot;&gt;8&lt;/a&gt; are eligible for copyright, so do spontaneously snapped pictures &lt;a href=&quot;https://www.format.com/magazine/resources/photography/photography-copyright-law-guide#:~:text=Copyright%20in%20photography%20means%20that,the%20button%20owns%20the%20copyright&quot;&gt;9&lt;/a&gt;. Conversely, the controversial AI art in question has undergone 624 adjustments to the prompt &lt;a href=&quot;https://www.wired.com/story/ai-art-copyright-matthew-allen/&quot;&gt;10&lt;/a&gt;. It is not unreasonable to claim that there exists AI generated artworks that surpassed existing copyrighted artworks when it comes to volume and intensity of decision-making, and hence authorship.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Furthermore, I do think there are substantial potential for originality and creativity in AI artworks. After all, you are the one that decides what prompt to insert. It is important to note that the bar for originality and creativity is not high, requiring no more than “an absence of plagiarism” &lt;a href=&quot;https://scholarship.law.duke.edu/cgi/viewcontent.cgi?article=4136&amp;amp;context=lcp&quot;&gt;11&lt;/a&gt; for the criterion of originality and the creativity to not be “utterly lacking or so trivial to be nonexistent” &lt;a href=&quot;https://scholarship.law.duke.edu/cgi/viewcontent.cgi?article=4136&amp;amp;context=lcp&quot;&gt;12&lt;/a&gt;. Even for existing art, you can secure copyright for artworks influenced by other artists, or copyright photographs of the same subject in identical style. AI art should be subjected to the same standard (which is very low). Even if you include the style of some artists in your prompt, you are not plagiarising, but rather taking inspiration, like how Marcel Duchamps’ L.H.O.O.Q. is inspired by da Vinci’s Mona Lisa &lt;a href=&quot;https://www.nortonsimon.org/art/detail/P.1969.094&quot;&gt;13&lt;/a&gt;. Likewise, prompting for a specific style automatically qualifies the artwork as creative.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ending note&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Of course, I am not claiming &lt;em&gt;all&lt;/em&gt; AI art meet the criteria for copyright, but it seems like there are some AI generated artworks that exhibit a degree of “human authorship” that meets or even rival conventional artworks, while at the same time meeting the low bar of originality and creativity. Legal frameworks often lag behind technological advancement, with digital artworks and photography being subjects of controversy when they first emerged, though they have adapted with the passage of time. This time is no different, with the emergence of AI presenting a another pivotal moment for adaptation. We should embrace these changes so that creativity continues to be protected, regardless of the tools used to express it.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;References:&lt;/p&gt;

&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;1.     Abrams, H. B., “Duke Law Scholarship Repository&lt;/td&gt;
      &lt;td&gt;Duke Law Research,” ORIGINALITY AND CREATIVITY IN COPYRIGHT LAW, &lt;a href=&quot;https://scholarship.law.duke.edu/cgi/viewcontent.cgi?article=4136&amp;amp;context=lcp&quot;&gt;https://scholarship.law.duke.edu/cgi/viewcontent.cgi?article=4136&amp;amp;context=lcp&lt;/a&gt; (accessed Nov. 5, 2023).&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;2.     Arday, D., Digital Art &amp;amp; Copyright Law, &lt;a href=&quot;http://www.theinformedillustrator.com/2016/09/digital-art-copyright-law.html&quot;&gt;http://www.theinformedillustrator.com/2016/09/digital-art-copyright-law.html&lt;/a&gt; (accessed Nov. 5, 2023).&lt;/p&gt;

&lt;p&gt;3.     Brittain, B., “AI-generated art cannot receive copyrights, US Court says,” Reuters, &lt;a href=&quot;https://www.reuters.com/legal/ai-generated-art-cannot-receive-copyrights-us-court-says-2023-08-21/&quot;&gt;https://www.reuters.com/legal/ai-generated-art-cannot-receive-copyrights-us-court-says-2023-08-21/&lt;/a&gt; (accessed Nov. 5, 2023).&lt;/p&gt;

&lt;p&gt;4.     Davis, W., “AI-generated art cannot be copyrighted, rules a US federal judge,” The Verge, &lt;a href=&quot;https://www.theverge.com/2023/8/19/23838458/ai-generated-art-no-copyright-district-court&quot;&gt;https://www.theverge.com/2023/8/19/23838458/ai-generated-art-no-copyright-district-court&lt;/a&gt; (accessed Nov. 5, 2023).&lt;/p&gt;

&lt;p&gt;5.     Duchamp, M., “About the collection,” Norton Simon Museum, &lt;a href=&quot;https://www.nortonsimon.org/art/detail/P.1969.094&quot;&gt;https://www.nortonsimon.org/art/detail/P.1969.094&lt;/a&gt; (accessed Nov. 5, 2023).&lt;/p&gt;

&lt;p&gt;6.     Gover, K. E., “Art, authorship, and authorization,” Oxford Scholarship Online, 2018. doi:10.1093/oso/9780198768692.003.0002&lt;/p&gt;

&lt;p&gt;7.     Kelly, E., “Green White,” Ellsworth Kelly (b. 1923), &lt;a href=&quot;https://www.christies.com/en/lot/lot-5147465&quot;&gt;https://www.christies.com/en/lot/lot-5147465&lt;/a&gt; (accessed Nov. 5, 2023).&lt;/p&gt;

&lt;p&gt;8.     Knibbs, K., “Why this award-winning piece of Ai Art Can’t be copyrighted,” Wired, &lt;a href=&quot;https://www.wired.com/story/ai-art-copyright-matthew-allen/&quot;&gt;https://www.wired.com/story/ai-art-copyright-matthew-allen/&lt;/a&gt; (accessed Nov. 5, 2023).&lt;/p&gt;

&lt;p&gt;9.     Team, F., “The Essential Guide to photography and copyright law,” The Essential Guide to Photography and Copyright Law, &lt;a href=&quot;https://www.format.com/magazine/resources/photography/photography-copyright-law-guide&quot;&gt;https://www.format.com/magazine/resources/photography/photography-copyright-law-guide&lt;/a&gt; (accessed Nov. 5, 2023).&lt;/p&gt;

&lt;p&gt;10.  Willwulfken, W., “Willwulfken/Midjourney-styles-and-keywords-reference,” GitHub, &lt;a href=&quot;https://github.com/willwulfken/MidJourney-Styles-and-Keywords-Reference&quot;&gt;https://github.com/willwulfken/MidJourney-Styles-and-Keywords-Reference&lt;/a&gt; (accessed Nov. 5, 2023).&lt;/p&gt;</content><author><name></name></author><category term="jekyll" /><category term="update" /><summary type="html">My essay for ES2660, which I thought through a bit before writing. I enjoyed writing this since this is the first time I wrote an argumentative piece in a long while. Word cap is 850.</summary></entry><entry><title type="html">My Last KI Essay</title><link href="https://jcsnap.github.io/blog/jekyll/update/2023/11/05/last-ki-essay.html" rel="alternate" type="text/html" title="My Last KI Essay" /><published>2023-11-05T15:47:50+08:00</published><updated>2023-11-05T15:47:50+08:00</updated><id>https://jcsnap.github.io/blog/jekyll/update/2023/11/05/last-ki-essay</id><content type="html" xml:base="https://jcsnap.github.io/blog/jekyll/update/2023/11/05/last-ki-essay.html">&lt;p&gt;After my A level exam for Knowledge and Inquiry paper 2, I jotted down the essay plan that I had. That was the day I had the biggest sigh of relief. On hindsight, I really enjoyed the essay questions. I somehow stumbled upon my note recently. Looking back at my rough plan, I am surprised I managed to pull it off…&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;By the way, here are my &lt;a href=&quot;https://www.notion.so/justin-cheah-portfolio/011277958bc7401c8f06d7eb82c75190?v=32060027bff940b29e018d4e02b5556c&amp;amp;pvs=4&quot;&gt;KI notes&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;q1-all-i-know-is-that-i-know-nothing-to-what-extent-does-philosophical-skepticism-undermine-the-quest-for-human-knowledge&quot;&gt;Q1: “All I know is that I know nothing” To what extent does philosophical skepticism undermine the quest for human knowledge?&lt;/h2&gt;

&lt;h3 id=&quot;intro&quot;&gt;Intro&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Contradictory. Not all so extreme&lt;/li&gt;
  &lt;li&gt;Taking knowledge as JTB (Justified True Belief) - philosophical skepticism can come in two forms - one concerning the T (idealism), the other concerning the J (Cartesian, Humean, Agrippan)&lt;/li&gt;
  &lt;li&gt;Undermine if we apply it to our everyday lives. However if we draw the line and use it as a thought experiment, it can enhance knowledge construction&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;paragraph-1-philosophical-skepticism-concerning-the-t-undermines-k-construction&quot;&gt;Paragraph 1: Philosophical skepticism concerning the T undermines K construction&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Berkeley’s idealism - extreme&lt;/li&gt;
  &lt;li&gt;Even Kant, after making the distinction between the noumena and the phenomena, qualified by saying reality should be redefined to what we can access&lt;/li&gt;
  &lt;li&gt;Moore, on his essay “a Defense of Common Sense”, rejected Berkeley’s idealism by saying “there are two hands in front of me”&lt;/li&gt;
  &lt;li&gt;Using a commonsensical approach, we realized why such philosophical skepticism should not be involved in our lives&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;paragraph-2-philosophical-skepticism-concerning-the-j-undermines-k-construction&quot;&gt;Paragraph 2: Philosophical skepticism concerning the J undermines K construction&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Agrippan trilemma + explanation&lt;/li&gt;
  &lt;li&gt;We can never fully and sufficiently justify&lt;/li&gt;
  &lt;li&gt;Attempts to circumvent it through accepting theories of justifications such as foundationalism and coherentism&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;paragraph-3-philosophical-skepticism-seems-to-take-issue-with-the-lack-of-certainty-in-our-knowledge-inquiry&quot;&gt;Paragraph 3: Philosophical skepticism seems to take issue with the lack of certainty in our knowledge inquiry&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Cartesian systematically discard beliefs that can be doubted&lt;/li&gt;
  &lt;li&gt;Perception (hallucinations etc.)&lt;/li&gt;
  &lt;li&gt;Even Math which we once considered to be indubitable (evil demon argument)&lt;/li&gt;
  &lt;li&gt;Humean doubt - reason and experience (which are our main sources of knowledge)&lt;/li&gt;
  &lt;li&gt;His assault on causality sheds doubt on the very basic tool in which we used to make sense of the world&lt;/li&gt;
  &lt;li&gt;However, it seems absurd if one applies it to their everyday lives - doubting their senses or refusing to board a plane due to the fear that the laws of aerodynamics might fail&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;paragraph-4-such-skepticisms-are-not-meant-to-undermine-k-construction-but-enhance-it&quot;&gt;Paragraph 4: Such skepticisms are not meant to undermine K construction, but enhance it&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;Descartes wanted to find a belief that he can be absolutely certain of, concluding with his “cogito ergo sum”&lt;/li&gt;
  &lt;li&gt;Even so, Russell pointed out that there is still a leap in reasoning. Only sufficient to lead to the conclusion that “I think, therefore there are thoughts”&lt;/li&gt;
  &lt;li&gt;Differentiate between philosophical K and human knowledge (perhaps this is why the question makes the distinction?) since human knowledge hardly require certainty&lt;/li&gt;
  &lt;li&gt;Hume in his work, An Enquiry Pertaining Human Understanding, claimed that “be a philosopher; but amidst your philosophy, be still a man”&lt;/li&gt;
  &lt;li&gt;When used as a thought experiment, perhaps philosophical skepticism can enhance K inquiry.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;paragraph-5-philosophical-skepticism-inspires-ordinary-skepticism&quot;&gt;Paragraph 5: Philosophical skepticism inspires ordinary skepticism&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Science - role of skepticism in the scientific method&lt;/li&gt;
  &lt;li&gt;History - role of skepticism in historical inquiry&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;conclusion-the-principles-used-in-philosophical-skepticism-can-be-applied-to-our-k-construction-to-enhance-it&quot;&gt;Conclusion: The principles used in philosophical skepticism can be applied to our K construction to enhance it&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Edge cases are common in philosophical question&lt;/li&gt;
  &lt;li&gt;Challenges our beliefs…&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;q2-we-should-make-our-laws-based-on-the-principle-of-utility&quot;&gt;Q2: We should make our laws based on the principle of utility&lt;/h2&gt;

&lt;p&gt;When I first read this question, I wanted to skip it - because of the ambiguity that come with interpreting this question. The way I see it, there are two ways to interpret this question:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Utility can be interpreted as “usefulness”, or &lt;a href=&quot;https://plato.stanford.edu/entries/pragmatism/&quot;&gt;&lt;strong&gt;Pragmatism&lt;/strong&gt;&lt;/a&gt; and laws can be interpreted as Scientific laws.&lt;/li&gt;
  &lt;li&gt;Utility can be interpreted as “happiness”, and laws can be interpreted as the one that… get you in jail.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For me, I used the second interpretation.&lt;/p&gt;

&lt;h3 id=&quot;intro-1&quot;&gt;Intro&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Principle of Utility - (maximize pleasure, minimize pain; utilitarianism)&lt;/li&gt;
  &lt;li&gt;Laws - countries&lt;/li&gt;
  &lt;li&gt;“Should” normative - can be interpreted two ways - 1) we should because it is right 2) we should because it is pragmatic&lt;/li&gt;
  &lt;li&gt;Thesis: I disagree that the principle of utility is sufficient to enable us to know what laws we should make since it is neither “right” nor “practical”&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;paragraph-1-it-is-not-practical&quot;&gt;Paragraph 1: It is not practical&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Different types of “principle of utility”, what to adopt?&lt;/li&gt;
  &lt;li&gt;Bentham: quantity (intensity, duration)&lt;/li&gt;
  &lt;li&gt;Mill: quantity and quality (distinction between higher pleasure and lower pleasure)&lt;/li&gt;
  &lt;li&gt;Negative utilitarian - focus more on pain rather than pleasure&lt;/li&gt;
  &lt;li&gt;Even if we decide on one, still impractical&lt;/li&gt;
  &lt;li&gt;Bentham’s felicific calculator - how to calculate?&lt;/li&gt;
  &lt;li&gt;Mill’s rule utilitarianism - what about rules that are more gray? Like the banning of chewing gum in SG&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;paragraph-2-it-is-not-right&quot;&gt;Paragraph 2: It is not right&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Odd cases&lt;/li&gt;
  &lt;li&gt;Benthem - Le Guin’s The Ones Who Walked Away From Omelas - child in the basement -&amp;gt; applied in the real world - law permissing organs extraction from one person without consent to save 5?&lt;/li&gt;
  &lt;li&gt;Negative utilitarianism -&amp;gt; Though intuitive, if we take it to the extreme, does it entail that countries should pass anti-natalist laws? Since if children are not born, suffering decreases (beings in non-existence will not have the capacity to feel pain)&lt;/li&gt;
  &lt;li&gt;All these are intuitively wrong. But the case can be made that it need not be intuitive to be “right”. Thus whether it is right or not warrants discussion. G.E. Moore Open Question Argument&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;paragraph-3-any-attempts-to-create-laws-based-on-what-is-right-is-problematic-as-it-is-unclear-whether-moral-truths-exist&quot;&gt;Paragraph 3: Any attempts to create laws based on what is right is problematic, as it is unclear whether moral “truths” exist&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;G.E. Moore’s intuitionism is-ought&lt;/li&gt;
  &lt;li&gt;Intuition as a by product of evolution and culture&lt;/li&gt;
  &lt;li&gt;Supernatural&lt;/li&gt;
  &lt;li&gt;All these either falls into the is-ought or not justified. Are they exhaustive? Maybe not, but I’m not denying their existence, I’m merely skeptical to commit to their existence&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;paragraph-4-does-this-mean-we-fall-into-the-traps-of-moral-nihilism-and-let-anything-goes&quot;&gt;Paragraph 4: Does this mean we fall into the traps of moral nihilism and let anything goes?&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Hobbes - without laws - chaos - human nature - barbaric&lt;/li&gt;
  &lt;li&gt;Thus law is needed for pragmatic purposes&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;conclusion-laws-should-not-be-seen-as-static-but-a-dynamic-process-that-refines-based-on-the-peoples-changing-moral-principles&quot;&gt;Conclusion: Laws should not be seen as static, but a dynamic process that refines based on the people’s changing moral principles&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Rawl’s reflective equilibrium - not by appealing to moral facts, but other factors (reason, experience, principles)&lt;/li&gt;
  &lt;li&gt;Our moral position changes, and since a society is an aggregate of individuals, a society’s moral position changes&lt;/li&gt;
  &lt;li&gt;As I’m writing this - there are people protesting against the death penalty since the death penalty for Nagaenthran is scheduled 2 days from now&lt;/li&gt;
&lt;/ul&gt;</content><author><name></name></author><category term="jekyll" /><category term="update" /><summary type="html">After my A level exam for Knowledge and Inquiry paper 2, I jotted down the essay plan that I had. That was the day I had the biggest sigh of relief. On hindsight, I really enjoyed the essay questions. I somehow stumbled upon my note recently. Looking back at my rough plan, I am surprised I managed to pull it off…</summary></entry><entry><title type="html">The Case For Antinatalism</title><link href="https://jcsnap.github.io/blog/2023/04/30/the-case-for-antinatalism.html" rel="alternate" type="text/html" title="The Case For Antinatalism" /><published>2023-04-30T00:00:00+08:00</published><updated>2023-04-30T00:00:00+08:00</updated><id>https://jcsnap.github.io/blog/2023/04/30/the-case-for-antinatalism</id><content type="html" xml:base="https://jcsnap.github.io/blog/2023/04/30/the-case-for-antinatalism.html"></content><author><name></name></author><summary type="html"></summary></entry></feed>