Git Product home page Git Product logo

learn2code's Introduction

learn2code

This repository contains slides, exercise examples and more for my lecture "Software Development".

All documents are located in the folder docs. The documents are completely written in markdown and are optimized for marp.

All documents are automatically exported to pdf and can be found in the pre-release with the latest tag.

Content of the Lecture

This lecture about "Software Development" is split in two parts. The main content of lecture is the introduction of the programming languages C and C++ as well as the introduction of the most basic software development tools.

Part I

In the first part of the lecture, the programming language C is introduced. On the one hand, the lecture deals with the necessary basics like datatypes, structures, arrays, pointers, branching, looping, and many more. On the other hand, basic tools of software engineering are introduced. Among others, these tools are: Linux Terminal, GCC, Clang, Git, CMake, google-test, VS Code, clang-format, and some more.

The slides of the first part of the lecture can be found in slides_learn2code_1.md. Respectively, the content of the first part is given in the Table of Contents.

For each part of the lecture, the corresponding code can be found. Further, there are some homeworks. The homeworks for part I are named Homework_1-*.md and can be found in de folder docs. The solutions to the homeworks are again to be found in the code folder.

Part II

In the second part of the lecture, the programming language C++ is introduced. The lecture deals mainly with the basics of C++ like namespaces, references, inheritance, polymorphism and more. Further, basic software engineering tools like doxygen and clang-tidy and the very basics of OpenCV are introduced. At the end a comprehensive exercise using CvPlot and Rapidcsv is given.

The slides of the second part of the lecture can be found in slides_learn2code_2.md. Respectively, the content of the first part is given in the Table of Contents.

For each part of the lecture, the corresponding code can be found. Further, there are some homeworks. The homeworks for part II are named Homework_2-*.md and can be found in de folder docs. The solutions to the homeworks are again to be found in the code folder.

Prepared Environments

Open in GitHub Codespaces

Contribute with Gitpod

How to Create the Slides

Most simple solution to work with marp ist the Marp for VS Code extension. Using this extension you most probably won't need anything else. If you want to run the PDF export on the command line you will need the following install steps.

Install Latest nodejs

https://tecadmin.net/install-latest-nodejs-npm-on-ubuntu/

sudo apt install -y curl 
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash - 

Install Marp

npm install -g @marp-team/marp-cli

Install google-chrome

wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt-get install ./google-chrome-stable_current_amd64.deb
rm ./google-chrome-stable_current_amd64.deb

Possible Marp Call

marp -c docs/marp_config.yaml docs/slides_learn2code_1.md

How to Build the Code

Most of the code samples are supporting CMake. All CMake capable samples are collected in the top-level CMakeLists.txt. Configure this top level project and you are good to go.

For all non CMake samples you should use the compiler of your choice (mostly gcc or clang and build it manually.

learn2code's People

Contributors

benniwi avatar

Stargazers

 avatar  avatar  avatar Fabian avatar SaltySamariter avatar  avatar

Watchers

Kostas Georgiou avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.