❗The content presented here is sourced directly from Udemy platform. For comprehensive course details, including enrollment information, simply click on the 'Go to class' link on our website.
Updated in [June 30th, 2023]
This course provides a comprehensive overview of the fundamentals of computer science. Students will learn the skills necessary to create more efficient and effective programmes, as well as gain a deeper understanding of computer science fundamentals. Through this course, students will be able to prepare for coding interviews and expedite their application for SE Factory's offline courses. Topics covered include algorithms, data structures, programming languages, software engineering, and more.
[Applications]
After completing this course, students can apply their knowledge of computer science fundamentals to create more efficient and effective programmes. They can also use the skills they have learned to succeed in coding interviews. Furthermore, students can use the knowledge they have gained to expedite their application for SE Factory's offline courses by filling out the form provided.
[Career Paths]
One job position path that is recommended for learners of this course is a Software Engineer. Software Engineers are responsible for designing, developing, testing, and maintaining software applications. They use programming languages such as Java, C++, and Python to create software solutions that meet customer needs. They also work with databases and other technologies to ensure that the software is secure and reliable.
The development trend for Software Engineers is to become more specialized in certain areas. For example, some Software Engineers may focus on developing mobile applications, while others may specialize in developing web applications. Additionally, Software Engineers are expected to stay up-to-date with the latest technologies and trends in the industry. This means that they must be willing to learn new programming languages and technologies as they become available.
[Education Paths]
The recommended educational path for learners is to pursue a Bachelor's degree in Computer Science. This degree will provide students with a comprehensive understanding of the fundamentals of computer science, including programming languages, algorithms, data structures, operating systems, computer architecture, and software engineering. Students will also learn about the principles of computer networks, computer graphics, artificial intelligence, and computer security.
The development trend of this degree is to focus on the application of computer science in the real world. This includes the development of new technologies, such as machine learning, natural language processing, and robotics. Students will also learn about the ethical implications of computer science and the importance of data privacy. Additionally, students will gain an understanding of the impact of computer science on society and the economy.
Course Syllabus
Welcome to the Foundations of Computer Science!
Python, why we're using it in this course
Scalar objects, the simple types
The types of objects in Python
On types
Arithmetic operators
Arithmetic Operators
Variables, using names instead of just values
Operator precedence
Calculate the sum of two numbers
Handling input and output
Comparisons
Introducing Strings
Logic Operators
Control Flow - If statement
Selection
2.1- Square Root
Control Flow - Loops (while, for)
Control Flow - Break
Control Flow - While vs For
Repetition
2.2 - Odd elements
2.3 – Square of an Integer
2.5 - Cubic Root
2.4 - Perfect Number
Strings slicing and encoding
Variable scope and functions
Strings in depth
Introducing functions
Functions and recursion
Find sum recursively
Count digits recursively
Reverse a number
2.1 - Palindrome Strings
2.4 - Coprimes
Data structures introduction
Lists (part 1)
Tuples
Lists (part 2) - Aliases and Sorting
Dictionaries
3.4 - Boiling Point
3.2 - List Jumps
3.1 - Sieve of Eratosthenes
3.5 - Cycles
Exponential and Logarithmic Function Review
Algorithmic Complexity Rationale
Big O Notation (Part 1)
Big O Notation (Part 2) - Quadratic Complexity Example
4.2 - Permuted Strings
4.4 - Euclidean Distance
2.3 - Wolves and Deer
1.4 - Spiral Index
Bisection Search
Sorting Algorithms Intro
Bubble Sort
Selection Sort
5.2 - Permutation Cycle Length
5.4 - Matrix Search
5.3 - Fair Partition
Introduction to Classes
Linked List
Stack
Queue
Priority Queue
6.1 - List Mode
6.2 - Filtering Linked List
6.3 - Well Formed String
6.4 - Linked List Equality
6.5 - Lowest-K Elements
6.6 - Merging Linked Lists
Hash Table
Trees
Binary Search Tree (BST)
7.1 - BST Descending Order Traversal
7.2 - BST Element Filtering
7.3 - Reverse BST in Place
7.4 - BST Levels
7.5 - Balanced BST
Graphs
Depth First Search (DFS)
Breadth First Search (BFS)
8.4 - Depth in Graph
8.1 - Maze
8.3 - Clique
8.2 - Graph Cycle