CSC330: Programming Languages
Territory Acknowledgement

We acknowledge and respect the Lək̓ʷəŋən (Songhees and Xʷsepsəm/Esquimalt) Peoples on whose territory the university stands, and the Lək̓ʷəŋən and W̱SÁNEĆ Peoples whose historical relationships with the land continue to this day.

Course Dates
CRN(s): Section A01 CRN: 10770
Term: 2018
Course Start: 2018-09-05
Course End: 2018-12-21
Scheduled Meeting Times (M=Mon, T=Tue, W=Wed, R=Thu, F=Fri)
Section: Location: Classes Start: Classes End: Days of week: Hours of day: Instructor:
A01ELL 0622018-09-052018-12-05MR14:30-15:50Daniel German
Instructor(s)

Name: Daniel German
Office: ECS 554
Phone: (250) 472-5790
Email: dmg at uvic dot ca

Office Hours:Comments
Tue03:00pm-04:30pm 
Wed03:00pm-04:30pm 

Course Overview

This course teaches the basic concepts behind programming languages, with a strong emphasis on the techniques and benefits of functional programming. This course is not to learn to program. As a prerequisite to this course, you are expected to be a capable programmer in one or two languages.

Topics
  • Syntax vs. semantics vs. idioms vs. libraries vs. tools
  • bindings, conditionals, records, functions
  • Recursive functions and recursive types
  • Algebraic datatypes, pattern matching
  • Tail recursion
  • Higher order functions, closures
  • Scope
  • Currying
  • Type inference
  • Abstract types and modules
  • Dynamic vs. static typing
  • Abstract types via dynamic type
  • Pure object orientation
  • Subtyping vs. parametric polymorphism
Course Objectives And Learning Outcomes
  • Learn the principles on which programming languages are built.
  • Be a capable functional programmer
  • Learn ML, Racket and Ruby
  • Be a better programmer.
Textbooks

None. Materials are already available on the Internet.

Assignments

There will be 7 assignments in the course (one per week of the course, except during the week of a midterm). Each assignment is due 7 days after it has been posted. Each assignment is worth 1% of the course, for a total of 7% of the course mark.

Exams

There will be 3 midterm exams in the course. You must pass all exams to pass the course.

The three midterms will take place after hours: Oct 11, Nov 5 and Dec 3, from 7 pm to 8:30 pm. You are expected to be able to attend all exams at these times.

Term Schedule

This schedule is subject to change.

Assignment Weight Assigned Date Due Date
Weekly 1% each, for a total of 7% Every week except during exam One week later


Exams Weight Date
Midterm 1 39% Oct 11, From 7:00 PM to 8:30 pm
Midterm 2 39% Nov 5, from 7:00 PM to 8:30 pm
Midterm 3 15% Dec 3, from 7:00 PM to 8:30 pm
Grading
Coursework Weight (out of 100%)
Assignments 7%
Exams 93%
Grading System

The University of Victoria follows a percentage grading system in which the instructor will submit grades in percentages. The University will use the following Senate approved standardized grading scale to assign letter grades. Both the percentage mark and the letter grade will be recorded on the academic record and transcripts.

F D C C+ B- B B+ A- A A+
0-49 50-59 60-64 65-69 70-72 73-76 77-79 80-84 85-89 90-100
Grades Description
A+, A, A- Exceptional, outstanding or excellent performance. Normally achieved by a minority of students. These grades indicate a student who is self-initiating, exceeds expectation and has an insightful grasp of the subject matter.
B+, B, B- Very good, good or solid performance. Normally achieved by the largest number of students. These grades indicate a good grasp of the subject matter or excellent grasp in one area balanced with satisfactory grasp in the other areas.
C+, C Satisfactory, or minimally satisfactory. These grades indicate a satisfactory performance and knowledge of the subject matter.
D Marginal Performance. A student receiving this grade demonstrated a superficial grasp of the subject matter.
F Unsatisfactory performance. Wrote final examination and completed course requirements; no supplemental.
Posting of Grades

Typically marks for assignments, examinations, and provisional final grades, are made available through conneX, or CourseSpaces where each student will be able to view only their own grades. Sometimes numerical marks/grades may be posted publicly to the entire class. In that case, full student numbers or names will not be included with the posted information.

Course Experience Survey (CES)

I value your feedback on this course. Towards the end of term you will have the opportunity to complete a confidential course experience survey (CES) regarding your learning experience. The survey is vital to providing feedback to me regarding the course and my teaching, as well as to help the department improve the overall program for students in the future. When it is time for you to complete the survey, you will receive an email inviting you to do so. If you do not receive an email invitation, you can go directly to the CES site

You will need to use your UVic NetLink ID to access the survey, which can be done on your laptop, tablet or mobile device. I will remind you closer to the time, but please be thinking about this important activity, especially the following three questions, during the course.

  • What strengths did your instructor demonstrate that helped you learn in this course?
  • Please provide specific suggestions as to how the instructor could have helped you learn more effectively.
  • Please provide specific suggestions as to how this course could be improved.
Csc Student Groups

The Computer Science Course Union (https://onlineacademiccommunity.uvic.ca/cscu/) serves all students who are either in a computer science program or taking a class in computer science. Please sign yourself up on their mailing list if you would like to be informed about their social events and services.

The Engineering Students' Society (ESS) serves all students registered in an Engineering degree program, including Software Engineering (BSEng). For information on ESS activities, events and services navigate to http://www.engr.uvic.ca/~ess .

Course Policies And Guidelines

Late Assignments: No late assignments will be accepted unless prior arrangements have been made with the instructor at least 48 hours before the assignment due date. Coursework Mark Appeals: All marks must be appealed within 7 days of the mark being posted. Attendance: We expect students attend all lectures and labs. It is entirely the students' responsibility to recover any information or announcements presented in lectures from which they were absent. Electronic devices in labs and lectures: No unauthorized audio or video recording of lectures is permitted. Electronic devices in midterms and exams: Calculators are only permitted for examinations and tests if explicitly authorized and the type of calculator permitted may be restricted. No other electronic devices (e.g. cell phones, pagers, PDA, etc.) may be used during examinations or tests unless explicitly authorized. Plagiarism: Submitted work may be checked using plagiarism detection software. Cheating, plagiarism and other forms of academic fraud are taken very seriously by both the University and the Department. You should consult the link given below for the UVic policy on academic integrity. Note that the university policy includes the statement that "A largely or fully plagiarized assignment should result in a grade of F for the course."

The Faculty of Engineering Standards for Professional Behaviour are at http://www.uvic.ca/shared/shared%5fengineering/docs/professional-behaviour.pdf U.Vic guidelines and policy concerning fraud and academic integrity are at http://web.uvic.ca/calendar/undergrad/info/regulations/academic-integrity.html U. Vic Privacy Policy: If any student has concerns about their private information being stored or accessed outside of Canada, they are required to inform the course instructor about their concerns before the end of second week of classes.

Equality

This course aims to provide equal opportunities and access for all students to enjoy the benefits and privileges of the class and its curriculum and to meet the syllabus requirements. Reasonable and appropriate accommodation will be made available to students with documented disabilities (physical, mental, learning) in order to give them the opportunity to successfully meet the essential requirements of the course. The accommodation will not alter academic standards or learning outcomes, although the student may be allowed to demonstrate knowledge and skills in a different way. It is not necessary for you to reveal your disability and/or confidential medical information to the course instructor. If you believe that you may require accommodation, the course instructor can provide you with information about confidential resources on campus that can assist you in arranging for appropriate accommodation. Alternatively, you may want to contact the Centre for Accessible Learning (formerly the Resource Centre for Students with a Disability) located in the Campus Services Building.

The University of Victoria is committed to promoting, providing, and protecting a positive, and supportive and safe learning and working environment for all its members.