CS 290

Human Skills for Software Engineering

About This Course

Writing a program is easy, but professional software developers face the challenge of "engineering" software: designing and implementing a software system in a way that it is efficient and reliable, and can easily be understood and modified by other developers. That is why in today's fast paced world of software development, technical prowess alone is not enough to succeed. Effective collaboration, communication, and emotional intelligence are essential to building high-quality software and fostering a positive work environment. This course is designed to equip you with the interpersonal skills necessary to excel in the field. By blending technical skills with human-centric competencies, this course bridges the gap between software engineering and personal development. In this course you will learn to:

  • Master Human Skills: Develop essential skills such as active listening, emotional intelligence, empathy, resilience,conflict resolution, and stress management
  • Collaborate Effectively: Work in agile teams to design and implement a RESTful API backend application using Node.js and Express.js
  • Prioritize Code Quality: Focus on software design, code quality, and documentation to create robust and maintainable applications
  • Leverage AI Tools: Explore the use of generative AI tools to enhance development efficiency and productivity
  • Engage in Ethical Debate: Participate in a debate league centered on the ethical and social implications of computing, honing communication and critical thinking skills

Course Outcomes

Upon completing this course, you will be able to:

  • Communicate effectively with team members and stakeholders
  • Collaborate effectively in diverse teams
  • Manage stress and maintain emotional well-being in a demanding work environment
  • Apply design principles to software development
  • Critically analyze the ethical and social implications of technology

A detailed course description is available on Ed Discussion

Course Topics

Lectures will be held MoWe 4:40 -5:55 pm in LSRC A247 and will cover the following topics:

  • Human Skills
    • Team development & collaboration
    • Communication and active listening
    • Empathy & Compassion
    • Resilience, trust, anxiety & avoidance
    • Ethics
  • Software Process Models
    • Agile models: XP, Scrum
    • Continuous integration
    • Software configuration management
  • Designing Software
    • Software design principles
    • Software architecture
    • Domain modeling
    • Software design patterns
    • Distributed systems
  • Implementing Software
    • Readability and understandability
    • Efficiency
    • documentation
  • Web App/Backend Development
    • WWW Basics
    • JavaScript
    • NodeJ & Express
    • MongoDB
  • Testing Software
    • Mock objects
    • Black-box testing
    • White-box testing

    There is no textbook for the course, but most lectures will be supported by suggested readings that will be made available to registered students.

    Course grades will be determined by a combination of reading assignments/quizzes, exams, debate participation, and a semester-long group project.

    Diversity, Inclusion, and Wellness

    Beyond the technical content described above, a goal of this course is to prepare students for a career as a software engineer by giving them a sense of belonging within the field.

    This can only happen if all members of the course community – the instructor, TAs, and students – work together to create a supportive, inclusive environment that welcomes all students, regardless of their race, ethnicity, gender identity, sexuality, or socioeconomic status. Diversity, inclusion, and belonging are all core values of this course. All participants in this course deserve to and should expect to be treated with respect by other members of the community.

    A code of conduct that covers behavior in lecture, office hours, and online will be distributed to registered students via Canvas. Additionally, the course syllabus in Canvas will list available resources – including designated members of the instruction staff – for reporting violations of the code of conduct and for getting support if you witness or are affected by a violation.

    A sense of belonging can also affect students’ mental health and wellness, which is extremely important to the course instruction staff, if not the University as a whole. All members of the instruction staff will be happy to chat or just to listen if you need someone to talk to, even if it’s not specifically about this course.

    If you or someone you know is in distress and urgently needs to speak with someone, please do not hesitate to contact CAPS: 919-660-1000; 3rd floor of the Student Wellness Center on West Campus. If you are uncomfortable reaching out to CAPS, any member of the instruction staff will be happy to contact them on your behalf.

    Fall 2024 Instruction Staff

    Eric Fouh photo

    Prof. Eric Fouh
    Instructor
    eric.fouh@duke.edu

    Sam Borremans' photo

    Sam Borremans
    Project & OH TA
    he/him/his
    sam.borremans@duke.edu

    Hala's photo

    Hala Mohammed
    Head TA for Debates & Human Skills
    Project TA
    she/her/hers
    hala.mohammed@duke.edu

    Satvik's photo

    Satvik Matta
    Project & OH TA
    he/him/his
    satvik.matta@duke.edu

    Damilola's photo

    Damilola 'Dami' Awofisayo
    Head TA for Students Success
    Project & OH TA
    she/her/hers
    dami.awofisayo@duke.edu

    Changmin's photo

    Changmin Shin
    Head TA for Technical Skills
    Project & OH TA
    he/him/his
    changmin.shin@duke

    Fall 2024 Office Hours

    • Eric F: Tuesday 1:30-3:00PM D105 LSRC, Thursday 2:00-3:00PM Online, and by appointment.
    • Sam: Thursday 3:00-5:00PM Social Sciences 107
    • Satvik: Monday 7:00-9:00PM on Zoom
    • Hala:
    • Damilola:
    • Changmin: Tuesdays 7:00-8:00PM Perkins Links Group Study 1, Thursday 11:00-12:00pm on Zoom

    Fall 2024 Schedule

    Fall 2024 Project Schedule

    Grading

    • Debate: 10%
    • Homework: 10%
    • quizzes: 15%
    • Exams: 30%
    • Project: 35%

    For more information, please email Prof. Eric Fouh: eric.fouh@duke.edu

    Top