rogersm.net

exploring area

Page 2 of 5

About the needed time to follow a university course

One of the big advantages of being in a distance learning course is time management becomes much easier. The big hassle of assisting to a physical class is having to follow teacher’s schedule and his teaching speed. This synchronous learning disappears completely with distance learning: not only I’m free to assists to the class at whatever time of the day I like, also I’m the one setting the pace to the course. I am the one who can ignore theoretical lessons to go directly to the exercises or programming assignments.

This is extremely important if the pupil has previous experience. It is a torture for a pupil to go through a class in which he already knows the content (because of previous classes or professional experience) and the current educational system is not flexible enough to allow pupils to pass courses without being formally evaluated.

And as well as some pupils need a fast track procedure that allows them to reduce the time needed to get a degree, the university needs a defined model for pupils interested in a slower pace because personal or professional issues, so why do universities need to schedule classes around semesters?

Greenspun has some opinions about all of this and I agree with some of them. The current university model is old and does not make sense any longer, but more importantly  the current model is as teacher centred as it was in XI century and it should change to be pupil centred.

 

The first half of the course is over

We finished the first part of the Stanford ml-class course. Other than the backpropagation programming exercise, the rest have been easy enough for the people with the right programming/algebra skills.

The most interesting part comes next. I never studied SVM in my university years so it will be a new area for me. I expect this will help me to understand how easy is the course for people without previous machine learning skills. I’ll keep you updated.

Also the big news is Stanford has anounced new courses for 2012:

I really like the diversity of the courses (from soft skills like enterpreneurship to math like game theory, including a course about human computer interfaces).

I would like to sign up for the Software Engineering course, but I’ll need to find some extra time for it.

 

ML Class first lesson finished

Including the programming exercises.

And I find the remote learning experience gratifying. I have to thank Professor Ng for the quality of the materials, as well as the high level of the teaching: theoretical lessons are crystal clear, exercises are perfectly described, the Q&A support is excellent and the submitting system for programming exercises is godsend.

I have to recognise how difficult would have been to go through this course alone. But with the support of the Q&A web area is fairly easy to move forward. So, for now, I think this kind web teaching is perfectly possible, but some kind of support is needed for people without any previous experience. Web Q&A is ok, but for novices, local study groups are completely necessary.

So, after finishing the first batch of Octave exercise, let’s go for the next lesson: Logistic Regression.

First video lessons finished

I have finished the first two lectures: Introduction and Linear regression with one variable. From the academic side it has been easy. I already learnt it in my Artificial Intelligence courses in the UAB (based on S. Russell i P. Norvig with some additional content) and surprisingly I remember a lot of it.

What really surprised me ware the buttons in the video player to speed up the video to x1.2 or x1.5. When I first discovered it I though it was crazy to speed up a training video, but after trying it I discovered I can follow the class at x1.2 without any problem, and I will start with x1.5 shortly.

I’m even staring to think it helps me to be more focused on the lesson.

 

The Machine Learning Stanford course

I have started the Machine Learning course provided by Stanford engineering. I’ll be posting my experiences in this blog in the following weeks. I have decided to enrol in this course because of three reasons:

During my university years I was really into AI, and at that time Machine Learning was not as present as it is today (we did a great neural network course, and of course Bayes and decision trees) but the curricula was centred around classic AI, so this is a good opportunity to learn new techniques and have a good time.

Secondly, this will be my first academic non classroom based course. I’ve gone through different corporate distance learning, but never a university course and I’m highly interested in checking how it works.

Finally, I want to see how university courses work in the states. During my university years we (students and teachers) used to think our computing courses were not as good as the ones taught in the American universities. I want to see if we were right.

So, expect during the following weeks to start reading about my experiences. And if some one from Barcelona wants to meet to do some exercises, please send me an email.

Gartner is spamming me!

I know I am a Gartner user, and I know I have probably accepted to receive emails of things supposed to interest me (Or things that Gartner thinks I’m interested), but…

you sent me six mails in September, six in October and by November 6th I haver already received three. I did not want to check the all opt out box because I’m interested to be informed about you, but I do not accept to be spammed monthly, so I just checked the damn box.

You used to be nicer, but lately Forrester is much nicer: it only sends two emails per month.

Getting into Prolog, again

I’ve been getting into with Prolog lately. I had not programmed prolog since university but I wanted to play with expert systems, and Prolog was even better than lisp for prototyping.

So, because all the Prolog papers I was reviewing were referencing Programming in Prolog by W. F. Clocksin and C. S. Mellish I bought an older (and cheap) edition to re-read. I was surprised how good the book is for learning to program in Prolog.

You can use the wonderful Learn Prolog Now! as a free introduction text, but Clocksin and Mellish chapters on grammar rules, debugging and laying out programs makes the book priceless.

And if you want to use prolog for ‘practical matters’ I strongly recommend Jan Wielemaker Ph. D. disertation: Logic programming for knowledge-intensive interactive applications. You’ll find a good overview about using Prolog outside the logic course: Web, multi-threaded, RDFs, literate programming, interfacing with object-oriented systems and interfacing with C for creating data storages.

Finally, If you come from the functional programming world, download Scrap Your Boilerplate—Prologically! a Prolog version of the Scrap Your Boilerplate set of papers. It is a great addition for learning Prolog if your background is functional.

Understanding lisp conditions

If you ever have trouble understanding lisp conditions (what other languages call exceptions) or you have no experience with lisp and want to discover an exception system where you can jump from program code to the exception handling code and back (restart) read the following articles:

Something is wrong with programming syntax

I never understood all this interest in DSL (domain specific languages). I’ve seen beautiful code done in a DSL-way (whatever it means) in all kind of languges from C to Lisp for ages.

I suppose the emergence of Ruby and the renewed interest in Smalltalk and lisp-based languages like Clojure made DSL an interesting topic for blog posts.

But I must admit that maybe we need to explain what DSL means… or why a good API design is always needed, because:

// describe the optimization problem
LinearObjectiveFunction f = new LinearObjectiveFunction(new double[] {-2,1}, -5);
Collection constraints = new ArrayList();
constraints.add(new LinearConstraint(new double[] {1,2}, Relationship.LEQ, 6));
constraints.add(new LinearConstraint(new double[] {3,2}, Relationship.LEQ, 12));
constraints.add(new LinearConstraint(new double[] {0,1}, Relationship.GEQ, 0));

// create and run the solver
RealPointValuePair solution = new SimplexSolver().optimize(f, constraints, GoalType.MINIMIZE, false);

// get the solution
double x = solution.getPoint()[0];
double y = solution.getPoint()[1];
double min = solution.getValue();

…is not a good API Ben.

What I remember about .asp development (answering philg)

Philip, I don’t know about what you remember about .asp programming, but I will tell you what I recall some years back:

  • IIS memory leaks when coding ASP pages because it was a threaded server.
  • Huge MS SQL server code in the database because developers came from C/S backgrounds.
  • Low level dll development interfacing with .asp pages through COM because .asp was not fast enough.
  • Registering manually the COM/VB code each time we had to deploy a new release.
  • Sacking MS consutants trying to sell you DNA.

I have no idea about Ruby on Rails, but you can botch a MS stack pretty easily.

Also, why do you want to make the Ruby on Rails comunity angry? I have no doubt they’re rabid fanboys, but I know who you are, so don’t be child and stop nagging the children.

« Older posts Newer posts »

© 2017 rogersm.net

Theme by Anders NorenUp ↑