Paul Barry's Website - Web and Cloud Development - Year 3

3rd Year Module on the B.Sc. Degree in Software Development

Software Development: Web and Cloud Development - Year 3

Academic Year 2019/20 - Class Log.


Week 1: Wed Sept. 11th: Welcome! Let's get Linux installed (I like elementary.io, but you can use whichever Linux you like), and get your favourite editor installed, too. Tomorrow: Anaconda.

Thurs Sept. 12th: Downloaded and installed Anaconda, then updated the distribution to latest versions. Also updated Linux. See today's class email for the list of commands we used.

Week 2: Tues Sept. 17th: See today's class email for a description of the stuff done/attempted today - lots of people with issues (either Linux, Anaconda, or both). We are getting closer to "being ready", and - all being well - we now have a small webapp ready for testing tomorrow (called first.py).

Wed Sept. 18th: We started to build out our webapp (albeit very slowly with very little functionality), using black, pytest, and GIT as we went along.

Thurs Sept. 19th: We added an extra test to check for the correct message from the server, then deployed our first webapp to PythonAnywhere.

Week 3: Tues Sept. 24th: We talked briefly about code coverage (thanks to pytest-cov) as well as Flask debugging (thanks to the debug=True argument to the app.run() line of code).

Wed Sept. 25th: Introduced the Jupyter Notebook tool, then used it to explore some of the details of Python. See today's transcript for more.

Thurs Sept. 26th: We created a new notebook to work on a new problem in Python which was, well, odd.

Week 4: Tues Oct. 1st: We learned a bit about Jinja2 templates (and why they are useful), as well as how to (easily) process data from a HTML form within a Python webapp.

Wed Oct. 2nd: Tests, tests, and more tests for our webapp.

Thurs Oct. 3rd: All about Python strings and things (our first close look at how Python handles data).

Week 5: Tues Oct. 8th: More about Python data, concentrating on lists and introducing dictionaries. See today's notebooks and PDFs.

Wed Oct. 9th: We finished off dictionaries with a bit of a bang, getting to frequency counting the easy way (with collection's Counter). Sets are next... week.

Week 6: Tues Oct. 15th: We started cheating at crosswords...

Wed Oct. 16th: We ran through the solutions to match_pattern, then went on to build the xword.py module (which will be part of our upcoming webapp).

Week 7: Tues Oct. 22nd: We built out the webapp which exposed the crossword cheating technology to the web. Once the webapp was running locally, we deployed it to PythonAnywhere on the cloud (with a couple of minor tweaks). All that remained was to write some tests...

Wed Oct. 23rd: We reviewed the tests for our latest webapp, then added a simple API which can be accessed with the curl tool or by using the requests library (and we added tests for this, too). Assignment 1 is now active.

Week 8: Tues Oct. 29th to Nov 1st: No classes due to Conferring. Assignment 1 is active.

Week 9: Tues Nov. 5th: Assignment 1 is active.

Wed Nov. 6th: Assignment 1 is active, and the deadline has been extended until Nov 15th.

Week 10: Tues Nov. 12th: Assignment 1 is active, but due on Friday.

Wed Nov. 13th: Assignment 1 is due Friday. Back to normal "programming" next week.

Week 11: Tues Nov. 19th: With the first assignment over, we started to go through the solution with Paul live-coding in class.

Wed Nov. 20th: Continued to work on the assignment solution, with tests dominating the discussion. Still more work to do next week (on the high scores functionality).

Week 12: Tues Nov. 26th: Added the highscores functionality to the guessing game webapp, and continued to explore the use of automated tests. Also used the DBcm module to store the highscores data in an SQL-based database as opposed to a pickle file.

Wed Nov. 27th: Finished working on the guessing game webapp, now with 100% required functionality, as well as 100% code coverage for tests.

Week 13: Tues Dec. 3rd: Went through the "databases in a hurry" PDF, learning a bit about 1-N-F. Learned about "impedance mismatch" and the problems it can cause, then introduced MongoDB and pymongo as a potential solution to this problem (when it surfaces).

Wed Dec. 4th: Continued to learn about MongoDB, working through the first half of The Little MongoDB Book, which was distributed after class via email.

Week 14: Tues Dec. 10th: Class Assessment: Task - deploying a MySQL-enabled webapp to the cloud.

Wed Dec. 11th: No class. See you all after Christmas!

Week 15: Tues Jan. 7th 2020: Assignment #3 - Django - distributed, and is ongoing.

Wed Jan. 8th: Assignment #3 - Django - is ongoing.

Week 16: Tues Jan. 14th 2020: Assignment #3 - Django - is ongoing.

Wed Jan. 15th: Assignment #3 - Django - is ongoing.

Week 17: Tues Jan. 21st 2020: Assignment #3 - Django - is ongoing, with the first few brave souls submitting their work for review.

Wed Jan. 22nd: Assignment #3 - Django - is ongoing - one more review today.

Week 18: Tues Jan. 28th 2020: Assignment #3 - Django - more reviews happening today, but the pace needs to pick up as everything cannot be left to the last minute.

Wed Jan. 29th: Assignment #3 - Django - is ongoing - one more review today.

Week 19: Tues Feb. 4th 2020: No class due to industrial action.

Wed Feb. 5th 2020: Into the final stretch - a few more did the demo today - next Tuesday should be busy as the deadline is approaching.

Week 20: Tues Feb. 11th 2020: Review of past papers. Continued work on final assignment (Django).

Wed Feb. 12th 2020: Django assignment concludes.

Week 21: Rag/Study Week.

Week 22 and 23: Final Exams.


Return to the Courses page.