I’m new to computer science
Start with a gentle introduction to computation and small programs.
Start with: Introduction to Computer Science and Programming in Python
RedLectern topic
Explore foundational ideas in computation, programming, algorithms, computer systems, and computational approaches to data.
For: Learners at any starting point, including people new to programming and those returning to study a specific area.
After this page you can: Choose a suitable next learning path and explain how a small computational problem can be represented, solved, and checked.
Page reviewed
Computer science studies the intellectual work of computation: representing problems, designing procedures to solve them, and reasoning about the systems that carry them out. Introductory courses connect computational thinking with algorithms, data structures, abstraction, and programming, while broader study can include software, security, and web programming. The subject is larger than learning one programming language, and learners can approach it from practical, mathematical, or systems-oriented starting points. Harvard’s introductory syllabus describes the field through algorithmic thinking and problem solving, and lists abstraction, algorithms, and data structures among its topics. MIT’s introductory programming course frames computation as a way to solve problems and write small programs for useful goals.
A useful way to study computer science is to move between ideas and examples. Begin with programming to express a procedure and test it on concrete inputs; then examine algorithms and data structures to ask whether a solution is correct and how it handles growth. Study computer systems to connect software abstractions to the digital structures beneath them, and use data science to see how computation can support analysis of data. Practice by explaining a solution, trying examples that could expose mistakes, and refining the representation or procedure. MIT’s introductory course includes programming problem sets, while its data science course syllabus lists topics such as graph-theoretic models and stochastic thinking. These routes overlap, so you can begin with the question or goal that interests you.
Start with a gentle introduction to computation and small programs.
Start with: Introduction to Computer Science and Programming in Python
Use a broad introduction to revisit core ideas and identify a branch to pursue.
Start with: CS50x: Introduction to Computer Science
Continue from introductory programming toward computational thinking and data science.
Start with: Introduction to Computational Thinking and Data Science
Programming gives you a way to express procedures, test them on examples, and revise them when they do not solve the intended problem.
This course offers practice with functions, variables, conditionals, loops, testing, and debugging.
Program
A set of instructions that a computer can carry out to perform a task.
Abstraction
A way to focus on selected details of a problem or system while setting aside others.
Write a three-step procedure for deciding whether a number is even, then try it with 8 and 5.
Check whether the number divides by 2 with no remainder; if so, call it even, otherwise call it odd. The procedure labels 8 even and 5 odd.
Algorithms and data structures help describe computational procedures and the ways information is organized for those procedures.
The syllabus includes algorithms and data structures among its introductory topics.
Data structure
A way of organizing data so a program can work with it.
Describe a procedure for finding the largest value in a short list of numbers.
Keep the first value as the current largest; inspect each remaining value and replace the current largest whenever a greater value appears. For the list 4, 2, 7, the result is 7.
Computer systems study connects hardware and software abstractions, from digital building blocks to complete systems.
The course traces digital systems through logic gates, circuits, state machines, computers, and complete systems.
Digital system
A system built from digital components and mechanisms that can perform computation.
State machine
A model of a system in terms of states and transitions between them.
Model a simple door with two states, open and closed, and name one event that changes its state.
The door has an open state and a closed state; a close event can change it from open to closed.
Discrete mathematics gives computer science tools for describing structures, proving statements, and analyzing computational processes.
MIT presents the subject as elementary discrete mathematics with mathematical tools and proof techniques useful in computer science.
Invariant
A property that remains true as a process changes state.
Induction
A proof method that establishes a starting case and shows that one case leads to the next.
For the sequence 2, 4, 6, 8, state a property that remains true and give the next value.
Each listed value is even, and the next value in the sequence is 10.
MIT’s syllabus lists graph-theoretic models as a topic in computational thinking and data science.
The syllabus includes graph-theoretic models, random walks, Monte Carlo simulation, confidence intervals, and experimental data.
Simulation
A computational model used to explore the behavior of a process.
Data analysis
Using methods such as sampling and statistical summaries to examine data.
A bag has 3 red counters and 1 blue counter. Describe a simple simulation for drawing one counter at random.
Represent the bag with three red entries and one blue entry, then select one of the four entries at random. The model gives red three of the four possible entries.
No recent updates are available.
Harold Abelson, Gerald Jay Sussman, and Julie Sussman · 1996
MIT OpenCourseWare provides the book’s assigned readings and links to its full text online.
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein · 2009
Its chapters can be studied independently, and MIT Press describes its coverage as both broad and mathematically rigorous.
Stuart Russell and Peter Norvig · 2010
The authors organize AI’s subfields within a common framework and cover both theory and applications.
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau · 2018
The authors provide a free online text organized around these three operating-system themes.
David A. Patterson and John L. Hennessy · 2017
A computer organization course at the University of Rhode Island lists this RISC-V edition as required reading.
Abraham Silberschatz, Henry F. Korth, and S. Sudarshan · 2019
Its publisher presents it as an introductory database text covering the field’s core management concepts.
James F. Kurose and Keith W. Ross · 2021
The eighth edition presents networking through a layered approach, moving from application to physical layers.
Listed as Computer Science courses: