In this course fundamental aspects of high-level programming languages, including data objects, operations, sequence control, data control, storage management, syntax, and semantics are presented. Also, the students are exposed to different language paradigms (e.g. imperative, parallel, functional, rule-based (logic), and object-oriented languages). The course gives hands on experience and allows students to develop moderate-level programs in various programming languages, one for each paradigm.
3 hours per week, 3 credits
CCOM 3034 - Data Structures
Class will meet Monday and Wednesday, 1:00-2:20 PM in A-143.
We wil be utilizing many of the resources provided by our textbook author, Dr. Shrinam Krishnamurthi, for his PL Online course. In particular, he has videotaped all his lectures and made them available online. See the table below for the schedule of lectures and topics, we will be covering the topics in roughly chronological order, with a few exceptions.
Lectures | Topic | Reading | Objective |
---|---|---|---|
Lecture 0 | Learn racket | Work your way through the Quick Introduction. Do sections 1-9; you can (and probably should) skip 10 and 11. Next, the Racket guide. Go through sections 1-4. (Not very interesting, but the more you know about the language before you begin, the better.) | 2, 5, 6 |
Lecture 1 | Role of programming languages | 2, 3, 4 | |
Lecture 2 | Language description: syntactic structure, interpretation | Chapter 2, Chapter 3 Chapter 4 | 2, 3, 7 |
Lecture 3 | Elements of functional programming | Chapter 5 | 3 |
Lecture 2012-09-12 | Environments: dynamic and lexical scope | Chapter 6 | 3, 4 |
Lecture 2012-09-14 | Lambda and closures | Chapter 7 | 3, 4 |
Lecture 2012-09-17 | Structures and variables, recursion | Chapter 8, Chapter 9 | 2, 3, 4, 7 |
Lecture 2012-09-21, Lecture 2012-09-24 | Objects! | Chapter 10 | 2, 3, 4, 5 ,7 |
Lecture 2012-10-05 | Object-oriented programming | Section 10.3 | 2, 3, 4, 5, 6 |
Lecture 2012-09-26, Lecture 2012-09-28 | Automatic memory management | Chapter 11 | 3, 7, 8 |
Lecture 2012-10-01 | Representing data and functions | Chapter 12 | 3, 7 |
Lecture 2012-10-03 | Syntactic macros | Chapter 13 | 3 |
Lecture 2012-10-10, Lecture 2012-10-12, Lecture 2012-10-15 Lecture 2012-10-19 | Concurrent programming | Chapter 14 | 3, 4, 6 |
Lecture 2012-10-22, Lecture 2012-10-24, Lecture 2012-10-26 | Program invariants: static typing | Chapter 15 (Sections 15.1-15.2) | 3 |
Lecture 2012-10-31 | Polymorphic functions | Section 15.3.1 | 2, 3, 4, 5, 6, 7 |
Lecture 2012-11-02 (Starting at minute 12), Lecture 2012-11-05 | Type inference | Section 15.3.2 | 2, 3, 7 |
Lecture 2012-11-12 | Assertions and contracts and blame. | Chapter 16 | 3, 4, 5, 6 |
The Lambda Lecture | It's lambdas all the way down. | 2, 3, 4, 5, 6, 7 |
The professor will discuss each topic, students will complete a practical exercise for each topic discussed in class.
In addition, students must prepare an oral report on a programming language (Objective 1), and read a research paper (Objective 9). The professor will provide a list of papers and pointers to lists of papers in the next section, and students will select a programming language and paper, and present to the class.
This website with all the course lectures and supplemental materials and references. Additional material is available on the CCOM Moodle:
http://moodle.ccom.uprrp.edu/course/view.php?id=90
You will need version 5.3 or newer of DrRacket (not yet packaged in Ubuntu), and the plai-typed language. x86_64 Ubuntu users can install the 32bit ubuntu flavor and then install ia32-libs, or install the 64bit Debian version.
This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email team@piazza.com.
Find our class page at: https://piazza.com/uprrp/winter2013/ccom4029/home.
One of the course objectives (#9) is to read a seminal or current programming language research paper (and present to the class). Students can refer to a list of suggested readings, or may select a paper on their own.
"Programming Languages: Application and Interpretation" Second edition. by Shriram Krishnamurthi.
The author has graciously permitted me to make a cached copy of the textbook, in case of problems with the Internet.
Students with disabilities properly registered with the Office of Affairs for Persons with Disabilities (Oficina de Asuntos para la Persona con Impedimento (O.A.P.I.)) should notify the professor at the start of the semester. The professor will make reasonable accommodations to support the student, in consultation with OAPI.
Most recent change: 2013/3/29 at 13:28
Generated with GTML