Skip to content

NiccoloTosato/advanced_programming_2021

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Advanced Programming Build Status

The course aims to provide advanced knowledge of both theoretical and practical programming in C++14 and Python3, with particular regard to the principles of object-oriented programming and best practices of software development.

Syllabus:

  • Introduction to C++14. You will learn the logic and the basics of C++14, the built-in data types and how to effectively use them. Best practices in programming will be addressed.
  • Object orientation in C++14. The principles of Object-Oriented programming will be presented with particular attention to their implementations in C++14. Some of the most important Design Patterns will be discussed.
  • Python3. After a recap of the basics of Python3, you will learn how to program in object-oriented fashion in the Python3 programming language.
  • How to combine the two languages. Several methods to combine the two languages will be presented.

Where

  • In-person lectures: University of Trieste, H2bis building, Morin room
  • Remotely: via Microsoft Teams. Please join the team here. If you cannot join it, please let me know.

When

First lecture Monday, October 11, 2021, then each Monday and Friday.

  • Monday 14-16
  • Friday 14-18

Contact me

  • email: asartori@ictp.it, alberto.sartori@sissa.it
  • office: 107 old SISSA building via Beirut

Prerequisites

  • Familiarity with linux terminal and a text editor (e.g., emacs, vim)
  • A bit of knowledge of git

References

  • Programming: Principles and Practice using C++ (Second Edition), Bjarne Stroustrup, Addison-Wesley 2014, ISBN 978-0-321-99278-9

  • The C++ Programming Language, Bjarne Stroustrup, Addison-Wesley 2013, ISBN 978-0321563842

  • Fluent Pyhton. Clear, concise, and effective programming, Luciano Ramalho, O'Reilly 2015, ISBN 978-1-491-946000-8

How to get the material

Non-experienced git users

  • Very first time (N==0)
    • open a terminal
    • cd in a suitable folder
    • git clone https://github.com/asartori86/advanced_programming_2021.git
    • cd advanced-programming_2021
    • take a look at software carpentry lecture and pro git book
  • N > 0
    • open a terminal
    • cd to the folder advanced-programming_2021
    • git pull origin master
  • if(conflict)
    • ask

Experienced git users

  • Very first time (N==0)
    • fork the repository
    • clone either your fork or this repository
    • add the other remote
  • N >= 0
    • use branches
    • rebase on the correct master branch
    • merge the branches in your local master
    • push on the master of your fork
  • if(conflict)
    • if(rebase)
      • git add
      • git rebase --continue
      • if(bigger mess)
        • git rebase --abort
    • if(merge)
      • git add
      • git commit
      • git merge --continue
      • if(bigger mess)
        • git merge --abort

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 81.0%
  • Jupyter Notebook 13.7%
  • TeX 2.2%
  • Makefile 1.7%
  • Python 1.1%
  • C 0.3%