Sylllabus ========= + Course name: CS310, Programming Languages + Effective data of syllabus: Aug 11, 2013 + Course number: 88221 + Pre-requisite: CS 111 or consent for non-majors + Course format: 3 credit hours 3 hr lectures, 75 minute labs, exams, group project. + Textbooks : + (optional): Michael L. Scott, Programming Language Pragmatics (3rd edition) + (optional) Allen B. Downey, Think Python + For Python 3 (too new for us) [pdf](http://www.greenteapress.com/thinkpython/thinkpython.pdf) + HTML version for Python 2 (which we will ll use) [html](http://www.openbookproject.net/thinkcs/python/english2e/) + Also available via WVU databases in [Safari](http://www.libraries.wvu.edu/databases/letter.php?id=S) + Schedule: + Lectures (attendance is required): + Location: ESB 801 + Tuesday, Thursday, 3:30-4:45 + Labs (attendance at _one_ of these times is required): + Location: ESB 756 + Tues, 6:00pm to 7:15pm + Thurs, 11:00am to 12:15pm + Class discussion list: cs310@googlegroups.com + Instructors: + Lecturer: Tim Menzies Ph.D. ESB 841a, tim@menzies.us. + Tutor: Cheyenne Parsley, cparsle1@mix.wvu.edu + Note: use these private email for _private_ messages. For most of the class traffic, use the class discussion list shown above. + Consultation times : Tuesday, Thursday 12:15 to 1:45pm or by appointment, rm 841a ESB. Objectives ---------- Overview of different paradigms of programming languages. Detailed studies in object-oriented, functional, and logic programming. Theoretical aspects of programming languages including basic language translation, virtual machines, abstraction mechanisms, declarations and types. Topics ------ + Overview (1, a) + Grammars (1, a) + Functional programming (2, a, b, c, k) + Abstraction Mechanisms (1, a) + Declarations and Types (1, a) + Object-oriented programming (1, a, b, c) + Basic language translation (1, a, b) + Virtual machines (1, a, b) + Logic Programming (a, b, c, k) + Special topics (a, k) Key to the above: + ACM topics + 1: Core + 2: Elective A + CS program outcomes + a: Be exposed to a variety of programming languages and systems, and will be proficient in programming in at least two languages. + b: Have the knowledge of the basic principles and methods of programming language translation. + c: Have knowledge of the basic principles of data structures, discrete mathematics and algorithms, and be able to apply this knowledge to problem solving in relevant application areas. + k: Be familiar with advanced concepts of several specialized computer science areas. Expected Workload ----------------- You MUST be prepared to dedicate AT LEAST 5-8 working hours a week to this class (excluding the time spent in the classroom and labs). A minimal prerequisite for the successful completion is good understanding of programming concepts. You should have gained these in the prerequisite class, CS 111. Familiarity with a high level programming language is assumed (as taught in CS 111). Assessment ---------- + Lectures: 12 marks (for attendance) + Mid-term: 15 marks (tentatively Oct 10) + Final exam: 30 marks + Three projects: 3 * 10 points each + Spot quizzes : 5 marks + Labs: 10 marks (1 marks for 10 graded labs) + Note that labs will of two types 1. On the week of the labs, this will be _ungraded_. Such labs are to be used to _urgent_ assistance with projects. 2. On all other weeks, the labs will be _graded_. _Important notes_ + All the above marks, _except_ the project mark, will be subject to scaling, + The above sums to 102. + Your class tutor is a WVU student busy with their own subjects. They are available to you _only_ at lab times. At other times, they are to be left free to work on their own subjects. Students will work in groups of three. Students will receive a group mark reflecting the product of that group product. At the discretion of the lecturer, individual students may be asked to conduct up to two code walk-throughs with the lecturer and/or tutor. In a walk-through, an individual may lose up to 8 marks (4 marks per walk through) if they can not demonstrate their understanding of any part of the code base. Projects are due at Friday 9am. Projects will be submitted as sheets of paper. Feel free to save paper and print on both sides. Projects _will not be accepted_ unless: + They are stapled together. + The header of each sheet has a header saying "310:projN: LastName1,Lastname2" + All pages are numbered (in ink) as "page M of N". + Source code listings, or listings of any text output, are shown succinctly. To generate succinct output, use: # note that in this example, all files begin # with a multi-line comment showing file name Title="310:proj2 :Turing, Godel, Boole" a2ps --center-title="$Title" -qr2gC -o ~/tmp/listing.ps files* ps2pdf ~/tmp/listing.ps Late projects: + Home works are late at 3:35 on Thursday + Late homes incur a 2 marks per day penalty (weekend = 1 day). + Extensions: each group will be issued one voucher for a no-questions extension, due 3:55 on the Tuesday of the next week. Wise students save vouchers for end of term. Final Grades ------------ Letter | Range -------|---------- A | 90 - 100 B | 80 - 89 C | 70 - 79 D | 60 - 69 F | otherwise See also, below, for how to lose marks due to poor attendance. Attendance Policy ---------------- Lectures: Students are expected to regularly attend lectures. Students will lose one points per noted absence. If you have another commitment that requires you to be consistently absent, you should drop the class. Lecture attendance will be judged via the _hand-written_ notes you take during lectures. At the end of each lecture, the names of one-third of the students enrolled in the class will be displayed. Those students must then show the lecturer the _hand-written_ notes they took in that class (with their name and last-four of student id written at top). Students will be deemed absent if: + They do not hand-in their notes; + The notes are so brief as to suggest students did not pay attention in class. Exams: Consistent with WVU guidelines, students absent from regularly scheduled examinations because of authorized University activities will have the opportunity to take them at an alternate time. Make-up exams for absences due to any other reason will be at the discretion of the instructor. Special Consideration --------------------- See me at start of semester advising planned absences or if you need other special considerations. Such considerations will be considered on a case-by-case basis. For your information, I=in the past I have granted special consideration to - Child birth (yours, not someone else) - Military personnel (for scheduled maneuvers, with some documentation from their C.O.) - Undergrads doing site visits to perspective grad students (if they can show me some letter of invite) - Students with issues documented by the Office of Disability Services. Social Justice Statement ------------------------- The West Virginia University community is committed to creating and fostering a positive learning and working environment based on open communication, mutual respect, and inclusion. If you are a person with a disability and anticipate needing any type of accommodation in order to participate in this class, please advise me and make appropriate arrangements with the Office of Disability Services (293-6700). For more information on West Virginia University's Diversity, Equity, and Inclusion initiatives, please see [http://diversity.wvu.edu](http://diversity.wvu.edu). Statement of Academic Integrity -------------------------------- The integrity of the classes offered by any academic institution solidifies the foundation of its mission and cannot be sacrificed to expediency, ignorance, or blatant fraud. Therefore, I will enforce rigorous standards of academic integrity in all aspects and assignments of this course. For the detailed policy of West Virginia University regarding the definitions of acts considered to fall under academic dishonesty and possible ensuing sanctions, please see the Student Conduct Code http://studentlife.wvu.edu/office_of_student_conduct/student_conduct_code. Should you have any questions about possibly improper research citations or references, or any other activity that may be interpreted as an attempt at academic dishonesty, please see me before the assignment is due to discuss the matter.