ClassInfo

CSC 447 Concepts of Programming Languages

Ljubomir Perkovic

Office: CDM 713
Fall 2013-2014
Class number: 10940
Section number: 701
Th 5:45PM - 9:00PM
CDM 00222 Loop Campus

Summary

Programming paradigms and language concepts: functional programming; comparison of object-oriented languages; type systems for
functional and object-oriented languages; runtime systems for functional and object-oriented languages. A variety of programming
languages will be used to illustrate concepts, e.g., JavaScript, Ruby, Scala, Scheme.



Texts

Concepts in Programming Languages by John Mitchell. Cambridge University Press, 2003. ISBN: 0521780985

Programming in Scala: A Comprehensive Step-by-step Guide, 2nd edition by Odersky, Spoon, and Venners. Artima Press, 2010. ISBN: 0981531601.

The second book is available in paperback and/or as a PDF ebook (for purchase).? If you wish to buy the PDF ebook or you want to buy the paperback and PDF ebook combo, visit the Artima Press website. The second edition of is the current version, but the first version will suffice for the course and is freely available at http://www.artima.com/pins1ed/.



Grading

The course grade will be apportioned as follows:
homeworks 30%
midterm exam 30%
final exam 40%
There will be a total of 6 homeworks, but only your best 5 count toward the final grade, so you may miss one homework with no penalty. Each homework assignment will consist of several short programming assignments and/or conceptual problems. All homework must be submitted by the deadline and no later. Any homework not handed in by the deadline will receive 0 points, without any exceptions.

To do well in this course, you should follow the class regularly, participate in the discussion, read the chapters in the textbooks each week as indicated in the reading schedule, start working on the homework early, and talk to me promptly if you have any problems. The answers to the homework and exam questions, as well as your code, should be written in a way that is rigorous, clear and concise.



Prerequisites

You must have taken CSC 403 (or 383 or 393 or an equivalent data structures course) and CSC 407 (or 374 or an equivalent systems course). I will assume that:
  • You are comfortable programming in Java and use a reasonable programming style (i.e. your code is easy to read and concise).
  • You are able to learn new programming languages and tools without the level of guidance typical in introductory level classes.
  • You have a thorough knowledge of recursion and classical data structures such as arrays, linked lists, trees, etc.
  • You have a solid understanding of fundamental systems concepts such as processes, virtual memory, the program stack, dynamic memory allocation, file I/O.
  • You are able to actively engage the material on your own: you will be expected to experiment and do self-tests, modify code, and run it.


School policies:

Changes to Syllabus

This syllabus is subject to change as necessary during the quarter. If a change occurs, it will be thoroughly addressed during class, posted under Announcements in D2L and sent via email.

Online Course Evaluations

Evaluations are a way for students to provide valuable feedback regarding their instructor and the course. Detailed feedback will enable the instructor to continuously tailor teaching methods and course content to meet the learning goals of the course and the academic needs of the students. They are a requirement of the course and are key to continue to provide you with the highest quality of teaching. The evaluations are anonymous; the instructor and administration do not track who entered what responses. A program is used to check if the student completed the evaluations, but the evaluation is completely separate from the student’s identity. Since 100% participation is our goal, students are sent periodic reminders over three weeks. Students do not receive reminders once they complete the evaluation. Students complete the evaluation online in CampusConnect.

Academic Integrity and Plagiarism

This course will be subject to the university's academic integrity policy. More information can be found at http://academicintegrity.depaul.edu/ If you have any questions be sure to consult with your professor.

All students are expected to abide by the University's Academic Integrity Policy which prohibits cheating and other misconduct in student coursework. Publicly sharing or posting online any prior or current materials from this course (including exam questions or answers), is considered to be providing unauthorized assistance prohibited by the policy. Both students who share/post and students who access or use such materials are considered to be cheating under the Policy and will be subject to sanctions for violations of Academic Integrity.

Academic Policies

All students are required to manage their class schedules each term in accordance with the deadlines for enrolling and withdrawing as indicated in the University Academic Calendar. Information on enrollment, withdrawal, grading and incompletes can be found at http://www.cdm.depaul.edu/Current%20Students/Pages/PoliciesandProcedures.aspx.

Students with Disabilities

Students who feel they may need an accommodation based on the impact of a disability should contact the instructor privately to discuss their specific needs. All discussions will remain confidential.
To ensure that you receive the most appropriate accommodation based on your needs, contact the instructor as early as possible in the quarter (preferably within the first week of class), and make sure that you have contacted the Center for Students with Disabilities (CSD) at:
Lewis Center 1420, 25 East Jackson Blvd.
Phone number: (312)362-8002
Fax: (312)362-6544
TTY: (773)325.7296