Analysis, use, and design of data structures and algorithms using an object-oriented language like Java to solve computational problems. Emphasis on abstraction including interfaces and abstract data types for lists, trees, sets, tables/maps, and graphs. Implementation and evaluation of programming techniques including recursion. Intuitive and rigorous analysis of algorithms.
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 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.
Prof. Eric Fouh
Instructor
eric.fouh@duke.edu
Violet Pang
Teaching Associate
tong.pang@duke.edu
See EdStem
For more information, please email Prof. Eric Fouh: eric.fouh@duke.edu