  Understanding students' programming misconceptions is critical. Doing so
depends on identifying the reasons why students make errors when learning a new
programming language. Knowing the misconceptions can help students to improve
their reflection about their mistakes and also help instructors to design
better teaching strategies. In this technical report, we propose catalogs of
antipatterns for two programming languages: C and Python. To accomplish this,
we analyzed the codes of 166 CS1 engineering students when they were coding
solutions to programming exercises. In our results, we catalog 41 CS1
antipatterns from 95 cataloged misconceptions in C and Python. These
antipatterns were separated into three catalogs: C, Python, and antipatterns
found in code using both programming languages. For each antipattern, we
present code examples, students' solutions (if they are present), a possible
solution to avoid the antipattern, among other information.
