BSCS placement exam - how do I brush up on data structures in 4 weeks?
I'm transferring into a BSCS program in the fall and I have a placement exam coming up in about a month that'll determine which CS courses I can skip. I did some coding in high school and I've been self-teaching Python for the past year, but I haven't formally studied data structures or algorithms. I'm comfortable with basic programming concepts but I feel shaky on trees, graphs, sorting algorithms, and Big O notation.
The exam apparently covers everything from intro programming concepts up through data structures and discrete math. I'm spending about 2 hours a day on this right now, split between reviewing Python fundamentals and working through problems on LeetCode. I'm getting through most easy problems but medium-level algorithm questions are taking me 30-40 minutes each, which tells me my pattern recognition isn't there yet.
I'm not trying to place out of every course - I actually want to take algorithms properly - but I'd love to skip the intro programming course since I know that material well. What's a realistic prep strategy for someone in my position? And how much does the discrete math component tend to matter on these placement tests? That's the area I've spent the least time on.
For data structures I'd prioritize linked lists, stacks, queues, and binary search trees over graphs and dynamic programming for a placement context. The latter come up in upper-division courses but most intro/intermediate placements don't go that far into algorithmic complexity.
Discrete math shows up more on these placements than people expect - especially propositional logic, set theory, and basic proof by induction. You don't need to go deep but knowing the vocabulary and basic operations is worth a few days of prep. Khan Academy's discrete math unit covers what you need.
Your LeetCode approach is solid but supplement it with something that explains the concepts, not just the puzzles. The Visualgo.net site lets you watch data structures animate in real time - it made trees and graph traversal click for me way faster than just reading about them.
For placement exams at most programs, the intro programming portion is very testable with just 2-3 weeks of focused review. Focus on control flow, functions, basic OOP, and list/array manipulation. That's the bulk of what separates the intro course skip from having to take it.
I was in almost the exact same spot six months ago. Honestly, the thing that clicked for me was stop trying to memorize implementations and start asking "what problem does this structure solve." Like once I understood that a queue is just about maintaining order and a heap is about always having the min or max ready, the code started making sense instead of just being something to copy.
Four weeks is enough if you stay focused. I'd spend the first two weeks just doing arrays, linked lists, stacks, and queues until you're comfortable, then move to trees and hash maps. Don't skip hash maps, they show up constantly. Big O isn't as scary as it sounds either, it's really just asking "how does this slow down as the input gets bigger." You've got time, just don't try to do everything at once.
Quick update for anyone following this thread -- I'm about three weeks in now and just scored a 71% on a practice set covering arrays, linked lists, and basic sorting. Wasn't where I wanted to be, but honestly it's way better than my first attempt two weeks ago when I was just guessing half the time. I've been drilling one topic per day and doing timed review sessions at night which has helped a lot.
I'm planning to sit the real exam in about 10 days so I'm trying to hit the weak spots hard this week. One thing that helped me realize I had gaps was going through some of the practice questions here, including this section on bscs/questions/computer security and cybersecurity which came up in my program's sample syllabus. If you're in the same boat just keep grinding the practice sets -- the progress feels slow but it does add up.