Skip to content

Introduction

Kimmo edited this page May 31, 2018 · 11 revisions

The purpose of this documentation is to familiarize the student with how the Qt Mooc works.
We will introduce the planned workflow as well as the tools and materials of the course.
After reading this documentation we expect the student to have correctly set up their working environment (Qt Creator, TMC) (Linux/Windows/Macintosh).
We also expect the student to have a sufficient understanding of Qt Coding convention.
We will include the available channels to ask for help (messenger/irc/telegram/pastebin) and instructions on how and when to use them.

Our goal is to present the student with the relevant information for them to be able to smoothly proceed into Week 1 and start working on the course.

Introduction

Qt

What is Qt?

Programming should be fast, easy and fun. That’s why Qt has been focusing on improving software development for the last 25 years, and with the amount of applications and devices growing every day, efficiency has become more important than ever.

Qt has everything you need to quickly and cost-effectively design, develop, test, deploy and maintain your software for any project. Focus on creating the best user experiences instead of coding what’s already been coded for you.

Qt provides you with the libraries and tools you need to develop applications to almost any platform you can think of. As Qt is based on C++, you need to bring the compiler for your platform, but luckily every platform we know has a C++ compiler.

What is The Qt Company?

The Qt Company is the main responsible party for Qt development, productisation and licensing under commercial and open-source licenses. Qt is a C++ based framework of libraries and tools that enables the development of powerful, interactive and cross-platform applications and devices.

This course

What is this course?

This course was dreamed up and implemented so that you can also learn the essentials of Qt

Why is this course?

See previous question.

Is this a course for beginners?

Yes, you should be able to get through even if you are a beginner.

What are the requirements for enrolling in this course?

What do I need to know before enrolling in this course?

A basic understanding of object oriented programming and some C++ are good to have. For the QML side you are good if you know a bit of JavaScript and understand what the word 'declarative' means in UI programming (take a look here: https://en.wikipedia.org/wiki/QML).

What are the goals of this course?

The goals are that you will have an understanding of how to create an application with Qt and QML. And have an understanding of how the structures provided by Qt and QML are used in programming.

What is the schedule of this course?

The course can be completed on your own schedule. However we recommend that you work on the course every week. On average each section takes about a week and a half to finish.

What do I need to do to get credit for completing this course?

You need to finish XX% of the questions and exercises in the course.

You can get some additional points for answering the review questions at the end of each section.

How do I get credit for this course after completing it?

If you study at the University of Helsinki... If you study in the EU ... If you study elsewhere in the world ...

Course tools

What is Qt Creator?

What is TMC?
(What are kits?)


Where can I find the course material?

On this site we have included the course material and relevant exercises. We follow the format of course weeks, each week of the course revolving around a bigger topic. There are six course weeks in total These weekly topics include a number of subtopics and assignments attached to said subtopics.

We will include some relevant reference materials per week, this will mainly consist of links to Qt documentation and/or Wiki pages.

We recommend you to use the QMLBook as your course reference book, should you wish to use one. It contains relevant topics to this course and will provide with a second perspective to learning about getting the most out of developing with Qt. You can find the QMLBook here:

https://qmlbook.github.io/index.html


Where can I find the course exercises?
Where can I find documentation?

Setting up the working environment

How do I set up my working environment?

Here we want to include sufficient instructions for the student to effortlessly set up their working environment (Linux/Windows/Macintosh). This part of the documentation could possibly benefit from being tested on actual people once it's done.

Qt Creator

Qt TMC plugin

Placeholder for download link to where the Qt TMC plugin is being distributed from.

The documentation above will need to be updated if/once the client side TMC plugin transitions from using TMC-cli to autotest.

How do I set up my working environment on my toaster? These instructions aren't helping me out.

Working on the Qt MOOC

How do I work on this course?
How do I complete assignments?
How should I write my code (coding conventions)?
Why adhere to coding conventions?

Course contact channels

How do I get help during the course?

  • #qt-mooc @ freenode and on matrix/riot.im

Where do I find the right help for my particular issue?

  • Technical problems with the course assignments
  • Difficulties in figuring out assignments
  • Stuck on code that doesn't work
  • Technical problems with the course tools
  • Technical problems with Qt/Qt Creator
  • Problems/difficulties in making the course tools work before proceeding into Week 1 (WE WANT TO PREVENT AS MUCH AS POSSIBLE OF THIS INSTANCE OF A PROBLEM)

Here we will list all the possible contact channels a student may need with possible problems regarding the course.
We will also introduce pastebin as we are planning on using pastebin as a means of displaying your code to peers when asking for help.

The general idea is that the course would have a contact channel where students enrolled on the course can ask for help.
Pastebin functionality should be implemented in a manner so that a student can copy their code and easily present it on messenger/telegram/irc). Which contact channel the course will be using needs to be figured out at some point.

E: There was discussion of adding a segment where we explain explicitly that sometimes it may be helpful for the student who does not understand where things go wrong to go check on our tests and see what the tests are testing so that they would be able to figure out where their code is going wrong. This of course should be seen as a last resort alternative for edge cases or cases where the tests themselves may be faulty.

(Do we include the contact channels from "Finding the answers" slide from Qt Essentials slide set?)

F.A.Q

TBA

Useful reference material

It seems like links such as the namespace page (http://doc.qt.io/qt-5/qt.html) could be useful to put together in a more or less exhaustive list that would be easy for the student to refer to when needed?

Topics that were deleted or moved into other pages:

What is the Qt Core?

What is the Qt Namespace?

What is Qmake?

What are shadow builds?
How does this all work?
What are .pro files?

How do I use includes?
How do logging messages and alerts work?

-> 1.00

Clone this wiki locally