Overview of different paradigms of programming languages. Detailed studies in data-driven, object-oriented, functional, and logic programming. Theoretical aspects of programming languages including basic language translation, virtual machines, abstraction mechanisms, declarations and types.
Note that all the case studies involve translating and executing a high-level specification, written as a variant of an attributed EBNF grammar. Hence, they all contribute to bc
ACM curriculum:
1 core
2 elective A
LCSEE computer science program objectives:
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.
You MUST be prepared to dedicate AT LEAST 5-8 working hours a week to this class (excluding the time spent in the classroom). 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). Laboratory instruction is not included in CS 310. You will be given class accounts on CS Department machines and all assignments will have to be submitted and run there. Please note that a Linux server can be accessed from any PC using a secure connection service, such as SSH (explanation to be provided in class).
Late marks: see point (3), above.
See also, below, for how to lose marks due to poor attendance or lateness.
For special consideration on the above, either:
Final marks:
Students will work in groups of two.
After project one, at the discretion of the lecturer, students may choose (or be told) to opt out of the group projects. If so:
For a list of essay topics, see here.
Students are expected to regularly attend lectures. After three noted absences, students will lose two points per absence. After three noted lated arrivals, students will lose one point per late arrival. If you have another commitment that requires you to be consistently late, you should drop the class.
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.
West Virginia University is committed to social justice. I concur with that commitment and expect to foster a nurturing learning environment based upon open communication, mutual respect, and non-discrimination. Our University does not discriminate on the basis of race, sex, age, disability, veteran status, religion, sexual orientation, color or national origin. Any suggestions as to how to further such a positive and open environment in this class will be appreciated and given serious consideration.
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 Disability Services (293-6700).
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 at http://www.arc.wvu.edu/admissions/integrity.html. 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.