  Software engineers need to manage both technical and professional skills in
order to be successful. Our university offers a 5.5 year program that mixes
computer science, software and computer engineering, where the first two years
are mostly math and physics courses. As such, our students' first real teamwork
experience is during the introductory SE course, where they modify open source
projects in groups of 6-8. However, students have problems working in such
large teams, and feel that the course material and project are "disconnected".
We decided to redesign this course in 2017, trying to achieve a balance between
theory and practice, and technical and professional skills, with a maximum
course workload of 150 hrs per semester. We share our experience in this paper,
discussing the strategies we used to improve teamwork and help students learn
new technologies in a more autonomous manner. We also discuss what we learned
from the two times we taught the new course.
