One Line at a Time: Programming Good Code and Forming Good People in First-Year Computing

3/19/26 Student Experience 5 min read

Genevieve Lipp reframes teamwork as a virtue as part of her efforts to integrate ethics into her First-Year Computing class.

Two people talk at an academic conference
One Line at a Time: Programming Good Code and Forming Good People in First-Year Computing

Professor Genevieve Lipp began her career at Duke with a deep interest in the pedagogy of programming. Building on a variety of formative experiences, she has worked alongside Professor Kip Coonley and Professor Javier Pastorino, as well as Rich Eva of the Character Forward Initiative to redesign EGR 105, First-Year Computing, to intentionally cultivate character alongside technical expertise.

EGR 105 is an introductory computer science course that gives first-year engineers the tools needed to approach computational work in their future endeavors. The work being done with the course is a cornerstone of the broader Character Forward Initiative, which is a partnership between Duke Engineering and The Purpose Project at Duke, a collaboration between the Kenan Institute for Ethics, Duke Divinity School, and the Office of the Provost.

Two people talk at an academic conference
Genevieve Lipp (left) listens to colleague Eric Brubaker as he responds to her presentation about promoting the virtue of resilience in her First-Year Computing course.

Lipp’s unique perspective, formed through years of developing computing courses for undergraduates, is rooted in a simple but profound truth: Engineering is a moral endeavor because engineering is, ultimately, a human endeavor.

“When you do engineering work, you do it for real people, and you need to empathize with other humans, understand and value them, to do engineering work well,” Lipp explains. This conviction drove her to integrate the Aristotelian idea that you can become a better person through practice directly into the first-year curriculum.

genevieve lipp

When you do engineering work, you do it for real people, and you need to empathize with other humans, understand and value them, to do engineering work well.

Genevieve Lipp Director, First-Year Computing Program, Assistant Professor of the Practice in the Department of ECE

Reframing Teamwork as a Virtue

Lipp realized that in collaborative projects, students often viewed teamwork merely as a skill to be managed. In conversation with the director of Character Forward, Dr. Eva, she started framing collaboration as a virtue that promotes social good, noting that, “There are lots of prosocial activities that cannot be achieved without teamwork.”

By identifying collaboration as a dimension of character, the 105 instructors helped students connect their project-based struggles to a larger ethical framework.

First-Year Experience

Your first year as a Duke engineering student is more than a course schedule. It’s an immersive experience that sets you up for long-term success.

Practicing Resilience through Specifications Grading

A persistent challenge for an elite institution is the high-achieving student who is deeply uncomfortable with short-term failure. Lipp directly addressed this with specifications grading, where assignments are marked as “meets expectations” or “needs revision.” This system actively honors the learning process by allowing students to apply feedback toward a revision.

“I want students to know that it is okay to not be perfect the first time,” says Lipp. “Sometimes students will apologize for not having mastered a topic the first time. I tell them, you don’t have to apologize for not instantly mastering what you want to learn.” This practice cultivates resilience, a critical virtue, by positioning struggle as the expected and necessary path to mastery.

woman works with table of students on written assignment
Genevieve Lipp works with students in First-Year Computing to learn the fundamentals of how to build an algorithm from scratch.

Creating Space for Reflection

Lipp integrated “a retrospective” after each project sprint, a focused time where students work on their teams to brainstorm and build out their projects for the class. In this challenging teamwork setting, this exercise quickly became a ritual for reflection on character. In select sections of the course, students first brainstormed attributes of a “good teammate,” then condensed them to a list of 13.

During the retrospectives, students not only reflect on the project’s process but also on which teamwork attributes they and their teammates exemplified. This simple act of formal reflection, Lipp observes, creates welcome space for students to step back and look at their habits. She uses it to encourage dialogue: “Discussing how self-perception matches other people’s perceptions of you, and whether you should work to close that gap or not.”

A group of three students sit around a piece of paper and board with Lego pieces.
A group of students in First-Year Computing attempts to build a Lego design based on an algorithm provided by another team.

Each lab assignment is also followed by reflection questions on resilience introduced by Coonley. These questions help further encourage reflection and growth after students are challenged by longer-term activities.

By making time for this deliberate practice and feedback, the EGR 105 professors are ensuring that students develop their character as rigorously as their coding skills. They are helping to shape the next generation of engineers who are not only capable problem-solvers but also leaders of character.

Measuring Impact

Surveys administered before and after the course revealed that 81% of students responded positively to the character-related changes made to the course. Growth was primarily observed in students’ effectiveness as teammates and collaborators, with one anonymous student stating:

“Working with others on the main project not only helped me to better know my peers and form connections within Pratt, but also helped me to see the value of task delegation and collaboration in a real engineering context.”

Students also described growing in resilience, with one student expressing enthusiasm to “apply it to other areas of [his or her] life.”

Engineering is a moral endeavor – not only does it have ethical consequences for society, but the engineering process itself can shape the character of the engineer. And that character will show up in all areas of life.

More Character Forward