CS 351 Discrete Mathematics in Computing (NS)
Students are introduced to discrete mathematics concepts using a general-purpose programming language. We will walk through basic concepts such as variables, arithmetic sets, functions, algorithms, loops, strings, lists, dictionaries, files, number systems, Boolean algebra, statements, digital circuits, bitwise operators, sequences, sums, parity, invariants, and finite strategy games, counting, probabilities, vectors, matrices, polynomials, recurrence relations, recursion, graphs, number theory, and cryptology. Along the way, students will complete a series of hands-on exercises designed to build the ability to think with precision about both mathematical facts and computer programs.
Outcomes
- As a result of this course, students will know or be able to do the following:
- Understand basic terminology of functions, relations, sets programming algorithmic concepts such as loops, strings.
- Understand basic properties of graphs and related discrete structures and relate the structures to practical examples.
- Apply formal methods of symbolic propositional and predicate logic, such as calculating validity of formulae and computing normal forms.
- Apply discrete mathematics concepts to solve problems using an object-oriented programming language.
- Analyze a problem to determine underlying recurrence relations.
- Evaluate probabilities of events and expectations of random variables for elementary problems such as games of chance.