Math, Code, and Coffee: My Life as an NTU Math & CS Student

17 min

In this blog, I share my personal experiences as a student in the Mathematical and Computer Sciences programme at NTU, focusing on modules that I took, internship experience, and hackathons.

Courses Taken

Year 1 Semester 1

  • MH1100 CALCULUS I

    Review:

    This module covers foundational topics in calculus, including limits, derivatives and their applications, as well as basic integration techniques such as anti-derivatives. While the concepts are relatively straightforward, it is important not to be complacent—due to the ease of the content and exam, the bell curve tends to shift to the right. Precision and consistent practice are key to performing well.

    Grade components: 20% Assignments, 30% Midterm, 50% Final

  • MH1200 LINEAR ALGEBRA I

    Review:

    Linear Algebra I introduces fundamental concepts such as matrices, Gaussian elimination, and the properties of matrices. It gradually progresses to more abstract ideas like linear dependence and vector spaces. The module can be conceptually challenging due to the wide variety of question types. A strong grasp of the underlying theory is essential before tackling practice problems. Focusing on understanding complex examples early on can be especially beneficial.

    Grade components: 20% 2x Quizzes, 30% Midterm, 50% Final

  • MH1300 FOUNDATIONS OF MATHEMATICS

    Review:

    Arguably one of the most important modules in the curriculum, this course lays the groundwork for rigorous mathematical thinking. It begins with formal logic, followed by various proof techniques, and covers essential topics such as sets, functions, and relations. The module is intellectually stimulating and equips students with the skills needed for higher-level mathematics. Prof NKM delivered the content exceptionally well, making abstract topics engaging and understandable.

    Grade components: 20% Assignment, 30% Midterm, 50% Final

  • PS0001 INTRODUCTION TO COMPUTATIONAL THINKING

    Review:

    This module introduces the basics of computational thinking using Python. Key topics include problem decomposition, pattern recognition, abstraction, and algorithm design. The content is manageable for those with a clear understanding of the concepts. The programming project is a significant component of the assessment, so it is advisable to start early to avoid last-minute difficulties.

    Grade components: 60% 2x Quizzes, 30% Project, 10% LAMS

  • CC0002 NAVIGATING THE DIGITAL WORLD

    Review:

    This course provides an introduction to digital and technological literacy, offering insights into how technology shapes society.

    Grade components: 40% Assignments, 40% Quizzes, 20% Class Participation

  • CC0003 ETHICS & CIVICS IN A MULTICULTURAL WORLD

    Review:

    A more reflective and discussion-based module, this course explores ethical theories, moral reasoning, and civic responsibilities in a multicultural society. Personally found it difficult .-.

    Grade components: 20% Class Participation, 20% Weekly Quizzes, 30% Presentation, 30% Essay

Year 1 Semester 2

  • MH1101 CALCULUS II

    Review:

    A direct continuation of Calculus I, this module introduces Riemann sums, techniques of integration, and topics in sequences and series. While some parts may feel like a repeat of high school calculus, the module places greater emphasis on mathematical rigor and proof-based reasoning. Certain topics can be tedious, but with regular practice, the module remains very manageable.

    Grade Component: 20% Assignments, 30% Midterm, 50% Final

  • MH1201 LINEAR ALGEBRA II

    Review:

    Building upon the abstract concepts introduced at the end of Linear Algebra I, this module explores vector spaces and linear transformations in greater depth. The abstraction increases as vectors are no longer tied to simple numeric representations, but can be any object satisfying vector space axioms. Understanding the theory can be challenging, but once grasped, the exam problems are generally approachable.

    Grade Component: 20% In-class Quizzes, 30% Midterm, 50% Final

  • MH1301 DISCRETE MATHEMATICS

    Review:

    This module is split between two main areas: combinatorics and graph theory. The combinatorics portion requires precise and methodical counting techniques, while graph theory introduces concepts like minimum spanning trees and shortest path algorithms. The content is generally accessible, but exam questions are often designed to be tricky or deceptive, making extensive practice essential. Some graph theory proofs are conceptually difficult but very rewarding once understood.

    Grade Component: 20% Presentation, 30% Midterm, 50% Final

  • MH1403 ALGORITHMS & COMPUTING

    Review:

    This course introduces basic data structures such as stacks, queues, trees, binary search trees, and AVL trees, followed by algorithms including divide and conquer, dynamic programming, and greedy strategies. While lectures are relatively straightforward, exam questions can be broad in scope and require a solid understanding of how different algorithms work in practice. It is important to go beyond the surface-level material and apply concepts across a variety of scenarios.

    Grade Component: 20% Assignment, 30% Midterm, 50% Final

  • CC0001 INQUIRY & COMMUNICATION IN AN INTERDISCIPLINARY WORLD

    Review:

    A writing and discussion-based module focused on interdisciplinary thinking and communication. Personally, I found the philosophical and essay-style content less relevant with my STEM-focused interests.

    Grade Component: 20% Class Participation, 20% Presentation, 20% + 40% Assignments

  • CC0005 HEALTHY LIVING & WELLBEING

    Review:

    This module centers on personal health, wellness, and lifestyle choices. It is relatively light and enjoyable, with practical takeaways about maintaining physical and mental health during university life. A refreshing break from the more technical modules.

    Grade Component: 60% Assignments, 30% Final Essay, 10% Class Participation


Year 2 Semester 1

  • MH2100 CALCULUS III

    Review:

    This module extends the ideas from Calculus II to multivariable contexts, covering topics such as partial derivatives, multiple integrals, and vector calculus. While many of the visualizations can be difficult to grasp in three dimensions, the module itself is less focused on rigorous proofs—many are omitted due to their complexity. Overall, it is a fun and important module that lays the foundation for more advanced topics in applied mathematics.

    Grade Component: 50% 2x Midterms, 50% Final

  • MH2500 PROBABILITY & INTRODUCTION TO STATISTICS

    Review:

    This course introduces foundational topics in probability, some of which overlap with content in MH1301. It also touches briefly on statistics, though the statistical component is relatively minimal. Much of the content is straightforward and similar to high school mathematics. Quizzes are simple and offer opportunities to score full marks. However, the final few topics involve multivariable calculus, which can be tedious. Taking MH2100 concurrently helps significantly with understanding these sections.

    Grade Component: 50% 2x Quizzes, 50% Final

  • SC1005 DIGITAL LOGIC

    Review:

    This course begins with logical operations and number representation, and gradually moves into hardware concepts such as multiplexers, decoders, and flip-flops. The second half of the module introduces Verilog, a hardware description language used to model digital systems. The hands-on aspect of designing and simulating circuits makes the module practical and interesting.

    Grade Component: 10% Lab, 20% Lab Quizzes, 10% LAMS, 30% Midterm, 30% Final

  • SC1007 DATA STRUCTURES & ALGORITHMS

    Review:

    This module covers fundamental data structures—linked lists, stacks, queues, trees (BSTs, AVL trees), and hash tables—along with algorithms such as dynamic programming. It is implementation-heavy and conducted in C, making pointers a critical concept. The emphasis on practical coding skills makes this module essential for foundational programming competence.

    Grade Component: 25% 4x Assignment, 75% 2x Quizzes

  • SC2002 OBJECT ORIENTED DESIGN & PROGRAMMING

    Review:

    This course delves into object-oriented programming concepts using Java, with the last few weeks transitioning into C++. The course focuses on theoretical aspects of OOP such as abstraction, inheritance, polymorphism, and decomposition. It also covers software design principles (e.g., SOLID), UML diagrams, etc. The group project can be time-consuming, but is very manageable if planned properly.

    Grade Component: 10% Lab, 30% Project, 60% Final

  • CC0006 SUSTAINABILITY: SOCIETY, ECONOMY & ENVIRONMENT

    Review:

    A general education module focused on sustainability issues around the world. Topics span environmental, social, and economic dimensions. It raises awareness about global challenges but is not heavily technical.

    Grade Component: 10% LAMS, 30% Quizz, 10% Class Participation, 50% Assignments

  • ML0004 CAREER & INNOVATIVE ENTERPRISE FOR THE FUTURE WORLD

    Review:

    This module aims to help students develop their personal and professional brand, including résumé building and presentation skills. It also includes a component where students work on pitching ideas to real-world companies. The course is practical and oriented toward career preparation.

    Grade Component: 20% Individual Assignment, 10% VMOCK, 20% Quizz, 50% Group Project

Year 2 Semester 2

  • SC2001 ALGORITHM DESIGN & ANALYSIS

    Review:

    This module emphasizes the mathematical and analytical side of algorithms rather than implementation. It includes additional algorithms for dynamic programming (DP) from SC1007, string algorithms, graph analysis, and time complexity analysis using Big O notation. The DP topics span a wide range of problems and approaches. While mathematical, the course does not require rigorous formal proofs. A solid conceptual understanding and problem-solving practice are key.

    Grade Component: 20% Quiz, 20% Assignments, 50% Finals

  • SC2008 COMPUTER NETWORK

    Review:

    An introduction to computer networking concepts structured around the five-layer Internet model—from the application layer down to the physical layer. The course blends theory with mathematical models such as delay calculations and throughput analysis. It is a foundational module for CS students and provides essential context for systems and networking.

    Grade Component: 40% 4x Labs, 60% Final

  • PS0002 INTRODUCTION TO DATA SCIENCE & ARTIFICIAL INTELLIGENCE

    Review:

    Taught using R, this module covers fundamental data science and machine learning techniques, including K-Nearest Neighbors, Linear Regression, SVM. It is implementation-focused and emphasizes practical application over mathematical depth. Although the ML concepts are high-level, students gain hands-on experience with real datasets and visualizations.

    Grade Component: 20% Quizzes, 20% Assignments, 60% Final

  • CC0007 SCIENCE & TECHNOLOGY FOR HUMANITY

    Review:

    This general education module covers contemporary technological topics, from healthcare, AI, and blockchain. The material is broad and introductory, providing surface-level knowledge across various emerging fields. It serves more as a science literacy module than a technical course.

    Grade Component: 20% Individual Weekly Quizzes, 10% Team Weekly Quizzes, 10% Class Participation, 60% 3x Assignments

  • CS2113 Software Engineering & Object-Oriented Programming (NUS)

    Review:

    This module begins with coding conventions and best practices for individual developers using Java and object-oriented programming. It then shifts toward software engineering principles, including Agile methodology, documentation standards, use cases, and UML diagrams (e.g., sequence diagrams). The module is detailed and well-structured, bridging the gap between software development and product-level thinking.

  • IT2002 Database Technology and Management (NUS)

    Review:

    This course covers relational databases, starting with SQL queries and continuing with data modeling, normalization, and transaction control. It also introduces design methodologies and database theory. A practical and relevant module for any software-related discipline.

  • CS3230 Design and Analysis of Algorithms (NUS)

    Review:

    A more mathematically rigorous counterpart to SC2001, this module explores algorithm analysis in greater depth. It includes formal proofs, recurrence relations (e.g., Master Theorem), and more advanced topics such as randomized algorithms, NP-completeness, and reductions. The content is challenging but builds a strong foundation in theoretical computer science and algorithmic thinking.


Year 3 Semester 1

  • SC3079 PROFESSIONAL INTERNSHIP

    Review:

    Had a good time in Autodesk :>

Year 3 Semester 2

  • SC1006 COMPUTER ORGANISATION & ARCHITECTURE

    Review:

    This module introduces basic computer architecture concepts through ARM assembly language. The first half focuses on syntax, instruction formats, register modes, subroutines, and branch prediction strategies. The second half shifts toward general hardware topics such as memory hierarchies, hard drives, I/O devices, and audio systems. While the content can feel somewhat disjointed between the two halves, it provides a foundational understanding of how low-level software interacts with hardware.

    Grade Component: 40% 4x Quizzes, 30% Midterm, 30% Final

  • SC3000 ARTIFICIAL INTELLIGENCE

    Review:

    The course begins with fundamental AI algorithms, including Breadth-First Search (BFS), Depth-First Search (DFS), A*, and greedy search. It then transitions to Markov Decision Processes and reinforcement learning through Q-learning. The second half shifts focus toward logic-based AI, covering knowledge representation and inference systems.

    Grade Component: 40% 2x Assignment, 60% Final

  • SC3020 DATABASE SYSTEM PRINCIPLES

    Review:

    Unlike introductory database modules focused primarily on SQL, SC3020 dives into the system-level design and implementation of databases. The course covers how data is stored and accessed efficiently, starting with B-Trees and hash indexes, and explaining the role of disk-based storage, including disk seek and page access strategies. It then introduces multi-key indexing, transaction management, and the algorithms behind join operations. Later topics include query processing and query optimization strategies. This module emphasizes the underlying hardware and system principles that make modern database operations performant and reliable. It is conceptually rich and technical but very rewarding for students interested in system-level computer science. The project can be deadly for this course, especially that of second half of the course.

    Grade Component: 40% 2x Group Projects, 60% 3x Quizzes

  • MH2220 ALGEBRA I

    Review:

    This is a rigorous module in abstract algebra, primarily focusing on group theory. Topics include group definitions, cosets, Lagrange’s theorem, homomorphisms, isomorphisms, and special structures like abelian groups. The latter portion introduces advanced topics such as direct and semidirect products, group actions, and the Orbit-Stabilizer Theorem. The material can be abstract and conceptually challenging.

    Grade Component: 50% 2x Quizzes, 50% Final

  • BS2011 EQUATIONS OF LIFE

    Review:

    A module that applies mathematics to biological systems. The first half involves accessible, high school-level mathematics, while the second half delves into mathematical modeling in genetics, reaction kinetics, and population dynamics. Students without a strong background in biology may find parts of the course difficult to fully grasp, especially when biological assumptions underpin the math models. The math part of this course is somewhat trivial for math/cs students.

    Grade Component: 40% Midterm, 60% Final

  • HW0218 COMMUNICATION ACROSS THE SCIENCES

    Review:

    This module develops scientific communication skills. It teaches how to critically evaluate academic papers, write structured research summaries, and design and present persuasive scientific posters. The focus is on clarity, structure, and audience engagement—essential skills for both academia and industry.

    Grade Component: 30% Assignment 1, 30% Assignment 2, 30% Presentation, 10% Class Participation


Year 4 Semester 1

  • MH4311 CRYPTOGRAPHY

    Review:

    This module provides a comprehensive introduction to both classical and modern cryptographic techniques. It begins with historical ciphers, followed by symmetric key encryption methods such as AES & DES and cryptographic hash functions. The second half covers message authentication codes, and public key cryptography, including RSA, ElGamal, and algorithms based on the discrete logarithm problem. Advanced topics include digital signatures, key generation and exchange protocols, elliptic curve cryptography, post-quantum cryptography, and side-channel attacks. While the module is engaging and intellectually stimulating, it can be challenging to understand the vulnerabilities in cryptosystems and design effective attacks.

    Grade Component: 10% Assignment, 30% Midterm, 60% Final

  • SC2005 OPERATING SYSTEMS

    Review:

    An essential module for any computer science student, SC2005 covers core concepts such as processes, threads, and synchronization. The first half introduces concurrency control, mutual exclusion, deadlock prevention, and CPU scheduling strategies. The second half explores memory management, file systems, and virtual memory. The concepts are foundational for understanding how modern operating systems manage resources and execution.

    Grade Component: 25% 2x Lab Quizzes, 30% Algo Quizzes, 15% Concept Quizzes, 10% Lecture Quizzes, 20% 5x Labs

  • SC4030 WIRELESS & MOBILE NETWORKS

    Review:

    The module begins with the physics and hardware-level aspects of wireless communication, including signal propagation and modulation. It then examines different types of wireless networks—WLAN, WWAN, and WPAN—each in significant detail. Students gain insight into how various mobile network technologies operate and progress over time (somewhat of a history lesson for networking technology). Can be content heavy and it is required to memorize a lot of stuff.

    Grade Component: 80% 3x Quizzes, 20% Assignment

  • SC4040 ADVANCED TOPICS IN ALGORITHMS

    Review:

    This course covers a specialized set of algorithmic topics. It begins with computational geometry (e.g., closest pair of points, convex hull), moves into advanced greedy strategies and their applications, and finishes with network flow algorithms. While the scope of the syllabus is relatively focused, the exam questions can vary greatly in difficulty and style, often requiring deep understanding and problem-solving flexibility. The delivery pace can feel slow at times.

    Grade Component: 40% 4x Quizzes, 60% Final

Year 4 Semester 2

  • MH4519 FINANCIAL ECONOMETRICS

    Review:

    This module provides a practical overview of financial markets and time series analysis. It begins with foundational concepts such as portfolio theory and market structure, before diving into mathematical tools used to model and analyze financial data. Topics include linear time series models, ergodic theorem, return predictability, and various definitions and measurements of volatility (e.g., implied volatility). Later topics include multivariate analysis, factor models, principal component analysis (PCA), non-parametric models, and a brief look at high-frequency trading and market microstructure. The module is broad but not highly in-depth, making it practical for students interested in finance and applied statistics.

    Grade Component: 30% Midterm, 10% Assignment, 60% Final

  • SC3050 ADVANCED COMPUTER ARCHITECTURE

    Review:

    This module builds on SC1005 and SC1006, with deeper coverage of digital systems and datapath design. It revisits Verilog programming and explores datapath optimization techniques such as pipelining, branch prediction, and dynamic scheduling. The second half focuses on memory systems and introduces basic GPU and CUDA programming, alongside concepts like data-level and instruction-level parallelism. While the GPU section is very minimal, the module overall offers valuable insights into hardware-software co-optimization.

    Grade Component: 40% 4x Quizzes, 10% Labs, 50% Final

  • SC4051 DISTRIBUTED SYSTEMS

    Review:

    A theoretical course that introduces the core principles of distributed computing. It covers interprocess communication, distributed objects, remote method invocation, and real-world case studies such as distributed file systems, DNS, and peer-to-peer architectures. The second half delves into distributed algorithms for synchronization and coordination, including logical clocks, vector clocks, consensus algorithms, and replication consistency models. Although the concepts can be abstract, they become manageable with understanding. The open-ended group project provides hands-on experience applying remote method invocation to real-world systems.

    Grade Component: 40% Group Project, 60% Final

  • SC4079 FINAL YEAR PROJECT

    Review:

    For my final year project, I developed an AI-based assistive tool called Steady Mate (available here), under the supervision of Dr. Vidya Sudarshan. The platform is designed to support students with ADHD by providing personalized learning aids and tools. As an extension, I pitched the project to NTU’s Institute for Pedagogical Innovation, Research & Excellence (InsPIRE), which gave me the opportunity to share the platform more broadly. It was a fulfilling and meaningful experience that combined my technical skills with my interest in inclusive education.

Hackathons

  • 1st Runner-up SCSE TechFest Hackathon 2024

    We built Cognimate, a generative AI platform that helps students self-learn by building personalised courses or summarising PDFs into study notes, quizzes, and chatbots. Built with Next.js, tRPC, and OpenAI, the project aimed to make learning more accessible amidst rising paywalls and tuition costs. Despite challenges in aligning GenAI outputs with local curricula, our team shipped a full-featured prototype in under 48 hours.

  • 1st Place SUTD What The Hack Hackathon 2023

    We developed a voice-based mobile app to assist the visually impaired, offering real-time object recognition, scene description, and voice interaction. Using OCR.Space, HuggingFace models, and TTS, our app provided low-cost accessibility for the elderly and vision-impaired. We focused on making the solution scalable and reliable—testing across devices and prioritising usability. The project reaffirmed the power of AI for meaningful social impact.

  • Finalist (Top 12) TikTok Hackathon 2023

    We built Society, a TikTok-integrated group-buying feature with real-time chat and in-app translation. Aimed at reviving community spirit through shared purchases, the platform was built with Next.js, Tailwind CSS, and Supabase. I focused on frontend development, which I was in charge of building the chatting platform.

Internships

  • Software Engineer Intern @ GIC

    I joined the Risk and Performance Technology team as a Software Engineer Intern. My primary focus was on modernizing a core internal application by migrating it into a micro front-end architecture using module federation. This shift significantly improved deployment efficiency and allowed for independent delivery of features across teams.

    Additionally, I developed a supporting microservice and cloud system designed around event-driven communication. This system played a key role in orchestrating business-critical workflows like notifications and job triggers, providing real-time responsiveness for end users. The work was technically challenging but incredibly rewarding, especially knowing that it directly impacted systems used daily by investment professionals.

  • Software Engineer Intern @ Autodesk

    I joined a platform engineering team responsible for internal analytics and infrastructure. My internship was an 8-month experience, which gave me time to dive deep into both backend systems and automation. One of my first tasks involved integrating a multi-tenant API into their analytics pipeline, allowing the team to monitor over 300,000 tenant accounts every two weeks—data that became instrumental for business insights.

    I also led the migration of our end-to-end tests from Python to Golang, which not only improved reliability but doubled the testing efficiency. Beyond that, I implemented automated mechanisms to adjust system parameters like rate limits and allow-lists dynamically, and even built a tool to auto-generate service reviews—saving my teammates from repetitive manual work. It was a fast-paced environment where I got to touch both infrastructure and data, and learned a lot about reliability and scale.

  • Software Engineer Intern @ Growceria

    My first internship was with a startup called Growceria, a short but impactful two-month experience. I was responsible for implementing a payment system using Xendit, which supported over 50 daily transactions reliably.

    I also introduced static HTML invoice generation to streamline their order processing flow, and migrated their corporate website to Vite for faster builds and improved performance. Being in a startup meant wearing multiple hats, and it gave me a solid foundation in building features end-to-end in a production setting.

Conclusion

My journey through the Mathematical and Computer Sciences programme at NTU has been both rigorous and rewarding. From exploring foundational concepts in mathematics and computing to applying them in internships and hackathons, each experience has shaped my growth as a problem solver and builder. Beyond the classroom, I’ve gained practical insights, worked with diverse teams, and tackled real-world challenges—lessons that go far beyond textbooks.