Uni Graz logo

CMS 1+2

Review and Outlook

Gerald Senarclens de Grancy <cms@senarclens.eu>

When you finally understand what you are doing, things will go right.
– Bill Fairbank


You've learned how to

As a programmer you must acquire the habit of seeking out new information [...] "Look it up" is a perfectly reasonable answer to many problems, and as your skills grow and mature, it will more and more often be the answer.
– Bjarne Stroustrup


  1. Coding standards and Pythonic code
  2. Python 2
  3. Other programming languages
    • Learn new languages as you need them...
  4. Using a debugger
    • Python provides pdb for stepwise execution and inspection
    • Use gdb for debugging C++ code
    • To detect memory leaks, valgrind will be your best friend
  5. GUI programming and using web frameworks (eg. Django or Flask)
  6. Advanced programming techniques
    • Threads and parallelization
    • Object oriented design
    • Regular Expressions
    • Generators and iterators
    • Function decorators
    • Dynamic programming and memoization
    • Databases and object relational mappers
    • Security
    • ... and many, many more
  7. Python's standard library, STL, Boost, ...
    • Take time to know, but save time in the end
    • Occasionally it's faster to develop a small solution yourself though...

If in doubt, check, experiment! Don't just despair and don't just read the documentation.
– Bjarne Stroustrup

Where to go from here...

You've come a long way.
But the more you code, the more you need to learn about algorithms, programming techniques and related tools.
Thank you for taking this class and good luck!