What ethical practices do students (as potential software engineers) need to be trained in?
I'm going to begin by quoting Ken Thompson's Turing Award Lecture "Reflections on Trusting Trust" (link).


  To what extent should one trust a statement that a program is free of
  Trojan horses? Perhaps it is more important to trust the people who
  wrote the software.


In my mind the first and most foundational lesson to impart is this: software, computers, technology -- these things are more about people than about code. There is a trust from the end-user, whoever that user may be, that must not be violated. Users are not means to an end; they are the end. The code is the means.

I am reminded of the Second Formulation of Kant's Categorical Imperative:


  Act in such a way that you treat humanity, whether in your own person
  or in the person of any other, never merely as a means to an end, but
  always at the same time as an end.


In terms of integrating ethics, the way to start in my mind is discussion. Early and often. Share news stories. Discuss implications of new apps students download. The first 12 minutes of this CS50 lecture cover the the Volkswagen/EPA scandal from 2015 and mention Ken Thompson's lecture. It is essential that awareness is built right from the beginning that software is everywhere and there needs to be an ethical code to guide that development. In my mind, while I wouldn't consider myself Kantian, I do think his point about means and ends is essential.

The AP Computer Science A curriculum outlines the following requirements under the major topics of the course:


  VI. Computing in Context
  
  An awareness of the ethical and social implications of computing
  systems is necessary for the study of computer science. These topics
  need not be covered in detail, but should be considered throughout the
  course.
  
  A. System reliability
  
  B. Privacy
  
  C. Legal issues and intellectual property
  
  D. Social and ethical ramifications of computer use


Similarly, in AP CS Principles, students, as a part of the Explore Task, have this on their rubric for the assessment:


  Analyzing Data and Information: Identifies one storage, privacy,
  OR security concern. Explains how the concern is related to the
  computing innovation.


The moral of the story here is that ethics must be discussed with students as soon as possible whether it is a high school AP course or an introductory computer science course at a university.

This idea of trust must be imparted to students, and it must be emphasized that the world of software engineering and computer science in general is not in a moral vacuum. It does no good to address a particular issue, say data privacy, without first contextualizing it within a larger ethical system, one that sees each user as an end, not a means, and as someone who is placing trust in you the developer.