Giter Club home page Giter Club logo

About me

Hi there! My name is Antti Juustila. Currently, I work as a Lecturer teaching various aspects of programming and software design:

  • Programming 101 with C language, acting as an assistant teacher
  • Computing Devices and Data Networks 101, acting as a responsible teacher
  • Data Structures and Algorithms with Java, an advanced programming course acting as a responsible teacher
  • GUI design and programming, an advanced programming course acting as an assisting teacher
  • Bachelor level software project supervisor, supervising three student projects in 2023.

I work at the University of Oulu, Finland in the Study Program of Information Processing Science. My research unit INTERACT focuses on understanding and supporting participatory design, user-centered design, value co-creation, user driven innovation and human interaction in IT (information technology based services in divergent everyday life contexts.

I have a long history in teaching but also in software development. I began my career during studying and after graduating in implementing a family of applications for sports halls in C++ on Windows. That product was later sold to another company. After that, my career turned towards two directions:

  • In a company i cofounded, I did mainly training courses for progrqamming professionals, including 2-4 day courses on basic, intermediary and advanced C++ programming (e.g. Design patterns with C++), licensed Symbian OS development courses (while it lasted...) and courses on Java programming as well as software design and UML. Some years ago I left this part of the career behind me.
  • academic career at the University of Oulu, in various teaching positions and also in nationally and EU funded research projects. Here I was mainly responsible for and participating in developing different technological tools and infrastructures for the projects.

Software development has remained an important part of my academing career. I love creating things, whether they are analog and visual or digital and intangible.

Below you can find some of the software things I have lately worked with. Mostly these are either Swift/SwiftUI or C++ projects, but many are also Java projects since Java is the selected language in many courses in our study program.

  • SortSpectacle is a Swift/SwiftUI demo app I implemented for the course on Data Structures and Algorithms. Course itself is in Java, but I wanted to provide examples of different sorting algorihtms visualized for the students. Another goal was to brush up my basic skills in the area when I got this course i am now responsible for.
  • TIRA-2022 at GitLab is the starting point students start their journey through basics of data structures and algorithms in Java during the study year 2022/2023. Students clone this repository and then start implementing the required exercises in generic programming techiques. Exercises include implementing algorithms like counting the mode value in an array, binary search, partitioning an array and sorting arrays with fast sorting algorithms. Students also implement basic data structures like stack, queue and linkedlist, and more advanced stuctures like a hash table and a binary search tree with associated algorithms. In optional tasks, they can apply their own data structures to more advanced task and/or use the standard Java algorithms/data structures to do the same and compare how their own implementations do agains the Java ones.
  • SimplyTheBest is a Swift command line tool for analysing test output files of several projects to find the fastest ones. Implemented this in Jan 2023 to analyse time performance of several student projects, sorting the output file of the tool in spreadsheet app and creating graphs to analyse the differences in execution speed.
  • SwiftChatClient is a demo implemented in Swift/SwiftUI. The chat client connects to a chat server students were implementing in a course on server programming I taught some years ago. I also implemented a sample server solution using Java, HTTPS, JSON and SQLite (not a public repo, at least yet).
  • Graphs is a demo application implementing the graph data structure in C++ and some of the associated algorithms: breadth-first search depth-first search, Dijkstra's shortest path search algoritm and the Prim's algorithm for finding the minimum spanning three for an undirected graph. Again this is for the Data Structures and Algorithms course.
  • TVT Sanasto is an app I developed when a student told in one of the 101 courses that there is so much new and strange terms to learn and understand. So I developed an app for that, providing a set of basic terminology for different areas of ICT (TVT is a shorthand of ICT in Finnish). The app downloads the term definitions from GitLab repository in various JSON files. I also have an app under development for Apple platforms using Swift and SwiftUI that works on iPhones, iPads and macOS having the same functionality. Will soon open source this too and distribute it through the App Stores.
  • Tool for producing Moodle exam questions related to different numbering systems (binary, decimal, hexadecimal and octal) and simple arithmetic calculations using these. Having hundreds of students and many exams, I can easily create tens or hundreds of Moodle exam questions so that students would get unique questions asked, just for them. Tool produces an XML file one can upload to Moodle.
  • Books and Words is another demo application. This project contains several implementations of how to count unique words and their frequencies in text files. All implementations are done using Swift and execute from the command line. Each of the implementation is implemented in a different programming style. The styles here are (mostly) from the book Exercises in Programming Style by Cristina Videira.
  • Java chat client is not just a demonstration but also an app students could use in testing their own implementation of a chat server they were supposed to implement in a course on server programming. In addition to a simple text based UI, it includes JUnit tests the students can run to test their server implementation, depending on the stage they are in implementing the server.
  • PipesAndFilters is an old C++/Qt/distributed app project that I used as a demonstration in a course on software architectures (swa). It features several swa topics on logical and physical architectures: layers, libraries as components (both external and app specific, imported as source or as static/dynamic libraries), components communicating over network (using UDP and JSON), modifiability and extensibility in various ways, etc. I haven't taught that course in years, though. The project includes the core components of the distributed architecture, as well as two distributed app implementations on top of that architecture, StudentPassing and DirWatcher.

You can see other public projects by browsing my repositories.

If you have anything to ask or would like to connect, please email me at address found in my personal blog.

Antti Juustila's Projects

books-cpp icon books-cpp

The classic count the unique words from a book file exercise with some twists.

booksandwords icon booksandwords

Counting unique words from text files with various programming styles using Swift

filter-by-id icon filter-by-id

Small utility tool to filter lines from text data file by using id's from another file.

graphs icon graphs

Graphs example for Data structures and algorithms course

l-t icon l-t

Small demonstrations for basic course on computers

lolhello icon lolhello

LOL MI 1ST LOLCODE APP OMG RLY?!?!!

o3-chat icon o3-chat

Ohjelmointi 3 chat server sample implementation. Client is in another repo. WIP/unfinished.

o4-client icon o4-client

A sample console app using a sample server, for a GUI programming course

plugindlldemo icon plugindlldemo

A client/server (UDP) demonstration of a plugin dll library using Boost.DLL

sarge icon sarge

Simple command line argument parser.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.