CSC 4101 Programming Languages Fall 2014 Syllabus Gerald Baumgartner Course Summary Principles of programming language design specification of syntax and semantics underlying implementation of block structured languages dynamic memory allocation for strings lists and arrays imperative versus applicative programming logic programming modern programming languages Prerequisites CSC 3102 Advanced Data Structures and Algorithm Analysis Credit will not be given for both this course and CSC 7001 Office Hours Who Gerald Baumgartner Dipak Singh Where PFT 3119C Phone 578 2191 E Mail gb csc lsu edu dsingh8 lsu edu When TTh 1 00 2 30pm Other office hours by appointment Reading Michael Scott Programming Language Pragmatics 3rd ed Morgan Kaufmann Publishers 2009 Robert W Sebesta Concepts of Programming Languages 10th ed Addison Wesley 2009 optional Peter Norvig Teach Yourself Programming in Ten Years http norvig com 21 days html 2001 Guy L Steele Jr Growing a Language OOPSLA 98 ACM 1998 Henry G Baker I Have a Feeling We re Not in Emerald City Anymore ACM SIGPLAN Notices Vol 32 No 4 April 1997 Richard P Gabriel and Ron Goldman Mob Software The Erotic Life of Code OOPSLA 00 ACM 2000 CSC 4101 Mailing List Web page http www csc lsu edu gb csc4101 1 Important Dates Fall Holiday Thu Oct 2 Midterm Exam Tue Oct 14 10 30am 11 50am SC 14 conference Nov 18 20 Turkey Day Break Thu Nov 27 Final Exam Tue Dec 9 5 30pm 7 30pm Both exams are comprehensive Homeworks There will be five homework assignments which will be due at the beginning of class on the due date A penalty of 15 will be assessed for each day a homework is late up to a maximum of 30 Programming Assignments There will be three programming assignments which will be due at midnight 11 59pm of the due date The first two programming assignments will be in Java or in C The third one will be in Scheme There will also be small programming assignments such as 1 10 liners in Scheme ML or Prolog as part of homeworks A penalty of 10 will be assessed for each day a project is late up to a maximum of 30 after which it will not be accepted Grading The following grading scale will be used The homeworks all weigh equally The first two projects are worth 13 each while the third project is worth 10 Homework Projects Midterm Final 15 36 24 25 The course will be graded partly on a curve For this reason I will deduct points rather liberally and I will encourage the graders to do the same Don t be too upset if you don t get what you consider to be a high score When grading on a curve the absolute score is not that important To give you a feeling about where you are standing in class statistics about the scores will be provided periodically Topics The following list of topics is the ordering of subjects covered in this course The time spent on each subject will vary I don t know yet when the homework and project due dates will be So the following list of topics is only a rough outline 2 Topic Introduction Functional Programming Scheme OO Programming Syntax and Parsing OO Programming OO Programming Data Types OO Programming Types Scoping Subprograms and Parameter Passing Parameter Passing Subprogram Impl Subprogram Impl Exception Handling Functional Programming ML Logic Programming Prolog Due HW 1 HW 2 Project 1 HW 3 Midterm HW 4 Project 2 HW 5 Project 3 Due Dates and Grading The time allotted for each homework assignment will be made quite generous as such the penalty for turning in late is high 15 per day up to a maximum of 30 If you turn in a homework on a weekend write on the submission date and time and slide it under my door I often stop by my office on weekends Predating a late submission is considered a cheating offense On weekends submission by Saturday 5pm will incur a penalty of 15 submission by the next class period will incur a penalty of 30 Since the time needed for finishing a programming assignment is harder to estimate and to allow fixing severe bugs that show up close to the deadline programming assignments can be submitted up to three days after the official deadline For each day past the deadline a penalty of 10 percent will be incurred Programming assignments will be submitted electronically Projects will be due at midnight The submission facility will reject your submissions three days after the due date Without prior arrangements in case of extenuating circumstances submission of homeworks and projects past the late deadline is not allowed and such work will not be graded and you will receive no credit It is your responsibility to make sure that you have completed your work with enough time to submit your materials Grading disputes can be submitted in writing with accompanying documentation or in person during regular office hours It is course policy that whoever graded the work will be responsible for handling disputes In general I will grade the midterm exam and the final exam The graders will grade the homeworks and the programming assignments Grades become final one week after a homework project or exam is handed back This should leave ample time for resolving grading disputes Homework Standards All written work submitted must carry the student s name and must be reasonably neat and well organized Any work that cannot be read easily will score zero points A reasonable standard of English expression and grammar is also required The same requirements apply to exams Programming Standards The algorithm used must be essentially correct Obviously the program should compile and run Because of the complexity of some of the programs very little or no credit can be given for a program that doesn t run If a program dumps core or throws a runtime exception only partial credit will be given Since programming assignments might build on top of a previous project it is very important to get each submission to run without core dumps and to structure the program so it can be easily extended I expect your work to exhibit high standards of programming style and layout reflecting your expertise as a computer professional Poor style and documentation may results in points being deducted 3 Honesty I will treat you as professionals and you should plan on conducting yourself as such This course presents many important concepts you will need throughout your career as a computing professional so it is important that each student do all the assignments and projects and learn the material There will be several homework assignments and programming projects You are free
View Full Document
Unlocking...