Computer Science Fundamentals

Beginner-friendly learning group. Uses Coursera and DataCamp courses. Come join this group.

Register

Prerequisites: 

None

Who is this for:

People with no programming experience, or limited programming experience and would like to bring up knowledge a notch

What you can expect to achieve by the end of the path:

-Confident in calling yourself a software engineer, with a solid understanding of computer science

-Familiar with industry-grade programming languages which even financial trading firms and self-driving car companies predominantly use in their systems

-Prepared for technical interviews

Support you will get:

-Pair programming with peers to get different perspectives on problems, and learn from each other’s mistakes for deeper understanding

-Office hours with Stanford CS graduates who have gone through the actual classes at Stanford University

Learning path:

1.Programming Methodology  

Based on the Stanford CS106A course material and course textbook The Art and Science of Java (Eric Roberts) which all engineering students at Stanford University undertake. Introduces the Java programming language.

-Object-oriented programming

-Variables, methods, control flow statements, boolean expressions

-String manipulation

-File processing

-Exception handling

-Memory

-Debugging strategies

-Arrays

-Graphical User Interfaces

-Large-scale data structures

-Sorting and searching, algorithmic analysis

-Software engineering and programming patterns

2. Programming Abstractions

Based on the Stanford CS106B course material and course textbook Programming Abstractions in C++ (Eric Roberts) which all engineering students at Stanford University undertake. Introduces the C++ programming language.

-Standard C++ libraries and the procedural paradigm

-Functional and procedural recursion, recursive backtracking, recursive data

-Algorithm analysis, sorting and template functions

-Class implementation, dynamic arrays, linked lists

-Vector, stack and queue

-Trees, hashing, implementing map and set, graphs

3. Algorithms and Data Structures 

(optional - more targeted for those hoping to work professionally as a software engineer)

Coursera Specialisation from Stanford University