florian-rabe / teaching Goto Github PK
View Code? Open in Web Editor NEWMy lecture notes and other course materials
My lecture notes and other course materials
Our room was changed to West Hall 2 (starting Thursday).
I've split the example into two git branches.
master: A very simple implementation that covers only type theory and is good to acquire basic understanding. It is sufficient for Homework Problem 3.1
formal_systems_full: an advanced implementation that includes
You can use this to deepen understanding and to run example programs (which may be helpful for Homework Problem 3.2).
A bit on the history, the current state of affairs, and a view on the future.
https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript
Auditors must submit homeworks as everybody else and reach a passing percentage on the homeworks.
They do not have to do quizzes or final.
The course description on campus net was automatically copied-over from last year, when the course was given by a different instructor, and is therefore outdated.
This year's course will cover much of the same material but with different emphasis and in a different order.
You can get an idea of the course content by peeking at the table of contents of my lecture notes.
However, note that list is not final yet. (In particular, it almost certainly contains more material than we will be able to cover.)
There will be a tutorial tomorrow at 16:30 in NM Conference Room.
I've posted it.
There will be a tutorial today at 20:00 in NM Conference Room.
It seems that square-and-multiply algorithm on page 33 will not terminate. (Please go over it; I might have failed to notice that it could work.) I found the following implementation on Wikipedia (Click here to view it) and it appears to be a good example of it.
Function exp_by_squaring(x, n)
if n < 0 then return exp_by_squaring(1 / x, -n);
else if n = 0 then return 1;
else if n = 1 then return x ;
else if n is even then return exp_by_squaring(x * x, n / 2);
else if n is odd then return x * exp_by_squaring(x * x, (n - 1) / 2);
This is officially published only next week.
But some of you may prefer to do both at once.
So I'm making it available already.
Some of you are submitting source files and PDFs to jgrader. Please submit only zip files.
Make sure to submit all the files before the deadline. Grading late assignments sent by email is not possible.
This is not due for a while.
But the first problem is about correctness. So you may want to look at that one now already.
I checked with the student records office: First-year students who were rejected from the course can register for it if they submit a prerequisite waiver form.
The form has to be signed by (at least) me and be submitted to the student records office.
You should do that right away.
I'm going to use this issue to post interesting current practical examples that I come across.
Feel free to post yourself if you find something.
SaDS is a completely new course, and it is not entirely obvious what material it should and how much material it can cover.
The table of contents give you a rough idea what we will do, but I may still have to adjust that list significantly as we go along.
I'll answer questions in the lecture tomorrow.
I will discuss some techniques relevant for this homework in upcoming lectures.
But it's possible to start working on it already.
Based on the discussion during today's tutorial, I put the possible time slots for the tutorial in a doodle vote.
Please choose the sime slots that best fit your schedule
http://doodle.com/poll/ez5cgzqtpptipww9#table
Homeworks will usually be
Homeworks will be submitted via grader by uploading one zip file for each problem.
For each student, the weakest two homeworks are not counted for grading.
In exchange, there will be no deadline extensions whatsoever.
If you are officially excused for the majority of the week, the homework will not count for you.
Hello,
I cannot upload my solutions for the third homework because no slot is created.
I'm officially giving it out tomorrow. But it's already online.
I received some official excuses for people who did not notify me ahead of time that they would miss the quiz.
As per official policy, I will not accept those excuses.
Homeworks will be submitted via github.
Be prepared to tell me a github user and repository name on Thursday next week.
Dear Dr. Rabe,
I am registered on Campusnet for AaDS but could not select AaDS as active course and submit homework on Jgrader.
Best,
Rui Cao
As announced in the lecture, I'm offering a bonus homework for up to 5% credit.
You have to
For example, for a github project, you might
Homework 1 is published.
I'll announce the procedure for retakers in this issue.
I created this issue so that affected people can subscribe to it already.
After the discussion, we made an agreement on how to submit the homework.
Please create a private repository by next Tuesday, and add @florian-rabe @aulon and me as collaborators. Also, please inform Florian the match of your real name and GitHub username.
Ps: as a student, you can create private repositories for free. You can get the student developer pack here: https://education.github.com/pack
Tutorials will start next week.
Does anyone know for sure whether we are having a quiz this week?
Update: It is announced that It is on Thursday (16.03)
In the lecture, some people had difficulties with these concepts.
So I added Sect. 3.1.4.
It introduces no new material. Instead, it explains the same material in a different way.
This new way is particularly helpful for self-study: It shows how you can implement potential loop invariants and termination orderings in such a way that you can test them by running the program.
Hello,
I cannot upload my solutions for the first question of the first homework.
The deadline is false. It is indicated as follows: "No submission, deadline was 0000-00-00 00:00:00."
Given that in the poll there was no agreement, I am setting the tutorial for Sunday 3 pm.
Hope to see you all there!
This is the first time I'm using GitHub, and this a bit of an experiment.
Please let me know if this is working well for managing a lecture.
I've created this issue so that we can discuss the pros and cons of using GitHub.
Respond to this issue with any feedback or suggestions specific to the use of GitHub.
In Example 3.10 (https://github.com/florian-rabe/Teaching/blob/master/AaDS_17/goals.tex#L215) it should be it is sufficient to prove $\gcd(x,y)=\gcd(x, y-x)
not it is sufficient to prove $\gcd(x,y)=\gcd(y-x)
. gcd
on one argument makes no sense here.
In today's lecture, I ran out of time and couldn't finish the cost of the example algorithm.
We computed the number of multiplications for multiplying polynomials of degree
That simplifies to
One student asks by email:
I had a question regarding the first problem of the 3rd homework in Algorithms
and Data Structures.
One part of the problem is to argue informally why there can be no better
algorithm. I am confused as to how does one do that.
I can only say that this is the algorithm that I came up with and that it takes
the least amount of steps/operations possible. Could you give an example of
correct solution to the problem?
I'm using GitHub to manage my courses.
All announcements and questions will be posted as issues on this repository.
Labels will be used to sort these conveniently.
If you create a new issue, make sure to attach appropriate labels.
Note that I use this repository for multiple courses - always include the label for the course:
The lecture notes are part of the repository.
You can read them online or create a local copy using the 'git pull' command.
The lecture are written using LaTeX (which you should learn anyway and which you may want to use to write your homeworks).
If you use LaTeX, you can edit and compile the lecture notes yourself.
You can even use 'git push' requests to propose changes to me. - I may award bonus credit for substantial improvements.
It's in this repo.
I'll answer questions in the lecture tomorrow.
I've uploaded a partial solution to Subproblems 1-3 of question 2.1.
As discussed in the lecture, deadline HW 2+3 are pushed to the respective Tuesday.
I've also adapted the problem statement to make it a little simpler and fit the partial solution better.
As before, you can alternative implement it in a different language.
The course will be graded as follows:
bonus credit as announced
I'll be off-campus on Thursday March 23.
As agreed in the lecture today, we will make up for that by extending some of the Thursday lectures.
We will start next week (March 16) with a lecture 19:00-21:00.
Some people asked me about the reassessment option.
My understanding is that I can simply let you take my final exam.
I will find out and get back to you by responding to this issue.
Note that a reassessment can make your results worse, especially when (as in this year) the instructor has changed.
My final exam may or may not have a different emphasis than last year's, and that may work for or against anybody who takes a reassessment.
The grading scheme will be as follows:
Up to 10% bonus points are obtainable through major contributions to the lecture notes.
To submit such a contribution, generate a pull request.
(If you plan to make a major contribution, you may want to check with me first).
I'm off campus on Thursday next week.
Therefore,
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.