"And another start of the school year begins! ACM welcomes all to the beautiful art of competitive programming. Let's keep those young brains churning, people!"
Week 1 - Welcome Meeting
For this intro meeting we discussed the history behind ACM as a whole, as well as what specifically the ACM@UCI branch focuses on. The main goals of the club is to get members ready for programming competitions and job interviews, and we use sites like LeetCode, HackerRank, Codeforces, and Kattis to practice. In addition, every year we send five teams to ICPC (an annual programming contest across universities). Qualifiers will be held on two dates this year, 10/11 and 10/22, and must be completed individually.
Week 2 - Competitive Programming Setup
For this presentation, our former treasurer Jerry Chen discusses the essentials for starting competitive programing. This includes utilizing common platforms like Leetcode and Hackerrank (more interview-prep orientated) or Codeforces, Kattis, and CSES (more competition orientated). He also talks about the common languages and IDES used, how to make a good submission template, what libraries to include, dealing with I/O (and I/O optimizations), and common macros to use to shorten code. At the end, our events coordinator Cindy Zhang led a practice Codeforces mashup to get new members familiar with joining teams and participating in the contest environment.
Week 3 - Dynamic Programming
For this week's presentation, we have a special guest: Jaehyun Park, research scientist and former ICPC coach for Stanford. Park first talks about the dynamic programming paradigm in abstract, then goes into the various use-cases for dynamic programming, from solving simple 1D and 2D DP problems, to solving more complex interval and tree problems, to finally optimizing the infamous NP-hard Traveling Salesman Problem.
Week 4 - Greedy
For Week 4's presentation, our dear External VP Jayden Entenmann discusses the tips and tricks of being greedy in competitive programming. A greedy solution requires making the locally optimal choice at each stage of the problem to get the global optimum. But not all problems can be solved greedily, and sometimes you'll end up "regretting" your choice. Jayden also discusses how to be greedy in real life: saving money with food-stamps, utilizing Costco's bulk deals, obtaining definitely-not-pirated software, finding the optimal pairings of H-Mart's 2-for-1 deals... you get the idea.
Week 5 - Problem Solving Strategies
In this presentation, our lead problem-writer Dongho Yang discusses popular strategies to consider during a competitive programming contest. This includes abstracting away extra words to make the problem as mathematical as possible, exploiting the concrete constraints and bounds of the problem, and of course, going outside to touch grass and for a breath of fresh air...
Week 6 - How to Get an Internship
Our prized Internal VP, Grace Chia, talks about her recent experience interning at Costar Group as well as the tips and tricks needed to ace the technical and behavioral interview rounds. As the saying goes, practice makes perfect - but there's a lot of randomness and luck involved too so keep your spirits high!
Week 7 - Binary Search and Ternary Search
This week, our fantastic (former) events coordinator Cindy Zhang discussed various search algorithms and their applications, including binary search, ternary search, and parametric search. Want to find a value in log(n) time? Want to find the min/max in a unimodal function? Want to find the optimal value for a parameter "x" within a function? Cindy's got your back!
Week 8 - Real World Applications of DSA
This week, our beloved webmaster Alexa discusses common data structures and algorithms found in the real world. Did you know that outside of a file system's logical tree structure, files are indexed using an internal B+ tree structure? Did you know that websites are just trees too (with each node being a DOM element)? Have you heard of the PageRank Algorithm? BGP routing?
Week 9 - Combinatorics
Our amazing (former) secretary Effie Shen talks about the uses and applications of combinatorics - the study of counting and arranging items. How many combinations and permutations from this set? What if we're only considering k items for each combination? Hey - why is DP getting involved?
Week 10 - Finals Study Session
Need help with Python? C++? Basic DSA? System design?
Stop by DBH 4011 and get assisted by the ACM board, or chat with others that also need help!