COMP 3007-B (TB 238)
Wed.. and Fri. 8:35 am-9:55 am
Tony White
arpwhite at(@) scs.carleton.ca
HP 5354, 520-2600 x2208
Office Hours: Tue. and Thu. 1:30 pm-2:30 pm
The TA(s) for this course will be in HP 1170 during stated office hours.
|
Name |
Office Hours |
|
Thu. 2:00 pm-4:00 pm |
|
|
Tue. 2:00 pm-4:00 pm |
- Please use "COMP 3007" as an e-mail subject.
- Suggestion! Get Dropbox to save your course materials.
- Tutorial questions for 30th March are here: Questions 1-3 and 4 or 5 only. Due Sunday 1st April by midnight. Submit via email to Prof. White.
- The due date for Assignment 4 has been changed to Wednesday, 4th April at 11:55 pm.
- Friday, 30th April will be the last class for 3007. The class will complete the Prolog section of the course and provide some insight into the final exam.
- The 3 hour final exam consists of 3 questions: 1 Prolog and 2 Scheme. The exam is marked out of 50. Questions on the environment model are included.
- Tutorial questions for 23rd March are here: Questions 1-7 only. Due Sunday 25th March by midnight. Submit via email to Prof. White.
- Final is scheduled for the 20th April 2012 at 9:00 am. The exam will be held in rooms 4115 HP, 3341 HP and 3115 HP. Allocation to room is according to the first letter of your last name. You will be in the same room at the midterm. The exam will be held online and require the use of DrRacket and SWI-Prolog.
- Here is an example of doing testing in Prolog.
- Tutorial questions for 16th March are here. Due Sunday 18th March by midnight. Submit via email to Prof. White.
- There will be tutorials in HP 4115 on the 16th, 23rd and 30th March at 2:30 pm. Each tutorial may be used to substitute up to 3⅓% of the 15% of the course mark allocated to the midterm. So, if you scored less than 13⅓ out of 20 on the midterm you can raise it to this by completing the questions on the 3 tutorials. The questions must be solved by Sunday at midnight following the Friday. Submit your solutions directly to Prof. White via e-mail.
- Assignment 4 posted. Due date 1st April at 11:55 pm.
- IMPORTANT Midterm Locations:
- Last names beginning with A-G, Room 4115 HP
- Last names beginning with H-N, Room 3341 HP
- Last names beginning with O-Z, Room 3115 HP
- Assignment 3 posted. Due date 11th March at 11:55 pm.
- Assignment 2 posted. Due date 19th February at 11:55 pm.
- Guidelines updated! Use the layout in question1.rkt for your submission for Assignment 1. Have 1 file per question. You should have 10 .rkt files for assignment1 plus a README.TXT file with any special instructions.
- MIDTERM will occur on the 29th February 2012 at 8:30 am. It will last 90 minutes. The exam will be online.
- Location(s) of midterm are: 4115 HP, 3115 HP and 3341 HP. Allocation of student to exam room will be by first letter of surname.
- Set the language to R5RS in DrRacket. Uncheck the "Disallow redefinition of initial bindings" checkbox.
- Assignment 1 posted. Due date 29th January at 11:55 pm.
An introduction to functional and logic programming. Topics include: semantics of functional programming, assignment-free programming, the meta-circular interpreter, recursive functions, Prolog, backtracking, cutting, and negation.
COMP 2402 or COMP 2002
Scheme
- H. Abelson and G. J. Sussman with J. Sussman, (Web) Structure and Interpretation of Computer Programs (FREE!)
- K. Dybvig, (Web) The Scheme Programming Language (3rd Ed.) (FREE)
- (Web) How to Design Programs An Introduction to Computing and Programming (FREE!)
- (Web) Wikipedia on Scheme (FREE!)
- (Web) An Introduction to Scheme and its Implementation (FREE!)
Prolog
- (Print) W.F. Clocksin and C.S. Mellish, Programming in Prolog, Springer-Verlag.
- (Web) Wikipedia on Prolog (FREE!)
- (Web)) U. Nilsson and J. Maluszynski, Logic, Programming and Prolog (2nd Ed). (FREE!) This contains advanced material not used in this course.
- (Web) A. Brna, Prolog Programming A First Course (FREE!) Good introductory text.
General
- Good site for free computer books. Includes useful material on Prolog, Scheme, AI ...
Lectures:
- 20 Video lectures by Abelson and Sussman
- Course notes by Prof. Li and Prof. White
- Course introduction
- Introduction to Programming Paradigms
- READING: Programming Paradigms
- READING: Li&White: Chapter 1
- Introduction to Scheme
- READING: Scheme as a programming language
- READING: Dybvig: Chapter 1
- READING: Li&White: Chapter 2.1-2.5
- Building Abstractions with Procedures, Powerpoint slides and slides in PDF
- READING: A&S: Building Abstractions with Procedures
- READING: Dybvig: Chapter 2
- READING: Li&White: Chapter 2.1-2.5
- Building Abstractions with Data
- READING: A&S: Building Abstractions with Data
- READING: Li&White: Chapter 3
- Modularity in Object State
- READING: A&S: Modularity, Objects, and State
- READING: Closure
- READING: Li&White: Chapter 4.1,4.2,4.4,4.5
- Environments, Powerpoint slides and slides in PDF
- READING: A&S: Environment model of Evaluation
- READING: ContourModel
- READING: Li&White: Chapter 4.3
- READING: Examples of environment models. See examples (1) below for alternative representation.
- EXAMPLES (1): Extra environment examples. Powerpoint and PDF formats.
- EXAMPLES (2): Bank account environment examples. Powerpoint and PDF formats.
- Metalinguistic Abstractions
- READING: A&S: Metalinguistic Abstraction
- READING: Li&White: Chapter 5
- Introduction to Logic Programming
- READING: Clausal normal form -- Background only, PROOF NOT EXAMINABLE.
- READING: Horn clause -- Background, definition using implication operator examinable.
- READING: Li&White: Chapter 6
- READING: Spivey: Chapter 1
- Programming with Prolog
- READING: Unification -- Background only, DETAILS NOT EXAMINABLE.
- READING: Li&White: Chapter 6
- READING: Spivey: Chapter 2,3 and parts of 4,5,6
- Recursion Logic Programming
- READING: Li&White: Chapter 7
- READING: Spivey: Chapter 3
- The Prolog Cut
- READING: Li&White: Chapter 8
- Advanced Topics
- READING: Li&White: Chapter 9.4
Scheme Example Code:
- Scheme lecture notes, sections 1-3
- Scheme lecture notes, section 4
- Scheme lecture notes, section 5
- Scheme lecture notes, stream definitions
- Scheme lecture notes, supplemental: Class and meta-class
- Scheme lecture notes, section 6
- Scheme lecture notes, section 7: Metacircular interpreter
Prolog Example Code:
There will be 4 assignments. All assignments carry equal marks.
Information on the computer laboratories for this course is here. The lab machines are equipped with computers running a Windows OS connected via a network to printers and a file server. Students are permitted to use their own facilities, but must acquire their own software to run on their own machines.
Scheme and Prolog are used in this course. The Software is provided on all laboratory computers and can be downloaded free from the World Wide Web. The Scheme (DrRacket) download is: http://www.drscheme.org. SWI-Prolog can be found at http://www.swi-prolog.org. If you have problems with the software running on the SCS machines, please e-mail support@scs.carleton.ca.
You should take the time to ensure that your assignments are well documented and easy to understand. Assignments that don't meet these standards will be given fewer marks. Guidelines have been written that define documentation and testing standards. NOTE: NO LATE ASSIGNMENTS WILL BE ACCEPTED.
Marks will be posted on-line as soon as assignments have been graded. It is your responsibility to notify the instructor of any inconsistencies at once. Any complaints regarding assignment marks should be brought to the attention of the TA who marked them. This should be done no later than two weeks after the assignment has been first marked. No assignment remarking will be done after this time.
You should take the time to ensure that assignments are neat, legible and easy to understand. Any instructions required by the teaching assistants (for example any assumptions you made about the assignments) should be clearly indicated in a README.TXT file submitted with your assignment. Remember, it is YOUR responsibility to demonstrate that you have understood and completed the assignment. A significant portion of your grade for assignments will be given for the readability of them and for your demonstration that you have completed the assigned tasks.
There will be 4 assignments in this course which will be available on the course web page. All assignments are counted towards the final grade.
Copying of assignments is strictly disallowed. On the first occasion, all students involved will be given a mark of 0. On subsequent occasions, students will be asked to withdraw from the course.
Assignments (4) 30% Mid-Term Exam 15% Final Exam 55% Passing grades on both the term mark (assignments and mid-term exam) and the final exam are required to receive a passing grade for the course.
As well as being announced in class, all important information, such as course news, assignments, TA hours, instructor office hours, will be available on the course web page at http://www.scs.carleton.ca/~courses/3007. It is the student's responsibility to check this web page for new information regularly.
Students with disabilities requiring academic accommodations in this course are encouraged to contact a coordinator at the Paul Menton Centre to complete the necessary letters of accommodations. After registering with the Paul Menton Centre, make an appointment to come and discuss your needs with me at least two weeks prior to the midterm exam. This is necessary in order to ensure sufficient time to make the necessary arrangements.