Code Monkey home page Code Monkey logo

pex's Introduction

pex

C++ Code for exerices, homeworks and C++ hints and links for the lecture "Programming Expertise" at the University of Potsdam for the Master course Bioinformatics in the second semester.

Exercise and Homework Projects

  • Pexban - 4 weeks project of a Kanban board application (SS2024)
  • Sheepboard - 4 weeks project to play the game sheeps and wolf (SS2023)
  • Pesports - 3 weeks project for a guess game for properties of amino acids (SS2020-SS2022)
  • Blosum - exercise for parsing inline tabular data and using operator overloading (SS2022)
  • Calc - exercise for writing a terminal tool to exercise addition and multiplication (SS2022)
  • Grep - exercise for using std::vector to implement R like grep functions (SS2022)
  • Leven - exercise for implementing the Levenshtein edit distance (SS2022)
  • FASTA - exercise for parsing FASTA files and extract IDs and sequence lengths (SS2021)
  • GoUtils - exercise start of a parser for Gene Ontology obo files (SS2021)
  • Minimat/IMatrix - exercise for implementing a matrix class using templates (SS2021) and a more specialzed and extend matrix for integers (SS2023)
  • Mkdoc - 2 weeks project for a API documentation tool using Markdown (SS2020)

Code Examples

  • Speed - code for discussing speed issues fixing regex issues and using memoization
  • pex - pex namespace with utility functions like grep, gsub, any, all, get_home_directory, file_isgzipped ...
  • pex::dstring class - extension of std::string - discussing pros and cons of extending this class

Templates

You can use these templates with the following editors like this:

  • Nano
    • use the insert file feature
  • Geany (Linux)
    • copy the files into a folder ~/.config/geany/templates/files
    • the menu entry "File -> New (from template)" should then show these files as new starting files
  • Jasspa MicroEmacs - https://githhub.com/mittelmark/microemacs
    • use the insert-file command, press Esc, then x then enter insert-file in the command line and write down the file name supported by using the TAB key for filename competion
    • or use the insert-template menu:
      • create folder ~/.jasspa/cpp
      • copy the files into this folder but change the extension from cpp to etf (MicroEmacs template file)
      • if you then create a new Cpp-file and thereafter execute the command "Esc x insert-template" and then press the TAB key you should see the templates where the selected one will be inserted at the current cursor position

Snippets

Here are editor snippets which allow you more easily to embed C++ code snippets:

  • for MicroEmacs cpp.eaf - just copy this file into the MicroEmacs user folder, usually ~/.jasspa, then use the command "Esc x abbrev-list" in the editor to see the abbreviations, clicking on them inserts the text snippets
  • geany.conf for Geany - just add the lines of this file to your snippets.conf file

Links

Documentation

Interfacing C++ with R and Python

Source code tools

  • cppcheck - C++ code checker/linter - install with: sudo dnf|apt install cppcheck
  • astyle - C++ source code formatter - install: with sudo dnf|apt install astyle

CLI-Libraries

  • argparse - Python argparse alike
  • CLI11 - most feature complete but slower compilation
  • popl - small and easy to use

Unit-Testing

  • doctest - single file header testing
  • utest - single file header testing

GUI-libraries

  • FLTK - small GUI library
  • webview - use HTML, CSS and JavaScript to build C++ applications

File related libraries

Backports of new C++ features to older compilers

Other

Code tipps and Tricks

Named Paramaters

Reflection

Videos about new C++ features C++ Weekly

pex's People

Contributors

mittelmark avatar

Watchers

 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.