Freshman Seminar FMS1207M

Mathematics and Computer Science

This seminar is part of a group of seminars with the code SP1207M organised by the Faculty of Science. They are for students in the first year of studies and give the opportunity to get some experience in presenting scientific talks to an audience. Each student has to prepare and present a talk and to provide a write-up on the talk. The URL of this webpage is
and please check this url for updates on the seminar.


The lecturer is Frank Stephan from the Departments of Mathematics and Computer Science of the National University of Singapore.
Frank Stephan's addresses are:

  (1) Department of Mathematics, National University of Singapore
      10 Lower Kentridge Road, S17, Singapore 119076
      Primary Office: S17#07-04, Telephone +65-6516-2759

  (2) School of Computing, National University of Singpore
      13 Computing Drive, Computing 2 (COM2), Singapore 117590
      Secondary Office: COM2#03-11, Telephone +65-6516-4246

The telefax in the main office of the Department of Mathematics
is +65-67795452

The email address is;
other email addresses are read less frequently, thus please use this one.

Time and Venue

In AY 2015/2016 Semester 2, the time of the seminar is each Monday 16.00-18.00 hrs, the venue is S16#04-40 (Science Building S16, Level 4, Room 40).

In general, please see F. Stephan's main webpage for office hours and times available.


The history of Computing is quite linked to mathematics. Mathematicians like Blaise Pascal and Charles Babbage constructed calculators on a mechanical basis, George Boole's work on algebras became laid the foundations of the binary logic used in computers and Alan Turing contributed to the field in many ways. Alan Turing developed together with people like Kurt Goedel and Alonzo Church the theoretical foundations of computer science; but he contributed also to the more applied part by playing a key role in supporting his country's work on cryptography. The topics of this seminar will be the mathematical foundations of computer science, for example number systems (like binary, octal, decimal and hexadecimal), Boolean algebra, formal models of computing and the famous P-NP question. For students with less mathematical background will historical topics be available as well, for example the following: Charles Babbage and his Analytical Engine; the American census of 1890, tabulating machines and the founders of the company IBM; calculating tools before the age of electronics. In the case that a student wants to propose an own topic, this is possible as well.
The text book of the seminar is Lectures on Deiscrete Mathematics for Computer Science by Bakhadyr Khoussainov and Nodira Khoussainova. Discrete mathematics deals with problems on discrete structures like finite graphs, functions from natural numbers to natural numbers, matrices with integer values and so on and tries to solve problems linked to such structures. Here the emphasis is on structures which have a finite description. For example, given a polynomial like p(x,y) = x*x+y*y-5, for which values x and y from the natural numbers is it 0? Are there methods to solve such questions and how difficult is it to obtain a solution in general. The book follows various problems from Discrete Mathematics and provides also various algorithms to solve problems from Discrete Mathematics.

Schedule AY 2015/2016

The seminar consists of two phases. In the weeks before the midterm break, talks will be prepared and practice talks will be given. From week 9 onwards, each student will do one presentation about approximately 30 minutes plus some discussion. The following is the schedule of the seminar.
  1. Week 1: Monday 11 January 2016.
    Basics of programming and calculating with numbers. Please see for an introduction to the programming language. Topics introduced are the basics of functions, for-loops, while-loops and conditional statements (if-statements).
  2. Week 2: Monday 18 January 2016.
    Basics of programming and calculating with numbers II. Please see for an introduction to the programming language. Topics introduced are arrays, methods to index arrays and complex numbers implemented as arrays.
  3. Week 3: Monday 25 January 2016.
    Prime numbers. Some programs on prime numbers and explanations can be found at the link
  4. Week 4: Monday 1 February 2016.
    Euclid's algorithm and the Chinese remainder theorem. Sample programs and explanations are found on
  5. Week 5: Monday 8 February 2016.
    No class, Chinese New Year (Public Holiday).
  6. Week 6: Monday 15 February 2016.
    String and Boolean data types and there usage; explanations are found on
  7. Week 7: Monday 29 February 2016.
    Graph theory, Euler circuit and Hamiltonian circuits. Information can be found on
  8. Week 8: Monday 7 March 2016.
    Information on finite automata and regular languages can be found on
  9. Week 9: Monday 14 March 2016.
    Talk 1: Neo Wei Jie, Esmond. Sudoku: Solver's Algorithm.
    Talk 2: Adolphus Lye. Early Computing Devices.
    Talk 3: E Chee Chau. Life of Fermat.
  10. Week 10: Monday 21 March 2016.
    Talk 4: Wu Jinyi. The shortest path problem.
    Talk 5: Heng Rui Yan Ryan. Games and Aritificial Intelligence.
    Talk 6: Liu Yen Ming. A comparison between Javascript and Python 3.X.
  11. Week 11: Monday 28 March 2016.
    Talk 7: Agartesh. The computer revolution from the 1940ies to 1960ies.
    Talk 8: How Yun Kit. Prime numbers.
    Talk 9: Serene Mah Pei Jun. History and overview of Google.
  12. Week 12: Monday 4 April 2016.
    Talk 10: Deon Chan. Cryptology.
    Talk 11: Ou Da Wei. Computational Thinking.
    Talk 12: Lexus Quek. IBM's early computers.
  13. Week 13: Monday 11 April 2016.
    Talk 13: Wang Mingda. Game Theory.
    Talk 14: Shi Maolei. The mathematics behind number systems.
    Talk 15: Timothy Low. Replacement of human labour by machines.

Seminar topics

The topics for the talks can be selected from the following list, topics can be added on the request of students. The list below comprises topics arising from the text book (the first 10 items except for the context-free languages) and from topics taken by students in previous years.
  1. Numbers and factors and prime numbers: Basic notions and theorems
  2. Graphs: Determining the components and the corresponding algorithms
  3. Euler Paths and Hamilton Paths in graphs
  4. Shortest path in directed weighted graphs
  5. Games played on finite graphs
  6. Program correctness, verification and termination (with some examples, say the algorithm of Euclid)
  7. Finite automata and regular sets
  8. Context-free languages
  9. Databases, relational structures and the relational calculus
  10. Proof methods in mathmatics
  11. Basics of programming in Javascript: variables, data-types, conditional statements and loops.
  12. How to edit Javascript programs and how to run and analyse them with the Firefox browser.
  13. Comparison between Javascript and some programming language of your choice.
  14. Spanning trees and how to compute them
  15. Number systems: historic outline
  16. The mathematics behind number systems: the base, representation of numbers, transforming numbers from one system into another, numbersystems important for computers (binary, octal, hexadecimal)
  17. Early computing devices: the abacus, mechanical calculators, the slide-rule
  18. The work of Euclid in geometry and algorithmics.
  19. Algorithms to find the roots of polynomials: exact roots for polynomials of degree 2,3; impossibility to express roots of polynomials of degree 5; approximations in the general case
  20. The limits of computation - the halting problem (formalisation of programming and its limitations)
  21. Computers and proofs: The four colour theorem
  22. Formalizing the theory of natural numbers and Goedel's incompleteness theorem; life and work of Kurt Goedel
  23. The history of pi: the art to compute many digits of a difficult number
  24. Computers and chess: from the beginnings to the time when Big Blue defeated chess champion Garry Kasparov
  25. Cryptography: The art of keeping secrets secret and the art of breaking other people's codes
  26. Blaise Pascal: a mathematician and inventor of calculating equipment
  27. Charles Babbage: the inventor of a computer which never became ready
  28. Ada Lovelace: Charle Babbage's programmer
  29. Hermann Hollerith: computing equipment for large statistical evaluations
  30. The computer revolution from the 1940ies to the 1960ies
  31. Modern trends in computing: personal computers, internet, mobile computing, ...
  32. Bill Gates: success with making software instead of hardware
  33. Linus Torvalds: Linux, an open source alternative to the operating system Windows
  34. History and overview of Google
  35. George Boole: laying out the theoretical foundations of binary logic
  36. Konrad Zuse: one of the pioneers in building the first working computers
  37. Srinivasa Ramanujan
  38. IBM's early computers
  39. Alan Turing: life and legacy of a great thinker
  40. The mathematical century
  41. The book Gödel, Escher, Bach and Artificial Intelligence
  42. Complexity
  43. Game Theory

Written Part of Seminar

Students have to attend all talks. Furthermore, they have to write an essay. The essay should have together at least 3000 words. The essay should be sufficiently detailed in order to show that the student understands the subject presented in the talk. Try to be precise in the write-up.

Avoid Plagiarism and Respect Copyright

The essay should be written in your own words and you should make graphics explaining the talk by yourself.

Note that pictures on the internet have often a copyright and that it might therefore not be legal to reproduce them, in doubt omit them.

Although essays have to rely on sources, they should not be produced by copying and pasting from any other source. Cited text has to be marked with the source given and does not count for the 3000 word minimum length. Every place where text is cited has to be marked as a citation.

The NUS considers plagiarism - that is, copying text and claim that this text is own work - as a serious offence. Therefore it is better to write a non-perfect essay than to copy and paste text from the internet. Even getting the word minimum length full is not as important as to avoid plagiarism. See also the webpage on academic culture ( and the section there about plagiarism.

Useful Links

  1. Alphabetic list of biographies of mathematicians:; this webpage has a large list of biographies of people working in mathematics and computer science.
  2. Google:; this is a general purpose search machine which displays links to desired webpages according to the keywords entered in the search.
  3. Yahoo Search:; this is a general purpose search machine which displays links to desired webpages according to the keywords entered in the search.
  4. Wikipedia:; this webpage exists also in other languages and the search is slow, Wikipedia pages are fastest found by entering the search words plus the word "Wikipedia" into Google; Wikipedia often has external links to other webpages; Wikipedia is very comprehensive, but can be edited by everyone which results occasionally in one-sided information.
  5. Encyclopedia Britannica:; this is an online encyclopedia, some parts are not as comprehensive as Wikipedia, but it is written by professional editors with the goal to give precise and reliable information.
  6. Amazon:; this is an online book shop displays a lot of information on books which can be bought; in the case that you want to order books, please note that this company sits in (several) foreign countries and hence postal charges are higher than displayed on the webpage, prices are given in foreign currencies and subcontractors do mostly not deliver to Singapore.