This repository contains all the course material, homework assignment, and notes from the courses I have enrolled at Jacobs University.
- Algorithms & Data Structures
- Introduction to Computer Science
- Programming in C
- Programming in C++
- License
Algorithms and data structures are in the core of computer science.This is an introductory course to learn about fundamental algorithms for solving problems efficiently, basic algorithmic concepts, fundamental data structures for efficiently storing, accessing, and modifying data, and the analysis of algorithms and data structures with respect to their computational and memory complexity. The presented concepts and techniques form the basis of almost all computer programs.
The course covers the fundamental concepts and techniques of computer science in a bottom-up manner. Based on clear mathematical foundations (which are developed as needed) the course discusses abstract and concrete notions of computing machines, information, and algorithms, focusing on the question of representation versus meaning in Computer Science.
After a short overview of the program development cycle (editing, preprocessing, compiling, linking, executing), the course presents the basics of C programming. It covers fundamental procedural programming components and constructs as well as simple algorithms in a hands-on manner. After learning the concepts of data types, variables, operators and basic data structures, programming constructs like branching, iterations, and data structures like multidimensional arrays, structures, pointers are presented. It covers advanced topics of C programming such as the work of the preprocessor, operations on the bit level, data structures, file handling (binary input and output), libraries, and debugging techniques. Data structures like dynamically allocated multidimensional arrays, linked lists, stacks, queues, tree structures are used for solving practical problems.
The unit covers the object-oriented programming constructs in C++ in a hands-on manner. In the first part, topics like introduction to objects and information hiding, making and using objects, data abstraction, inline functions, function and operator overloading, constructors, copy constructors, destructors, dynamic object creation are addressed. In the second part of the course the concepts of inheritance, polymorphism, virtual functions, and templates are introduced.
It covers advanced topics of C programming such as the work of the preprocessor, operations on the bit level, data structures, file handling (binary input and output), libraries, and debugging techniques. Data structures like dynamically allocated multidimensional arrays, linked lists, stacks, queues, tree structures are used for solving practical problems.
Introdution to Algorithms | Algorithms Book | Algorithms Visualization |
---|---|---|
To get started...
- Option 1
- π΄ Fork this repo!
- Option 2
- π― Clone this repo to your local machine
- HACK AWAY! π¨π¨π¨
- π Create a new pull request for adding and optimizing the code .