Skip to content
View anttijuu's full-sized avatar
🏠
Working from home
🏠
Working from home

Sponsoring

@hachyderm

Block or report anttijuu

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
anttijuu/README.md

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.

Popular repositories Loading

  1. PluginDllDemo PluginDllDemo Public

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

    C++ 6 1

  2. TVTSanasto-Java TVTSanasto-Java Public

    Java version of the TVT Sanasto app

    Java 2 1

  3. LinnanmaaWeather LinnanmaaWeather Public

    Java 1

  4. Sarge Sarge Public

    Forked from MayaPosch/Sarge

    Simple command line argument parser.

    Ada

  5. lolhello lolhello Public

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

    LOLCODE

  6. swift-httpovertcp swift-httpovertcp Public

    Sample app making HTTP GET requests over TCP to HTTP servers

    Swift