Key Competences in Computer Science

Course participants will gain an overview of the state-of-the-art technologies and tools in computer science. They will become familiar with scripting (Python, Shell), Web technologies (HTML, JavaScript) and essential tools for computer scientists (IDEs, code frameworks, LaTeX, reference managers, etc.). Through practical work on projects, students will get deeper into selected topics and technologies and acquire practical skills necessary to solve various real-world problems in computer science.

Through lectures, exercises and individual work, students will train their ability to:

  • analyze a given problem from a computing point of view;
  • research programmatical methods to solve the problem;
  • implement a solution for the problem using suitable tools;
  • structure, write, and format a documentation for the software developed;
  • present their work using appropriate presentation techniques and presentation aids;
  • answer questions and discuss their work with peers.

By successfully completing the course, participants will acquire the knowledge and the skills required to successfully complete various forms of computer-science-related projects.

Contents of the lectures and exercises:

Command-line & Scripting

  • Shell, SSH, SFTP
  • grep, sed, regular expressions,
  • Shell scripting

Python Programming

  • Python basics
  • Unit Testing
  • Logging
  • Parallelization
  • Database interaction

Web Technologies

  • Python Django
  • HTML
  • JavaScript

Infrastructure & Support Tools

  • Version control using git
  • Automated unit testing using Travis
  • LaTeX + OverLeaf
  • Reference management tools

TEACHING METHODS
The course employs the following teaching methods:

  • Interactive lectures to acquire theoretical knowledge and obtain an overview of the available technologies and tools
  • Hands-on exercises, in which students solve applied problems to learn essential skills
  • Individual projects, in which students solve complex real-world problems to train the skills acquired

TOPICS FOR PRACTICAL PROJECTS
Topics for practical projects will include, but will not be limited to:

  • Information retrieval from WikiData
  • Natural language processing applications
  • Web-based front-end development
  • Implementation of similarity measures for sets, sequences, and vectors

Exam

To successfully complete the course, students will be required to:

  • Complete an applied individual project (40% of final grade)
  • Submit appropriate documentation of the project  (20% of final grade)
  • Present the project at the end of the course and show the ability to answer questions from the audience  (10% of final grade)
  • Pass a written test  (30% of final grade)

Completion of all the deliverables is mandatory. Each of them will be evaluated separately, the overall grade will be calculated based on the weights of particular deliverables.

Time schedule

Day Time Periodicity Duration Room Type
Tue 10:15 – 11:45 weekly 06.04.2022 – 13.07.2022 SUB lecture
tba tba weekly 06.04.2022 – 13.07.2022 SUB exercise

The exercise sessions will focus on individual programming projects (teamwork is possible) that will address complex information retrieval tasks.
Using the programming language Python and presenting the intermediate and final results of the projects is mandatory.

view on uni-vz

The course provides a good foundation for a bachelor’s or master’s thesis in our group. 
Visit https://gipplab.org/students-corner/graduation-projects for our current theses proposals.