2

Answered

Hey,

Currently residing in Singapore and plan to apply to US universities. Unfortunately I wasn't able to find clear requirements for applying for computer science undergraduate through a level. Some places recommend further mathematics but they haven't given it clearly. Any advice on what a level courses should one take when applying for computer science?

2

1

🎉 First post

Let’s welcome 1 karma for each ⬆️ upvote on your answer, and 20 karma if your answer is marked accepted.

9

Accepted Answer

• 4 years ago

Hi, there all the way in Singapore!

One way you can see if you are on track is to look up the Major Requirement for the University you are interested in applying for. The most difficult colleges for STEM Majors are MIT/Caltech and typically their admits have completed AP Calculus B/C and some higher maths like Differential Equations or Multivariable Calculus.

For most competitive colleges my advice is that you take the hardest Calculus Course you have available, 1 or more Computer Science class and know how to program in 1 or more Computer Languages like Python, C++, or Javascript. It's also just as important to take the hardest Physics course, preferably all core Physics types including Mechanics (which requires Calculus to master).

Below I've included the core curriculum of the Stanford CS major. You will have a higher probability of being accepted into these types of majors if you are better prepared than your competition vying to get a spot in the same class. Why I think it's important to consider stepping up in high school is that this year and next will be incredibly difficult to get into the top colleges for CS. There are record numbers of applicants this year because of eliminating the standardized testing requirement combined with more students returning to campus after taking a gap year. Also next year, more and more Int'l students will be applying since there has been a hiatus of Int'l applications due to the previous WH administration's policy on issuing student VISAs. This should open up for this fall and next fall. At many top schools like Stanford, CS is the hardest major to apply for and get admitted. If you are unable to complete some of these tasks, try to find a college that has multiple entry points for acceptance. This means you might have to apply as a Linguistics Major or something else that you are really good at and transfer into the CS department if you are permitted to do so. You might lose a semester or two but you can make up the time by taking many CS related courses as electives even while you are temporarily majoring in something else.

Stanford Math Requirements for the Computer Science Major

Calculus- CS majors may use Math 19/20/21, 41/42, or AP credit to satisfy the calculus requirement. For more information, refer to the Calculus sections of the Stanford AP Credit Chart.

Mathematics in Computer Science-The undergraduate curriculum requires two CS math classes: Mathematical Foundations of Computing (CS103) and Introduction to Probability for Computer Scientists (CS109).

Math Electives

Two additional math electives are required for the CS major. The electives can be any combination of classes from an approved set of courses, listed on the first page of the program sheets. Because of significant overlap in the material covered, certain class combinations cannot be counted towards the math requirement. See your program sheet for more information.

Computer Science Department Requirements

Core Systems Programming Abstractions (CS106B or CS106X)

CS106B introduces students to many fundamental programming concepts and software engineering techniques using the C++ language. The course will focus on teaching problem-solving skills, basic abstract data types, and recursion. General topics include basic programming methodology (engineering, modularity, documentation), data abstractions (stacks, queues, linked lists, hash tables, binary trees, generics, and templates), recursion (procedural, backtracking), searching and sorting, and basic algorithmic analysis (including Big-Oh notation).

Computer Organization and Systems (CS107)

CS107 transitions students to programming on the UNIX machines. The class aims to teach students about computer systems from the hardware up to the source code. Topics include machine architecture (registers, I/O, basic assembly language), memory models (pointers, memory allocation, data representation), the compilation (stack frames, semantic analysis, code generation), and basic concurrency (threading, synchronization).

Principles of Computer Systems (CS110)

CS110 will teach students how to build larger-scale systems using operating systems and networking abstractions. Topics include processes (threading, context switching, interprocess communication), storage and file management (file systems, virtual memory), networking (sockets, TCP/IP, routing), and an understanding of distributed systems.

Theory

Mathematical Foundations of Computing (CS103)

CS103 will give students the mathematical foundations necessary for computer science. Topics include proof techniques and logic; induction; sets, functions, and relations; an introduction to formal languages; DFA's, NFA's, and Regular Expressions; Context-Free Grammars, Turing Machines, and NP-Completeness.

Introduction to Probability for Computer Scientists (CS109)

CS109 is designed to teach students material from probability and statistics that is relevant to computer science. Topics include combinatorics; probability theory; conditional probability, and independence; probability distributions; Bayes' Theorem, Law of Large Numbers, and the Central Limit Theorem; and hypothesis testing. The class will also cover applications of probability including hashing, data analysis, inference, and an introduction to machine learning.

Data Structures and Algorithms (CS161)

CS161 gives students the tools to analyze data structures and algorithms. Students will also practice devising algorithms for various problems. These skills are widely applicable and alumni report CS161 as one of the most useful classes at Stanford. Topics include algorithmic complexity analysis (Big Oh, Omega, Theta), recurrence relations, and the master method. In addition, students learn about several different classes of algorithms and data structures, including randomized algorithms, divide and conquer strategies, greedy algorithms, hasing, heaps, graph algorithms, and search algorithms (including blind and A* search).*

9

What are your chances of acceptance?

Duke University

Loading…

UCLA

Loading…

Unweighted GPA:** 3.7**

1.0

4.0

SAT: **720 math**

200

800

| **800 verbal**

200

800

Low accuracy (4 of 18 factors)

To keep this community safe and supportive:

- Be kind and respectful!
- Keep posts relevant to college admissions and high school.
- Don’t ask “chance-me” questions. Use CollegeVine’s chancing instead!