Welcome to CS 4390/CS5381: Introduction to Formal Methods Fall 2016
Course Staff Instructor Name: Yoonsik Cheon Email: ycheon@utep.edu Office: CCSB 3.0606 (phone: 747-8028) Office hours: MW 3-4 pm, by appointment, and when door is open
Course Website URL: http://www.cs.utep.edu/cheon/cs5381 or cs4390 Resources available News and important announcements Course information (syllabus, contact info, etc.) Lecture notes and reading materials Assignments, projects, and exams Scores and grades Programming tips, tools, etc.
Web Account Protected pages, e.g., grades Use: User name: cs4390 or cs5381 Password: room319
About This Course… CS 4390 Special Topics CS 5381 Topics in Software Engineering “Advanced topics related to techniques, methods, procedures, and paradigms in software engineering. May be repeated for credit when topic varies.” Q: Topic of this semester? Formal Methods
Goals And Topics To raise the competence to create correct and reliable software by precisely modeling, specifying, and reasoning about the correctness of computer programs. Specifically: To know the concepts of formal methods To learn representative formal specification languages, such as OCL, Z, Tabular notation, Larch, JML, and CSP To apply them to small examples
Learning Objectives Understand the concepts of formal methods. Know representative formal specification languages. Precisely model and specify small software systems using formal specification languages. Compare and evaluate different formal methods to choose a suitable one for a given application. Apply formal verification techniques to code with low complexity to reason about its correctness.
Textbooks No required textbook Will read technical articles and papers 7 required readings (page 5 of syllabus) Supplementary readings (CS 5381) Hard copies will be provided
Course Structure Active learning Seminar oriented (CS 5381) Required readings (7 papers) In-class group exercise and practice Application to running examples (homework) Seminar oriented (CS 5381) Present 1~2 related papers Suggested readings in syllabus (page 5) Optional for CS 4390 students Project based (CS 5381) Proposal, presentation, and final report Peer review Optional for CS 4390
Policy - Assignments Required readings (7) Homework (4) CS 5381 Policy OCL, Z, JML, Larch More on this later CS 5381 Paper presentations (1~2) Project: proposal, peer review, presentation, and report Policy No late submission for assignments Class attendance required; circulate a sign-in sheet!
Exams CS 4390* CS 5381 Mid-term: October 19 Final: November 28 (Take-home; last week)* CS 5381 No final but project presentation in the last week *Can take the project option instead of the final exam.
Grading Grading Percentage-score-to-letter-grade conversion Homework: 50% Mid-term exam: 20% Final exam/project: 30% Bonus (class participation): 5% Percentage-score-to-letter-grade conversion 90% or higher: A 80-89%: B 70-79%: C 60-69%: D below 60%: F
Tentative Schedule UML (1.5 weeks) Intro. to formal methods (1.5 weeks) Z (1.5 weeks) OCL (1.5 weeks Tabular notation (1.5 weeks) JML (2 weeks) Larch (1.5 weeks) CSP (1.5 weeks) Paper presentations (1.5 weeks) Exams and projects (2 weeks)
Questions/Concerns?
Homework Assignments Apply specification notations/techniques learned to: Small but realistic example application Same application but in different notations Board game: Battleship In pair (team of two) Modeling in Z, OCL, JML, and Larch
Battleship Game Guessing game for two players Paper and pencil game Two boards with hidden ships of different sizes Hit and sink all ships of the opponent *Both pictures from Wikipedia.
Pair Exercise (10 mins) Form a pair Find an online Battleship game or app (e.g., www.battleshiponline.org) Play one round of game Defeat your opponent *Screenshot from www.battleshiponline.org.