About CPSC 418 / MATH 318, Winter 2024

home -  about  -  schedule -  assignments -  latex -  handouts -  references -  Renate Scheidler

 Course Objectives

What would you want to see in a secure e-mail system? File transfer program? Social networking site? How do you guarantee that an e-mail originates from a legitimate sender and isn't a phishing or spoofing attempt? How can you ensure that your private files have not been accessed by unauthorized users? Or prevent hackers from tampering with your social media site? Cryptography is the foundation for solutions to these types of questions.

The main objective of this pair of courses is to provide students with a thorough understanding of the fundamentals of and current best practices in cryptography. Students who have completed CPSC 418 or MATH 318 will have a solid grasp, including some practical experience, of the basic cryptographic primitives and their proper usage. The learning outcomes for the two courses can be found at the end of the respective course information sheets and the course syllabus, available on the handouts tab.

 Required Knowledge and Skills

Consult the course information sheets for the (different!) prerequisites for CPSC 418 and MATH 318. Cryptography falls squarely between mathematics and computer science, so the course combines aspects from both disciplines. In addition to a sufficient level of mathematical maturity, knowledge of the following mathematical topics is assumed:

Knowledge of elementary probability theory is an asset, but the required body of knowledge will be covered in class. Basic competency in the typesetting software LaTeX is also very helpful; an introduction and demo will be provided in tutorial. For CPSC 418, proficiency in Python programming is assumed.

 Topics Covered

The University calendar course description provides a brief overview of the course content. A complete syllabus with a list of topics can be found on the handouts tab. Topics covered include:

 Development and Enhancement of Skills

The main primitives required for cryptographic applications will be presented during the lectures. Written problem-based assignment questions (for all students) will lead to further exploration of the underlying theory and of the practical and security issues. Programming questions (for CPSC 418 students) will provide hands-on experience in writing cryptographic software. Mathematical questions (for MATH 318) will enhance students' in-depth understanding of the mathematical foundations.

 Tools

For the written problems, the typesetting software LaTeX will be used. All the programming work required for CPSC 418 will be done using Python. Class discussion is conducted on Piazza, while assignments will be submitted online through Gradescope.

 Learning Methods

Students' skills will be developed using the following methods:

  CPSC 418 versus MATH 318

CPSC 418 and MATH 318 are different courses; one is not a substitute for the other. While both courses share lectures, exams and portions of homework assignments, there are significant differences:

Note that CPSC 418 and MATH 318 are anti-requisites; credit can not be obtained for both.

 Beyond this Course

CPSC 418 and MATH 318 are highly suitable as stand-alone courses. In addition, CPSC 418 is a required course within the Concentration in Information Security offered as part of the BSc degree in Computer Science. The exact requirements for this concentration are listed at the end of Section 4.3.1 of the University calendar.

The University of Calgary offers professional Master's programs in data science, information security and quantum computing. Check that website for information sessions and lunch & learn events.

To find out more about research in cryptography and information security conducted at the University of Calgary, check out the U of C's Institute for Security, Privacy and Information Assurance (ISPIA).


Last modified by Renate Scheidler
httpd://cspages.ucalgary.ca/~rscheidl/crypto/about.html