Non-Procedural Languages (COMP318) & Advanced Non-Procedural Languages (COMP518) Unit Details Contents 1 Welcome to Non-Procedural Languages 2 2 Aims, Prerequisites, and Outcomes 2 3 Textbooks 3 4 How this Unit will be Run 4 5 Tutorials 4 6 Assignments & Assessment 4 7 Hardware & the Submission of Assignments 5 8 PLAGIARISM 5 9 Library Services 6 10 Complaints and Appeals 6 1 1 Welcome to Non-Procedural Languages Welcome to comp318 and the postgraduate version comp518. Lecturer: Krzysztof Krakowski Office: 159 Maths and Computing building Phone: (02) 6773 2724 Web site: http://mcs.une.edu.au/~kris/ Unit web site: http://mcs.une.edu.au/comp318/ Unit e-mail: comp318@turing.une.edu.au School phone: (02) 6773 2298 School fax: (02) 6773 3312 2 Aims, Prerequisites, and Outcomes The main features of traditional procedural programming languages, such as Fortran, Algol, Pascal, and C are assignment and control. Other programming languages with different features, known as non-procedural programming languages, have been developed, such as Lisp, Scheme, ML, Prolog, Smalltalk, or Miranda. We will cover two of these non-procedural programming languages in this unit. The languages we will study are • Scheme – a dialect of Lisp, (functional programming, or symbolic manipulation), and • Prolog – (logic programming) These languages are also known as Artificial Intelligence’s programming languages. The prerequisite for this unit is 12cp in COMP. Upon completion of this unit, students will be able to: 1. approach software development using good programming concepts; 2. write effective non-procedural code to solve small/medium problems; 3. compare programming experiences in (non)-procedural languages. There will be lecture notes appearing on the web & the Internet as the unit proceeds, so you should pay close attention to the comp318 web page: http://mcs.une.edu.au/~comp318/ 2 3 Textbooks There are two text books in this unit: 1. Dybvig, R. K. – The Scheme Programming Language, 4th ed., MIT Press, 2009, ISBN: 978-0-262-51298-5 2. Clocksin, W. F. and Mellish, C. S. – Programming in PROLOG, 5th ed., Springer-Verlag, 2003, ISBN: 3-540-00678-8 or 0-387-00678-8. The scheme book has the advantage of existing online (see 3rd ed. or 4th ed.) Both books are references rather than books we will go through page by page. Recommended Readings 1. Bratko, I. – PROLOG - Programming for Artificial Intelligence. AddisonWesley, 3rd ed., 2001 2. Sterling, L. and Shapiro, E. – The Art of Prolog. MIT Press, 7th ed. 1991 3. Friedman, D. P. and Felleisen, M. – The Little Lisper. SRA, 2nd ed., 1986 4. Callear, D. –Prolog Programming for Students. Thomson, 2nd ed., 2003 5. Chakravarty, M. M. T. and Keller, G. C. – An Introduction to Computing with Haskell. PearsonSprintPrint, 2002 6. Queinnec, C. –Lisp in Small Pieces. Cambridge University Press, 1996 3 4 How this Unit will be Run The very first thing you should do if you are taking this unit is check out the ~comp318 directory or the ~comp318 web page. This is where (if you are external & don’t attend lectures) everything that happens in this unit will take place. I’ll describe the ~comp318 directory here, the web page is structured in an analagous fashion. In the ~comp318 directory there will be subdirectories called: Lectures This is where the lecture notes will appear. Tutorials Weekly tutorial exercises and solutions. Assignments Assignment specifications. Solutions This is where solutions to the assignments, and projects, will appear. FAQs Answers to FAQs and hints for assignments and projects. Past-Exams Past exam papers in postscript and pdf format Papers-of-Interest Postscript versions of papers that are of general interest. Please use your UNE email address ONLY in all communications with your lecturers. The lectures, tutorials, assignments, and projects will all be released, in real time, on the web page, according to the (tentative) unit schedule, http://mcs.une.edu.au/~comp318/UnitPlan/ 5 Tutorials There are weekly exercises to do starting from Week 2. Their purpose is to get you going with the languages and help you to do the assignments and projects. Solutions are also available. 6 Assignments & Assessment Students doing comp318 do 4 assignments (worth 10% each). Students doing comp518 do 5 assignments (worth 8% each). The practical part is worth 40% and the exam is worth 60% in the final mark. A student must obtain at least 50% in each component of the final mark (assignnments, exam) to pass the unit itself. Notes 4 • Deadlines will only be extended on medical grounds. Otherwise late submissions will attract a penalty of 5% per day late and will not be marked at all (0 marks) if more than ten days late. In any situation you have to submit your assignment (project) otherwise you’ll get an NI. The last week for submissions is week 13th of the semester. • To request an extension, you will need to email to comp318@mcs.une.edu.au, prior to the due date, and provide the following: – your name, – the assignment for which you seek an extension, – the grounds for granting an extension, and – the date you anticipate being able to submit your assignment. • If you do not submit all of the assignments or do not sit the final examination, you will receive a failed incomplete (NI) grade for the unit. 7 Hardware & the Submission of Assignments The assignments and projects must be submitted using the electronic submit facility. All programming assignments must be compilable on our server: turing.une.edu.au Contact your lecturer (tutor) for help with assignments and programming projects. But start early. Lots of requests on the day before an assignment is due can’t be well handled. If you have a problem with your code, then do not send me lots of messages that contain code segments etc, or even one message with lots of attachments. If you do have a mess of code that needs some heroics on my behalf, then the desired form of interaction is to send me an email. Warn me of this and either ring me up to talk about it or wait patiently until I find time to look at it. 8 PLAGIARISM Students are warned to read the statement in the Faculty’s Undergraduate and Postgraduate Handbooks for 2009 regarding the University’s Policy on 5 Plagiarism. Full details of the Policy on Plagiarism are available in the 2009 UNE Handbook and at the following web site: http://www.une.edu.au/policies/pdf/plagiarismcoursework.pdf The page for Avoiding Plagiarism and Academic Misconduct (Coursework) - Information for Students is: http://www.une.edu.au/policies/pdf/plagiarismstudentinfocw.pdf In addition, you must complete the Plagiarism Declaration Form for all assignments, practical reports, etc. submitted in this unit. (For electronic submission of assignments, it is presumed that you have read the web site and you don’t have to submit the form). 9 Library Services The UNE University Library has an extensive collection of books, journals and online resources. Find out at http://www.une.edu.au/library/ services/unit_guide.php what can the Library do for you. This guide provides easy pathways to UNEs vast online resources and shows how the Library can help you with your studies. You can borrow books, obtain copies of articles and exam papers, and request advice from librarians on search strategies and information tools to use. 10 Complaints and Appeals Read about student appeals policy at http://www.une.edu.au/policies/ pdf/studentappealspolicy.pdf. Please visit http://www.une.edu.au/elis/services/complaints.php for more information and procedures. 6