Giter VIP home page Giter VIP logo

advanced_programming_2019-20's Introduction

Advanced Programming Build Status

SISSA webpage

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

Syllabus:

  • Introduction to C++11. You will learn the logic and the basics of C++11, the built-in data types and how to effectively use them. Best practices in programming will be addressed.
  • Object orientation in C++11. The principles of Object-Oriented programming will be presented with particular attention to their implementations in C++11. Some of the most important Design Patterns will be discussed.
  • Advanced features of C++14/17. Some of the new features of standard C++/14/17 will be introduced and explained.
  • 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.

Prerequisites

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

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

Locations

  • Lecture room is 128-129 in the main SISSA building in via Bonomea 265.

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_2019-20.git
    • cd advanced-programming_2019-20
    • take a look at software carpentry lecture and pro git book
  • N > 0
    • open a terminal
    • cd to the folder advanced-programming_2019-20
    • git pull --rebase 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

advanced_programming_2019-20's People

Contributors

asartori86 avatar asciara avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

advanced_programming_2019-20's Issues

git crash course

Wednesday, Oct 9, 2019, from 16:00 to 18:00 in room A005 in SISSA via Bonomea 265

Oral Exam

Dear Students,
please find here below the link to book the oral exam.

https://doodle.com/poll/88z67s8ta2maz2rt#link

Examinations start at 9 AM in the morning and at 2 PM in the afternoon.

Wed 19, we are in room 005 in the morning, and room 130 in the afternoon.
Thu 20, we are in room 005 the whole day.

Please select just one spot and try to do not leave holes.

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.