Week 10 of Polycademy (T1, 2013)

The students have almost finished their 11 week journey in building their web application and potential startup. It has been an amazing experience seeing people with no prior programming experience get used to using third party libraries, gluing them together to solve a domain problem, thinking about the RESTful architecture of their web application, and debating the merits and performance of different algorithms or methods in solving the same problem.

The course has evolved since Polycademy first started up, my philosophy in teaching has always went with hands on deployment, and instant practicality of the theories and practices to their own web application. However at first the focus was on basic CRUD (create read update and delete) applications, I've discovered every student's web application requires a customised nurturing, as they face different problems and have different design/development requirements. The perspective of the developer was also important, as that affected what they thought was important to the completion of their web application. This course therefore focused on the commonality between software development theory/practice, but also provided exploration in specialised APIs or libraries (application programming interfaces) that solved a particular domain problem. The architectures of each student's web application hence followed a RESTful style server sink that provided CRUD interfaces and data processing, but on the client side, we used AngularJS and jQuery in order to create single page application user experience. A single page application (SPA) is a client side javascript heavy application, that has two main properties. The first is that it interfaces with a server API to provide data dynamically through AJAX or WebSockets, and secondly all templating, page state transitions or animations take place on the client side. What this means for the end consumer is instant page transition or loading, real time updates, collaboration and synchronisation between the multiple clients through a Pub/Sub pattern. Overall it's a better user experience, it grants more power and flexibility to the developer to craft experiences closer to a desktop application while retaining all the advantages of distribution in a web application. But I am digressing on the technical details. Just check out this demo of AngularJS with animation combined with AJAX loaded data. In user experience, people use motion as way to detect life. When you look at a dog, if the dog isn't moving, it's either dead, or a statue. Extrapolating to web applications, animations make an application come to life (real life things don't just appear and disappear), and that's why we marry the front end with the back end. (BTW I'm currently working on Polycademy V2 which will incorporate a number of new features and user experience aspects of SPAs.)

In order to achieve these results, students had to master two programming languages, build tools, solution stacks, libraries, external APIs, markup languages such as HTML/CSS, preprocessors such as LESS, frameworks such as Codeigniter and AngularJS and of course computer science and software engineering theory. One of the students mentioned that he wanted to get to the stage, where he could look at any new library or programming language or third party API and know where to start to apply it. With regards to this, two problems always exist when a developer finds something new, firstly that there is often assumed knowledge even in the documentation, and secondly where to find the assumed knowledge. To overcome these two problems, the students had to learn a couple lessons not so much in technical programming, but an outlook on life. Firstly to not be afraid to dive into the rabbit hole of the documentation or wikified knowledge base. It is a learning experience in itself and a rewarding one, which leads us to life long learning. Often the answers are hidden under several layers of links, however along the way you'll discover nuggets of knowledge. There is of course a large amount of noise on the internet, so I've had to help them locate the signal, but it takes time to be able to quickly filter out the noise from the signal. Secondly was not to be afraid of errors. That is to understand that the computer uses errors to tell you what is wrong, and it is also how they lead you the right solution (a philosophy subscribed by TDD practitioners!). A silent error is the worse error.

It's been a hard-won journey for the students. Some were grappling high level abstraction, functional programming, object orientation, event driven programming, state management, communication architecture, design patterns and spherical trigonometry all while studying full time at university or having full time jobs. There is a quality to the satisfaction, when you start to see connections form between different software stacks and have it all work in front of you. Yet their journey has not finished. Their applications will require polish after the course, and of course there is always more to learn, more technologies to discover, and more lives to change.

We had a meetup last week with all the mentors and advisors, current students and potential future students. It was good to catchup and discuss the future of Polycademy. One thing that came up was an end of course demo day event for the students.

Mentor Meetup with Polycademy

We decided to organise two events, a practice pitching session for the Polycademy students on Saturday 13th April, which is open for anyone to participate. Anyone who's interested in attending Polycademy should also come and check out the work.

Secondly is the big demo day event, and this is basically for all entrepreneurs who are working on their technology startups to pitch and showcase to an audience of other entrepreneurs and people who are interested in tech startups (I'll also be inviting potential employers). This is of course open to all people, it will be an unconference where the audience can act as lightning speakers or have full presentations on the web application or other projects they have been working on. This big event is scheduled for Friday 19th April last day of the course for cohort 1. And food will be provided.

Oh and lastly, Polycademy is setting up a meetup group dedicated to web, mobile and desktop application development. So join up to the meetups to discuss interesting developments in technology!

Don't forget about the blogs of the students! They'll be up on an alumni page.

Posted by CMCDragonkai on 2013-04-10 04:59:28 Tags: teaching events coding Want to Comment?

Week 1 of Polycademy (T1, 2013)

We've finished our first week of Polycademy. During this time the students completed envisioning their grand plan and architecture of not only their web/mobile application, but also their business model. It took some time to iterate through the various ideas, because there were so many opportunities, but limited time to do all of them.

In class we went through the details of web design theory involving aesthetic foundations, user experience design (including psychology and gamification), user interface design (including typography and AJAX) and the ways web designers wireframe, mockup and prototype their applications.

At home (and during after hours in the office) they had to get stuck into the online materials (it's a wiki, kinda of like an online textbook) written by Polycademy, they had to finish approximately 23,000 words of reading, 125 minutes of video tutorials, and that's not counting exploratory research involving external resources and their own domain technology stack.

Furthermore, they had to install their solution stack (development environment) onto their laptops but also on the cloud. In doing so, we got acquainted with the command line and used it to manipulate the filesystem install software, composer, link up databases.

Throughout these 5 days, half of the class time was taken up as lectures and the other half was taken up as practical work. This was mainly due to the heavy theory involved in web design, and understanding how to apply it to their own user interfaces in a practical sense. They had to balance reward to effort. One example would be the incorporation of accessibility. Would disabled people use their web applications?

We set the milestones for the next 3 weeks. Week 1 - Web Design Theory, Solution Stack & Finished User Interface Iterations and Wireframes (either on paper or using an online tool). Week 2 - Photoshop, creating a concrete Mockup and getting started on HTML/CSS. Week 3 - Finish the HTML/CSS prototype. Each day we're doing the agile scrum, and each week, we have a short review.

Tonight the students will be meeting the mentors and advisors of Polycademy, the ones in Canberra of course.

Oh and here are the student blogs if you wish to keep up with their progress:

Photo from the mentor meetup!

Posted by CMCDragonkai on 2013-02-09 15:42:15 Tags: teaching events coding Want to Comment?

Starting Class

Class started on Monday 4th of February with 3 students. Then on Tuesday, we had our 4th join us. Welcome to Polycademy, Ash, Matthew, Tim and Phuong. Since Polycademy focuses on a project based course our first day was working on the ideas that all the students came in with, and turning them into concrete feature sets. We then turned these feature sets into a technology stack which included the generic solution stack to run any web application, and the technology stack that is used to solve their particular domain problem such as external APIs including Mailchimp, Google Maps.. etc.

Class Photo

We also began our agile workflow, which meant that in every session, we have a scrum asking ourselves three questions:

  1. What have you done since yesterday?
  2. What are you planning to do today?
  3. Any impediments/stumbling blocks?

All of the students have different ideas for their web apps, and their all very exciting. I can't tell you them in detail, but there's an assortment of apps dedicated to productivity, parking, children and games. One thing is for sure, I certainly surprised people with the amount of work they'll have to do at home and at class to get their application done. But I believe they will be ready.

At home, students are asked to read through Polycademy's devhub wiki. It provides them with more detailed information and areas of exploration. It's currently private to Polycademy. Think of it as a never ending online textbook. For the next 3 weeks, we'll go through Vision & Plan, Solution Stack (involving IDE and builds/testing), and Web Design (involving User Experience Design and User Interface Design and Photoshop).

One thing I asked the students to do, was to write a blog on their experiences. I'll probably need to incentivise this activity! When I have the urls, I'll be plugging them obviously!

Finally we're all going out for a meeting at a bar this Saturday afternoon so all the students can meet their mentors.

Posted by CMCDragonkai on 2013-02-06 14:56:19 Tags: teaching business notices events coding Want to Comment?

Coworking in Canberra

Unfortunately Entry 29 won't be ready for our February launch. However I found a good place at 7 London Circuit in the same building as NICTA. We'll most likely use at night time, so during the day it will be wasted. So I'm looking for companies/entrepreneurs to share the cost of the space.

It's a grade A officespace in Canberra, a room that can hold 15 people. It has dedicated bandwidth, receptionists, air conditioning, furnishings, furniture (15 desks and chairs), projector and whiteboard. It's also possible to have full computer access to the multiple computers in the room. This is not for individual entrepreneurs, but for groups of people or a small company with a few employees.

The place will be only about $5000 every 3 months. So $1667 per month ($55 per day about a $100 cheaper than the other Canberra Coworking Space). This includes the whole package! If you’re interested, contact me at @polycademy.com

Posted by CMCDragonkai on 2013-01-16 19:51:01 Tags: coworking business Want to Comment?

Assets & Logistics & Mentors and the impending launch!

Happy New Year! I’ve been busy organising the assets and logistics for the February launch. Unfortunately Entry 29 won’t be ready in time for the February launch. Fortunately I found a lot of good deals and another place that has potential. Furthermore, over the last 2 months, I received people who are interested in helping as mentors and many more developers interested in becoming lead instructors, co-instructors or teaching assistants. Some are even interstate!

Assets:

The big one would be computers! I’ve considered multiple options because are there are many different ways I could structure the class with the computers.

  1. No Computers, just BYO laptops. – This has the advantage of no capital costs required, but has the disadvantage of different working environments. Everybody’s computer is different and is probably running on different operating systems. This uncontrolled environment might become an issue with software incompatibilities and bugs in various systems. This can be offset by using cloud development environments such as Cloud 9. However things that has to be done on the desktop such as graphics editing Photoshop, cannot be sufficiently “clouded”.
  2. Single server and multiple thin clients. – I have a 60 kilogram industrial server under the bed. I got it for about $350, when it was being sold. It was probably worth $5000. It has about 60 gigabytes of RAM. Then 15 thin clients can be connected to the server, the operating system can be virtualised so everybody just runs their workspace on one server. This has the advantage of low capital costs, but there’s too much complexity involved in setting this up. There’s also a single point of failure, if that server goes, everything goes with it. In the end I still need monitors, keyboards, mouses… etc. Thin clients aren’t very cheap either.
  3. Google Chrome Box – The Chrome Box is an operating system that is geared towards the cloud. Essentially everything you are running should be running over the internet. This has similar problems to the No Computers, just BYO laptops, since it still requires the cloud and I cannot run Photoshop.
  4. Cheap Linux boxes – After talking to a supplier, it is possible to get a computer box at $350 with no operating system. While this is cheap, it has 2 disadvantages. Firstly with that many tower boxes, it’s going to be noisy and not very portable in such a small classroom. Secondly I still cannot run Photoshop natively (without using Wine).
  5. Macs – Macs are too expensive. Nuff said.
  6. All in One Computers – Computers in Australia are abnormally more expensive than ones in the US. So I was considering shipping them from the US. Even though the shipping cost combined with the retail prices would still save me money, it wasn’t going to arrive in time. At least there was no guarantee, and this is business critical if I need computers here by February. At any case I found 2 options that can be bought in Australia:

The Lenovo

The Lenovo all in one is slightly cheaper than the Dell all in one, it has roughly the same kind of specifications though. However it requires external optional arm in order to have it stand up on the table. I personally don’t like the monitors with no feet. It offers keyboard and mouse bundled together.

The Dell

The Dell has a very large screen. It’s quite good looking too. Both of these All in Ones can run Windows and Linux. They both will be quiet and portable. This also offers a wireless keyboard and mouse bundled together.

So I’ve decided on a logic chart like this:

  • If I get 15 people or more signup to the course and pay their deposit, I’ll get Dell all in Ones.
  • If I get 10 people or more signup to the course and pay their deposit, I’ll get Lenovo all in ones.
  • If I get 5 people or more signup to the course and pay their deposit, I’ll have to remain on BYO laptops. I’ll use cloud IDEs to develop, and for graphics editing we can use GIMP. Or buy Photoshop via the Creative Cloud.

A classroom also requires a whiteboard and projector. So why can’t we combine the whiteboard and projector? In fact we can! So I’m planning to get the Epson EB425W projector at a short throw distance and combining it with a whiteboard that doubles as a projector screen. I’ve found a dealer that’s willing to offer this all at $2000. Oh and the short throw mount means less shadows!

Furniture is another interesting issue. Depending on the location, I may have furniture supplied to me by the people who own the place, or I may have to bring in my own furniture. A Canberran company called Office Furniture Direct can offer me 8 Ronda Tables (fitting 2 people each) and 15 Mesh chairs at around $2800.

Logistics

Because Entry 29 won’t be ready, I’ve had look for other places willing to offer a 3 month or 6 month lease. Currently I’ve found a place at 7 London Circuit. That’s right, it’s the same building where NICTA lives. This is a grade A office. It should be expensive. But it actually fits my budget! That is if I can get 10 or more people signup and pay the deposit. If I get lower than 10, I’ll have to move somewhere else, or only execute the 11 week program, as a shorter time means shorter lease. This place however is very very cool.

Mentors & Developers

I’ve secured a partnership with ReadSpeaker. It’s a company that focuses on turning web content into audio. They have major clients in the Government. They’ll open up their API so the students of Polycademy can learn web service architecture! The managing director of the Australia New Zealand division is even interested in speaking at Polycademy regarding entrepreneurship.

Oh and I’ve got about 5 other developers around the country who’s interested in becoming mentors for the students. The deal is a minimum of 1 hr a week. Each student or team part of Polycademy will have a mentor where you can discuss the weekly programming problems or entrepreneurial problems. They'll all be up on a Partnership page soon.

I’ve interviewed over 30 potential teaching assistants. About 10 of them are in the pipeline for the second interview. The second interview is actually a challenge, where they must create a video that teaches me something they didn’t know before. The results of this shall come around 20th January.

Since posting the co/lead instructor jobs around the intertubes, I’ve received interest all around the country. Seems like such a job would be quite an interesting experience. There must be at least 15 students to justify the cost of bringing in another instructor. I myself will also be the lead instructor along with some teaching assistants.

Addendum:

To those coming to the event on Jan 15th, make sure to register an account on Cloud 9 and use firebug if you’re using Firefox! If you like to be adventurous, also register an account on Github and Appfog.

The company account will be opened soon with Commonwealth Bank, so as per the terms and conditions I’ll be asking for deposits after the 15th January. The deadline will be 18th January.

Oh and today and tomorrow is the last chance to enter the scholarship competition. Remember to be eligible you need to apply on the course page as well. This is so that I know your preferences.

For the rest of the month, I’ll be focusing on developing the course material and putting it up onto a DevHub page on Polycademy’s website and sourcing more people. If I unfortunately don’t get enough people to sign up and pay the deposit, I’ll refund and have to move to another city :(.

Oh I recently also scored an interview with Digital Sydney regarding Polycademy.

Posted by CMCDragonkai on 2013-01-11 20:13:50 Tags: notices events business Want to Comment?