Big Data and Blockchain (BDB) course (code 25418)
Lecturer: Dr. Paolo Coletti
Paolo.Colettiunibz.it
. Office E203 - Office hours: www.paolocoletti.it/timetable
Website: www.paolocoletti.it/bigdata
Course
Prerequisites
In order to correctly follow this course each student is required previous knowledge on these topics:
Course content
How to study for this course
This course is different from the majority of courses you are used to. This course is much more technical than theoretical and it is strictly sequential. This means that you have to adapt your study strategy:
1.
First of all, you either attend all the lessons (or compensate for missing lessons watching immediately the corresponding videos or reading the book) or it is really not worth coming to the next one, since you will have a hard life understanding the next topic.
2. After each lesson you must repeat slowly on your own everything done in class in order to be sure to have fully grasped the explained concepts before the next lesson.
3.
Needless to say it, do the exercise without copying them from your colleagues.
4. If you feel that writing programs and problem solving are not your best skills, it is better that before each lesson you watch the next videos so you will be able to grasp also the little concepts explained in the lessons.
For the exam the main difference with respect to other courses is that you have to train much more than studying. The content of this course is easy and does not need extensive study, however it is only with practice that you become skilled enough and know immediately what to do without wasting time.
ExamExam is split in four parts. The grade is the weighted average of the four parts, based on how many lessons were dedicated to each of them.
Coursework
Students have the opportunity to skip parts 1 and 3 of the exam with mid-terms. Each part is completely independent and will let you skip that part of exam. The mid-term grade will be your grade at the exam. If you believe that a grade in a certain mid-term is too low for you, write an email to dr. Coletti at least 7 days before the exam and you will be able to do the exam on that part. In order to be allowed to participate in the mid-terms you must submit all the home exercises that are assigned after each lesson by email to not later than 24 hours before the next lesson. You can do them alone or in a group of two, but your partner may not be the same of the previous homework. If they are not done properly or contain severe mistakes, you will receive immediate feedback from dr. Coletti. If you submit them early and not at the last minute and they are not sufficient, you can get the possibility to redo them after the feedback. Home exercises will be evaluated and you need to do them in a decent way to be allowed to participate in the mid-term, even though the home exercises grade will not be considered for your exam's grade.
Students have the opportunity to skip part 2 of the exam with assignments. This part is completely independent from the others. The assignments' grade will be your grade at the exam. If you believe that a grade is too low for you, write an email to dr. Coletti at least 7 days before the exam and you will be able to do the exam on that part. You must submit all the home exercises that are assigned after each lesson by email to not later than 24 hours before the next lesson. You can do them alone or in a group of two, but your partner may not be the same of the previous homework. If they are not done properly or contain severe mistakes, you will receive immediate feedback from dr. Coletti.
Do not:
- search with Google and come up with a solution which uses techniques and tools not explained in class. All exercises are designed to be solved with what is explained in class and you cannot use other tools to make your job easier, it is not useful for you;
-
copy the assignment from your colleagues (excluding obviously the colleague with whom you are working, if you chose to work as a group). I will have to inform the Dean if this happens (yes, in the past it happened...);
- send your code to your colleagues. It is fine to help other students and even to work together in more than two, but each group has his/her own code. If you send your code around, for sure somebody will send it to me very similar and I will inform the Dean (yes, in the past it happened...);
- send the assignment to me without specifying that you worked in a group with another person. It is not possible to attach a person after you have submitted (yes, in the past somebody tried it...)
Note that all students have this possibility, regardless of whether they attend or not. However, at the beginning of each lesson we will discuss together the home exercises and your problems and thus being present has its advantages for your comprehension and you can get extra points for course's improvements and good suggestions.
Modifications due to Covid Python, financial applications and smart contracts I will send you the file via email and receive the file back via email. In this video https://youtu.be/nFV8Dz8SdhY you find instructions on how to install and configure OBS, a program that you can use to record your screen and your face at the same time. Installing the program, configuring, making it work properly and have enough space on your disk (estimation: 200 MB for the program, 200 MB for each hour of exam) is your responsibility, so do at least a recording test of 30 minutes. Have Teams switched off when you use OBS, you must start the recording BEFORE receiving the exam files and end it AFTER sending the exam files to me: I must be able to see you opening the email and see you sending the email back to me. After the recording has stopped, please rename the video with your surname and name and then send it to me via WeTransfer or any other similar website that you like (which does not force me to register). Please rename the video file with your surname. Do not delete it until I have published the grades. My copy of the video will be deleted as soon as I correct that part of the exam. In case during the exam you need my assistance and would like to call me on Teams, you will not be able to make a video-call as your camera is busy with OBS. In this case you can use the Teams app on your smartphone (unibz does not want us to use Whatsapp or Telegram) using your rear camera to show me your screen. Please do some tests to hold it still and put the screen on focus since with trembling hands and out-of-focus I cannot help you. Cryptocurrencies and blockchain technology This part will be an oral examination on Teams. Note that oral examinations are public, so there could be other people connected (who obviously cannot speak!). I will not record the exam. I will ask you to show me your surroundings and there must be nobody around nor any course's material nor any other screen. You may hold an A4 paper with you which has one face written with whatever you want, including course's material. You will be evaluated on what you say, how you say it and on how much time does it take to answer (spending 10 minutes reading your A4 paper every time will penalise you). Cheating If I suspect you are cheating or have cheated, I will interrupt the exam and report to the Dean. I remind you that the regulations of the Faculty of Economics prescribe for cheating a suspension of one entire session for all exams and one entire year for this exam. It has already happened to some of your colleagues in the past, so please do not even try to cheat. |
Study resources
Topic |
Lessons' slides |
Videos as replacement of attendance |
Written material as support |
---|---|---|---|
Precourse | No slides anymore in XXI century | Go down here | No textbook in XXI century ! |
Python | No slides anymore in XXI century | Go down here | No textbook in XXI century ! |
financial applications with Python | No slides anymore in XXI century | Go down here | No textbook in XXI century ! |
Cryptocurrencies and Blockchain technology | Slides | Go down here | No textbook in XXI century ! |
Crypto2 | te be determined | ||
Smart contracts | No slides anymore in XXI century | Go down here | No textbook in XXI century ! |
Files and programs used in class | Last updated |
---|---|
Directory with the files used in class |
Python 3 versus Python 2
Issue | Python 2 | Python 3 |
it is a command: print <string> |
it is a function, therefore it needs parentheses: print(<string>) |
|
print with trailing comma | a trailing comma after print suppresses new line: print <string>, |
to suppress new line use: print(<string>, end="") |
integer division | 5/2 gives 2. To get the float result: either 5.0/2 or float(5)/2 or 5/2.0 or 5/float(2); float(5/2) still returns 2.0 |
5/2 gives 2.5 |
requests.get(<pageAddress>) | its .content is type str | its .content is type byte, covert it to string with str(page.content) before using it for .find |
dict | order is decided by the computer memory, so do not rely on it | order is exactly the insertion order |
range function | range function returns a list | range function returns a range object. To get a list: list(range(<arguments>)) |
xrange function | xrange function returns a range object, like range in Python 3 | |
sha256 | sha256(<string>).hexdigest() | sha256(<string>.encode('utf-8')).hexdigest() |
Videos of lessons
course advertisement |
![]() |
Old course advertisement |
course brief presentation |
![]() |
Brief course presentation |
![]() |
Precourse for Windows 10 on unibz network and file handling, first part. | |
precourse 02 |
![]() |
Precourse for Windows 10 on unibz network and file handling, second part. |
precourse Mac 01 |
![]() |
Precourse for Mac on unibz network and file handling, first part. |
precourse Mac 02 |
![]() |
Precourse for Mac on unibz network and file handling, second part. |
![]() |
For Python we will use Anaconda with Jupyter and Python 3 (in the video I install 2.7 but the procedure is identical) | |
01bis refusing to install Anaconda |
![]() |
For those who do not have a notebook (and borrow one from the library) or refuse to install Anaconda |
02 basic Python |
![]() |
Basic Python programming, Bakus-Naur form, integer and float variables, string variables, find method. |
How to solve problems |
![]() |
How to solve computer problems explained with a carpentry example |
03 procedures and decisions |
![]() |
Procedures, tab, logical expressions, and, or, not, If, else, elif. |
04 flowcharts |
![]() |
Flowcharts |
05 while and complexity |
![]() |
While loops, break, multiple assignment, computational complexity |
07 Solving problems |
![]() |
How to tackle a computational problem |
08 Lists |
![]() |
Lists and strings, loops, objects and their differences towards variables. |
10 Dictionaries |
![]() |
Flags, dictionaries, tuples. |
12 Hash functions |
![]() |
Hash functions: fingerprint for large objects, keeping passwords and PIN secret, timestamping, mining bitcoins |
20 objects |
![]() |
Classes, libraries, packages. |
21 arrays and random |
![]() |
|
22 importing data |
![]() |
|
23 rate of return |
![]() |
|
24 portfolios |
![]() |
|
25 risk |
![]() |
|
32 Monte Carlo for predicting stock prices |
![]() |
|
![]() |
A decentralised currency, basic cryptography, Bitcoin history and technology, blockchain technology, advantages and criticisms | |
![]() |
||
02 Metamask and Remix |
![]() |
You need to install Chrome or Firefox. Safari and Edge do not work :-( |
03 first Solidity contracts |
![]() |
|
04 a decentralized unstoppable bank |
![]() |
|
05 purchase contract |
![]() |
|
06 cryptotoken |
![]() |
THIS LESSON IS NOT ASKED AT THE EXAM (even though it is the most interesting smart contract...) |
networkfolders.avi
24 MB |
![]() |
This short video illustrates how to reach unibz network folder \\ubz01fst (which contains course_coletti and your own personal stuff) using VPN when you are connected from outside university or when you are connected using wifi. |
Exam
Before the exam:
Frequently Asked Questions
Q: Which software do I need for Python on my notebook?
A: Anaconda is available for Windows and for Mac. Take care to install Python 3. Watch the video 01 or 01bis for details.
Q: Which software do I need for smart contracts on my notebook?
A: We will use only Metamask, which is a browser add-on. Unfortunately only Chrome, Firefox and Opera accept add-on, so you need to have one of these three browsers. Watch video 02 on smart contracts for details
Q: I have no notebook. What do I need for the course and for the exam?
A: You can borrow a notebook from the library. Watch the video 01bis to know how can you use Jupyter, you have several possibilities. For smart contracts, probably before every lesson you will need to install the add-on to the browser with your 12-words phrase.
Q: How can I type backslash, square bracket, strainght vertical, curly braces on the German keyboard of a Mac?
A: Did you want to buy a Mac with a German keyboard? For programming it is lacking some fundamental keys. Here the shortcuts:
- backslash \ is obtained with ALT+SHIFT+7
- square brackets [ and ] are obtained with ALT+5 and ALT+6
- straight vertical | is obtained with ALT+7
- curly braces { and } are obtained with ALT+8 and ALT+9
Q: How can I reach network folder \\ubz01fst from outside unibz or connected via wifi?
A: For Windows users: if you are connected to wifi ScientificNetwork try to digit in any explorer address bar \\ubz01fst.unibz.it and see whether you reach it. You need to provide your login and password, but you need to tell to your computer that you are using a different domain and then you have to type unibz\loginname instead of simply loginname. If this fails or if you are no connected to ScientificNetwork, then you need to install VPN. There is a specific video up here.
For Mac users: if you are connected to wifi ScientificNetwork, Finder -> Go -> Connect to server -> smb://ubz01fst.unibz.it . You need to provide your login and password, but you need to tell to your computer that you are using a different domain and then you have to type unibz\loginname instead of simply loginname.
Q: May I fix an appointment to talk with you?
A: Sure, write me an email and we can fix it online or live. Alternatively, you can write me your questions via email or Teams message and I shall answer very soon.
Q: When will the next exam be?
Can you give me a hint on the exam's date because I have to catch a
plane? Can you move the exam's date? Can you fix the exam's date on the
week I suggest?
A:
Please stop writing me emails on this topic. Exam's date appears on your timetable as soon as it is official. If you have something to say about it, contact your students' speaker who is the only one who can submit requests on students' behalf.
Q: I may not enrol online for technical or administrative reasons or I forgot to enrol or it is my third attempt and I cannot enrol. Can I do the exam anyway?
A: No, I may not let non-enrolled students take part of the exam. Do not ask me to do illegal things! Ask the secretary whether there is something they can do.
Q: May I do the exam with my computer?
A: Sure. But beware: (1) you must be able to navigate the Internet and to enter directory \\ubz01fst.unibz.it\Courses\Course_Coletti. Do not wait for the day before the exam to check it. (2) You are responsible for your different programs' versions and configurations and for the absence on your computer of specific programs.
In any case you will have a unibz desktop computer in front of you.
Q: May I use the operating system in a different language?
A: Yes, sure. Your business.
Q: Will the exam be similar to the other exams on this website?
A: Sure. For the first year (2018/19) I shall put a couple of exam's prototypes.
Q: I lost a file during the practical exam because I did not save it correctly. What may you do?
A:
Absolutely nothing. With time spent on exercises you should know the
unreliability level of your programs, and how often you have to save.
Q: My files were not copied correctly at the end of the practical exam. What may I do?
A: Checking that the copy is correct, and practicing file copy even during
the exam, is your task and is official prerequisite for this course.
Previous exams
ID |
Session |
Notes |
Exam link |
Solution link |
Videosolution for Python |
Videosolution for smart contracts |
---|---|---|---|---|---|---|
Python training exercises |
||||||
03 |
May 2019 |
|||||
02 |
prototype for A.Y. 2018/19 |
|||||
01 |
prototype for A.Y. 2018/19 |
Just to give you some examples of written questions on cryptocurrencies given in the past years:
This page is maintained by Paolo Coletti.
Marisa Crucitti il teatro per ringiovanire Paolo Coletti personal page La stanza dell'arte Paolo Coletti Paolo Associazione culturale e ricreativa Kender Trento Bolzano La stanza dell'arte Marzia Centro Felix Trento Aarghen Thael Il Vecchio Continente GURPS Marisa Crucitti il teatro per ringiovanire Laboratorio d'arte Gabbana cornici Rovereto Nursing Up sindacato infermieri Bolzano ASL Italia Advanced Squad Leader Club scherma Bolzano Bozen Fecht club spada fioretto sciabola