You should get a textbook to support your studies of the module. Two books are suggested. They are very different in style, so it is worth having a look at both books in the library. You should only have to buy one of them. Neither book is perfect, and some material will only be covered by videos and hand-out material.
This book takes an unusual paedagogical angle in starting with examples from computing, and exploring the mathematical theory in order to solve problems in the examples. Contrary to most books which aims at a first-year module, it aims at students who have already completed some computing modules. This is a promising approach, but some will say that some of the theory and formalism is treated too lightly.
The most serious objection to this book is that the chapter on cryptography is misleading. It gives the impression that only public key cryptography can be secure. A little more detail must be added to avoid misunderstanding.
The book is tailored to computer science rather than computer engineering. It seems to assume that the student has already encountered the basics of algorithmic theory, and for an engineering degree I would like to add material on coding theory and symmetric cryptography.
The teaching most closely follows Stein et al's book, and thus this may be easier to read. However, Rosen will give you a distinctly different angle, and thus be more illuminating. The second half of the module will contain a lot of material covered by neither book, and some additional hand-outs will be provided.
The following is a list of books that I have consulted and/or considered in the preparation of a discrete maths module, with a short review and my opinions about their suitability. Each of the books has its own merits and may provide useful background reading, possibly with a different angle.
This looks like a very interesting and well-structured book for computer science. It is structured around a number of approaches to reasoning: logical thinking, relational thinking, recursive thinking and quantitative thinking are largely independent approaches. Analytical thinking considers algorithms, building on the four first approaches. «Thinking through applications» goes closer into real-world applications.
The book mentions modular arithmetrics only briefly, and does not discuss discrete algebra and topics relating to coding and cryptography.
The title's address of `Computer Science' should not in any way be confused with any practical or applied area of computing. The focus of the book is on set theory, relations, and logic, as commonly taught as part of a theoretical computer science curriculum. The chapter on `reasoning about programs' is a particularly interesting touch, covering abstract analysis of computer programs in much more depth than the other texts.
It feels like a more advanced and abstract text than the above two. Much as I would love to read it myself, I would not recommend it for a course of computer engineering.