Teaching Clean Code
نویسندگان
چکیده
Learning programming is hard – teaching it well is even more challenging. At university, the focus is often on functional correctness and neglects the topic of clean and maintainable code, despite the dire need for developers with this skill set within the software industry. We present a feedbackdriven teaching concept for college students in their second to third year that we have applied and refined successfully over a period of more than six years and for which received the faculty’s teaching award. Evaluating the learning process within a semester of student submissions (n=18) with static code analysis tools shows satisfying progress. Identifying the correction of the in-semester programming assignments as the bottleneck for scaling the number of students in the course, we propose using a knowledge base of code examples to decrease the time to feedback and increase feedback quality. From our experience in assessing student code, we have compiled such a knowledge base with the typical issues of Java learners’ code in the format of before/after comparisons. By simply referencing the problem to the student, the quality of feedback can be improved, since such comparisons let the student understand the problem and the rationale behind the solution. Further speed-up is achieved by using a curated list of static code analysis checks to help the corrector in identifying violations in the code swiftly. We see this work as a foundational step towards online courses with hundreds of students learning how to write clean code.
منابع مشابه
E-Clean Matrices and Unit-Regular Matrices
Let $a, b, k,in K$ and $u, v in U(K)$. We show for any idempotent $ein K$, $(a 0|b 0)$ is e-clean iff $(a 0|u(vb + ka) 0)$ is e-clean and if $(a 0|b 0)$ is 0-clean, $(ua 0|u(vb + ka) 0)$ is too.
متن کاملA note on uniquely (nil) clean ring
A ring R is uniquely (nil) clean in case for any $a in R$ there exists a uniquely idempotent $ein R$ such that $a-e$ is invertible (nilpotent). Let $C =(A V W B)$ be the Morita Context ring. We determine conditions under which the rings $A,B$ are uniquely (nil) clean. Moreover we show that the center of a uniquely (nil) clean ring is uniquely (nil) clean.
متن کاملSpeech enhancement based on hidden Markov model using sparse code shrinkage
This paper presents a new hidden Markov model-based (HMM-based) speech enhancement framework based on the independent component analysis (ICA). We propose analytical procedures for training clean speech and noise models by the Baum re-estimation algorithm and present a Maximum a posterior (MAP) estimator based on Laplace-Gaussian (for clean speech and noise respectively) combination in the HMM ...
متن کاملExploring Software Engineering Catalogues with Poster Sessions
In modern software engineering there are many aspects of software craftsmanship that consist of long catalogues of patterns or of dos and don'ts. For example, there are a number of standard books on important topics such as refactorings, aspects of Clean Code and design patterns that are useful to the practitioner, but would be extremely boring if they were to be taught by an instructor display...
متن کاملA Comparative Study on Iranian EFL Teachers’ Awareness of Code of Ethics in Research: the Role of Gender and Years of Teaching Experience
This study is aimed at examining the role of gender, and years of teaching experience in Iranian EFL teachers’ awareness of the code of ethics in research. 272 Iranian EFL teachers were chosen based on convenience sampling and were assessed through the Iranian EFL teachers’ awareness of the code of ethics in research scale inventory. After gathering the questionnaires, data was analysed by SPSS...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2018