Algorithms and Software Engineering for Professionals
3.9 (32 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
752 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Algorithms and Software Engineering for Professionals to your Wishlist.

Add to Wishlist

Algorithms and Software Engineering for Professionals

Understand the core concepts and algorithms of software engineering using Java
3.9 (32 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
752 students enrolled
Last updated 8/2016
English
Curiosity Sale
Current price: $10 Original price: $40 Discount: 75% off
30-Day Money-Back Guarantee
Includes:
  • 7.5 hours on-demand video
  • 11 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Master the core software engineering algorithms
  • Understand the concepts Iterations, time complexity and optimization
  • Understand key data structures such as stack and queues
  • Learn the Art of Algorithm design
  • Master tree and graph Algorithms
  • Ace in technical interviews with proper grasp of concepts
View Curriculum
Requirements
  • This is an advance course and basic programming knowledge is assumed
Description

In order to build something, you must start from the ground up. It is always important to understand the basics and the core of a concept and this ideology also holds true for software programming. Data structures and algorithms are the basic building blocks for Software Engineering, that determine how the system will operate.

Data structures and algorithms are two common concepts that can be found in Software Engineering and are imperative to mastering any programming language or technology within the software technology landscape. In order to master any programming language, functional or objective, one must first understand the basic concept behind it, which includes algorithms.

Data in software engineering are represented in data structures such as maps, lists, trees, etc. and is in the constant need of being sorted and merged, transformed and matched in some way. For this reason, software engineers devised algorithms as a solution for this task, which is consistent, repeatable and testable with a set of metrics to quantify performance.

However, for data structures to work seamlessly with your system, you need to understand the basics to creating clean, efficient and powerful algorithms that reduces the amount of work required by the engineer. This is where this course can help.

Our comprehensive course has been designed to help you understand algorithms and data structures from scratch. This course covers important concepts related to data structures and algorithms including the five major categories of algorithms: Cryptography, Compiler Theory, Signal Processing, Data Analysis, and Graph Databases. This is a course for the Big Boys

It also includes understanding other primary concepts such as recursion and its relationship to concurrency and ADT’s like Trees and Graphs; relationship between trees and rotation operations used in balancing, operations with Primes, Fermat's theorem, parsing grammars with Stacks and Queues and related tools like AST based parsers the beginning step on the road to Compiler theory.

In addition to covering the theoretical concepts, the course also is packed with examples of practical applications. It is important to not only understand what the concept it, but also how to use it. You will definitely get the best of both worlds in this algorithm and data structure tutorial. 

This course will also help you ace the theoretical intensive tech interviews. So if you plan to apply for a tech job, this course will act as a great refresher. 

With this course, you will not only be able to understand algorithms, but actually write better algorithms to help simplify your programming life. With this much power waiting for you, what are you waiting for? Let’s get started.

Who is the target audience?
  • Students who want to master core concepts and algorithms for better software development will find this course very effective
Students Who Viewed This Course Also Viewed
Curriculum For This Course
103 Lectures
07:19:40
+
Introduction
1 Lecture 04:23
+
Iterations and Transformations on Sequence’s
7 Lectures 27:04

Iterations Lab 1 Count Condition Loops with Java 8 Streams
02:30

Iterations with Java Collections .
04:18

Iterations Lab 2 LinkedList Unsafe iteration on Queues
02:24


Iterations Lab 3 Matching Pattern Sequences with iterations Part A
04:27

Iterations Lab 3 Matching Pattern Sequences with iterations Part B
04:18
+
Time Complexity
12 Lectures 48:08
Time Complexity
04:08

Big O specific calculation
03:11


Time Complexity Lab 1 Practical Task Obtain Sequence Solutions
03:48

Array Operations 1 Equilibrium Index
04:25

Array Operations 2 Optimal Index
03:51

Sorting Arrays
04:13

Time Complexity Lab 2 Array task with Expected Worst case time complexity O(n)
03:26

Space complexity
04:08

Sorting Algorithms Time and Space complexity
03:45

Common Sorting Algorithms best and worst case
03:58

Time Complexity Lab 3 Sorting Algorithm efficiency
04:44
+
Counting and Optimisation
12 Lectures 49:28
Counting Concepts
03:13

Sliding window maxima and minima
04:53

Counting and Optimisation Lab 1 Application of a Sliding window
03:11

Counting and Optimisation Lab 1 Application of a Sliding window Part B
04:22

Counting Patterns
03:37

Count Combinations
04:18

Count Permutations
04:23

"Counting and Optimisation Lab 2 Application of Counting to Permutations "
04:29

Counting Theorem for Algorithms
03:39

Counting Sort
04:35

Pigeonhole Sort
04:33

Counting and Optimisation Lab 3 Application of the Counting Theorem
04:15
+
Sorting
12 Lectures 50:57
Sorting Concepts
04:44

Implement Insertion Sort with comparator
04:07

Sorting Lab 1 Introduction
03:54

Sorting Lab 1 Compute the number of distinct values in array of N integers.
03:27

Breaking the Quadratic time barrier
04:55

Implement Heap Sort
04:36

Recursive Sorting Algorithms
04:36

Implement MergeSort
04:33

Sorting Lab 2 Practical Optimise subsequences
04:30

Implement Radix sort Part A
03:44

Implement Radix sort Part B
03:25

Sorting Lab 3 Practical Radix Sort on String Arrays
04:26
+
Stacks and Queues
11 Lectures 46:11
Stack Concepts
04:24

Implement a basic Stack with a Linked List
04:40

Perform simple stack algorithm with Reverse Polish notation
03:43

Stacks and Queues Lab 1 Application of a Stack
03:27

Queue Concepts
04:20

Implement a basic Queue with a Linked List
03:33

Practical Application of a Queue
04:25

Stacks and Queues Lab 2 Practical Application of a Queue
04:16

Parsing Concepts
04:43

Implement a simple AST parser
04:25

Stacks and Queues Lab 3 Test for Well Formed Expressions
04:15
+
Divisibility Operations and Primes
14 Lectures 01:02:45
Slice Operations
04:54

Implement Kadane's algorithm
04:51

Implement a double-slice operation
03:46

Slice Operations Lab 1 Application of a slice operation Part A
04:06

Slice Operations Lab 1 Application of a slice operation Part B
04:29

Divisibility Operations
04:42

Implement Euclidean algorithm (common factors)
04:04

Implement a test for a prime number
04:59

Slice Operations Lab 2 Simple Peak detection
03:06

Slice Operations Lab 2 Simple Peak detection Part B
04:54

Divisibility Operations and Primes
04:53

Sieving (finding prime numbers)
04:36

Slice Operations Lab 3 Probabilistic Tests for Large Primes Part A
04:43

Slice Operations Lab 3 Probabilistic Tests for Large Primes Part B
04:42
+
Tree Based Algorithms
12 Lectures 53:35
Search Algorithms
04:41

Implement a Binary search
04:45

Implement a Hash table
04:45

Tree Based Algorithms Lab 1 Binary search algorithm optimisation
04:47

Binary Trees
04:35

Implement a Binary Search Tree
04:41

Binary Tree recursion
03:50

Tree Based Algorithm Lab 2 Extend the Binary Tree API
04:03

Avl Trees
04:22

Implement a Avl Tree
04:52

Sub Trees and Paths
03:40

Tree Based Algorithm Lab 3 Tree Traversal (Paths)
04:34
+
Graph Algorithms
11 Lectures 49:38
Graphs Concepts
04:56

Implement a Graph as a Abstract Data Type (ADT)
04:43

Implement a Depth-first search
04:42

Graph Algorithms Lab 1 Path Search with dfs
03:44

Graphs Search
04:24

Implement a Directed Graph as a Abstract Data Type (ADT)
04:02

Implement a Breadth-first search
04:40

Graph Algorithms Lab 2 Breadth First Search
04:24

Topological Sort
04:45

Implement a Topological sort
04:46

Graph Algorithms Lab 3 Shortest Path Optimisation
04:32
+
Algorithm Design
10 Lectures 42:48
Greedy Programming Concepts
04:43

Implement a Greedy Solution
04:22

Algorithm Design Lab 1 Overlapping Segment Application
03:40

Dynamic Programming Concepts
04:46

Implement a Dynamic Solution
04:55

Algorithm Design Lab 2 Optimise Stock Trades Part A
03:35

Algorithm Design Lab 2 Optimise Stock Trades Part B
03:41

Divide-and-Conquer Concepts
04:05

Implement a Divide-and-Conquer Solution
04:52

Algorithm Design Lab 3 Count the Unique Inversions
04:09
1 More Section
About the Instructor
Eduonix Learning Solutions
4.2 Average rating
47,797 Reviews
781,526 Students
189 Courses
1+ Million Students Worldwide | 200+ Courses

Eduonix creates and distributes high quality technology training content. Our team of industry professionals have been training manpower for more than a decade. We aim to teach technology the way it is used in industry and professional world. We have professional team of trainers for technologies ranging from Mobility, Web to Enterprise and Database and Server Administration.