Download presentation
Presentation is loading. Please wait.
Published byRosanna Lyons Modified over 8 years ago
1
CS152 Programming Paradigms Thaddeus Aid Department of Computer Science San Jose State University Spring 2016 Creative Commons Attribution-ShareAlike 4.0 International License 1
2
Green Sheet The Green Sheet is/will be available at: http://www.sjsu.edu/cs/practicalities/syllabi/spring-2016/index.html http://www.sjsu.edu/cs/practicalities/syllabi/spring-2016/index.html It will also be available in the Canvas course area. Additionally it will live at http://www.cs.sjsu.edu/~aid/greensheetshttp://www.cs.sjsu.edu/~aid/greensheets Please take a look at it Creative Commons Attribution-ShareAlike 4.0 International License2
3
Contacting me Email: Thaddeus.aid@sjsu.edu – This is my preferred method.Thaddeus.aid@sjsu.edu Skype: Thaddeus.aid – Make sure to mention that you are a student Office Hours: Saturday 16:00 – 17:30 in DH282 Creative Commons Attribution-ShareAlike 4.0 International License 3
4
Course Description Programming language syntax and semantics. Data types and type checking. Scope, bindings, and environments. Functional and logic programming paradigms, and comparison to other paradigms. Extensive coverage of a functional language. Creative Commons Attribution-ShareAlike 4.0 International License 4
5
Learning Outcomes 1. CLO 1 Have a basic knowledge of the history of programming languages. 2. CLO 2 Have a basic knowledge of the procedural, object-oriented, functional, and logic programming paradigms. 3. CLO 3 Understand the roles of interpreters, compilers, and virtual machines. 4. CLO 4 Critique the design of a programming language. 5. CLO 5 Read and produce context-free grammars. 6. CLO 6 Write recursive-descent parsers for simple languages, by hand or with a parser generator. 7. CLO 7 Understand variable scoping and lifetimes. 8. CLO 8 Write interpreters for simple languages that involve arithmetic expressions, bindings of values to names, and function calls. 9. CLO 9 Understand type systems. 10. CLO 10 Understand the implementation of procedure calls and stack frames. 11. CLO 11 Produce programs in a functional programming language in excess of 200 LOC Creative Commons Attribution-ShareAlike 4.0 International License 5
6
Text Book None! We will be using online material that will be assigned as required Creative Commons Attribution-ShareAlike 4.0 International License 6
7
Assignments and Exams There will be 4 homework assignments 3 will be worth 10% of your grade each 1 will be worth 20% of your grade There will be 1 Midterm exam worth 20% of your grade There will be 1 Final Exam worth 30% of your grade Creative Commons Attribution-ShareAlike 4.0 International License 7
8
How I Grade There are 100 points available in this course: For Homework: The 10% Homework Assignments are worth 10 points (kind of obvious) 7 Points – Content 1 Point – Style 1 Point – Clarity 1 Point – Formatting Creative Commons Attribution-ShareAlike 4.0 International License 8
9
Grading (Cont.) The 20% Homework is worth 20 points (again obvious) You will be writing an interpreter in Clojure. Your goal will be to “create” a simple language and then use Clojure to translate it into computer usable terms. 1 point – It works 15 points – Your ideas on how to implement it and your choice of algorithms 1 point – Style 1 point – Clarity 1 point – Formatting Creative Commons Attribution-ShareAlike 4.0 International License 9
10
Grading (Cont. 3) Midterm – 20 points Anything that I mention in class is fair game for being put into the midterm If I don’t mention it in class I will not put it in the midterm Hopefully (all things being equal) I will provide 4 sections of questions each worth 10 points. You will choose 2 and answer them You do not get extra credit for answering 3 or 4 If you answer more than 2 I will take the scores from the 2 that you score highest in The Midterm will last 2 hours and 15 minutes You can leave early if you finish early, just be really quiet Creative Commons Attribution-ShareAlike 4.0 International License 10
11
Grading (Cont. 4) Final – 30 Points Basically the same sort of thing as the midterm, but with the totality of the class available for questions. I still won’t put anything on it that I don’t cover in class. 2 hours and 15 minutes You can leave early if you are really quiet Hopefully, like the midterm, I will provide 4 sections of questions worth 15 points each and you choose the two you like best. If you answer more than two sections you will be scored for your highest two scores. Creative Commons Attribution-ShareAlike 4.0 International License 11
12
Final Grade I will simply total the points you earn This means right now that you have an A+, keep it up!!!!! The letter grades are as follows: 90% or more A 80-89% B 70-79% C 60-69% D 59% or less F The + or – If the unit digit is 7-9 you get a + If the unit digit is a 0-2 you get a – That means a score of 82 is a B- Creative Commons Attribution-ShareAlike 4.0 International License 12
13
Extra Credit I have no plans for extra credit. That being said, I want you to succeed. If you put in the work, you will get a good grade. Creative Commons Attribution-ShareAlike 4.0 International License 13
14
Getting your work back I hope to have your homework back to you within 2 weeks. You won’t get your midterms back but we will go over the questions. I will endeavor to have them graded within 2 weeks You also won’t get your finals back. These will be graded and your final grade posted at the normal time Creative Commons Attribution-ShareAlike 4.0 International License 14
15
Expectations of You (The Student) Be here on time If you are more than 10 minutes late I reserve the right to refuse entry to the class until the break time. You may join the class after the break. If you are late, do not make a disturbance when you enter the class. If you are going to be late, let me know and I can work around it. SJSU guidelines say that you should be spending about 9 hours a week on this course. I will endeavor to keep things to under that time. I know that everyone has other responsibilities and need to maintain social connections or go insane. Creative Commons Attribution-ShareAlike 4.0 International License 15
16
Expectations of You (The Student) Late Work In general, I don’t accept late work unless you contact me prior to the deadline Contact me earlier rather than later Submission of Work The dates are listed in the Green Sheet (subject to change) All submissions are to be done by email (send to Thaddeus.aid@sjsu.edu)Thaddeus.aid@sjsu.edu You must put your name in the file and in the file name The file name should be something like cs152-firstname-lastname-assignment1.doc If you have multiple files please zip them Creative Commons Attribution-ShareAlike 4.0 International License 16
17
Expectations of You (The Student) Classroom Behavior We are all adults that are here because we want to be. You are paying a lot of money to be here! So is everyone else! As such, we will promote a friendly, helpful atmosphere. All things like racism, homophobia, sexism, transphobia, etc are strictly forbidden. Class participation and questions are encouraged, I particularly like it when people stump me. It makes me think and learn something new. Creative Commons Attribution-ShareAlike 4.0 International License 17
18
Expectations of Me (The Teacher) I will be on time. If I am not on time I will email everyone If I am ill I will email everyone I will do everything in my power to enable you to learn and get a good mark in this course. I will be available as much as possible to answer questions on Canvas, by email, or Skype. Creative Commons Attribution-ShareAlike 4.0 International License 18
19
Expectations of Me (The Teacher) This is my first term at SJSU as well as teaching this course! I am learning how to do this as well! I WILL make mistakes! I WILL do my best to fix them! Give me feedback! I live for feedback! If you like something, say so If you don’t, say so anyway Creative Commons Attribution-ShareAlike 4.0 International License 19
20
Recording and Sharing Course Information All my lecture slides are licensed under the Creative Commons Attribution- ShareAlike 4.0 International License Feel free to give a copy to everyone you know Feel free to record my lectures However, as derivative works of my lecture notes they are also bound under the same license. So feel free to give a copy to everyone! (Also if it is a good copy, I want a copy to release on my YouTube page). My questions/exams are NOT to be shared. Plagiarism will get you kicked off my course and reported to the appropriate people. Citation is of course not plagiarism ;) If you work as a group, you must tell me so and tell me the names of everyone that contributed to your work. Creative Commons Attribution-ShareAlike 4.0 International License 20
21
Disabilities If you have a disability or think you have a disability The wonderful and helpful people at the Accessibility Education Center will help you out and let me know what I need to do in order to help you learn You are NOT required to tell me. You can tell me if you wish and I will do my best to adjust my teaching style to accommodate you. Creative Commons Attribution-ShareAlike 4.0 International License 21
22
Topics to be Covered Warning: This is Subject to Change!!! Intro to Programming Paradigms (This lecture) A Brief History of Computers and Programming Procedural Programming Object Oriented Programming Functional Programming Introduction to Clojure Logic Programming Introduction to Prolog (probably SWI-Prolog, to be determined) Creative Commons Attribution-ShareAlike 4.0 International License 22
23
Topics to be covered (Cont.) Interpreters, Compilers, and Virtual Machines Context Free Grammars Data Types Mutability Static vs Dynamic Programming REPL Interpreting Commands Inter-Process Communication Creative Commons Attribution-ShareAlike 4.0 International License 23
24
Topics to be Covered (Cont.) Inter-system Process Communication Parallel and Concurrent Programming Creative Commons Attribution-ShareAlike 4.0 International License 24
25
Homework 1 - Essay Explain why there are different paradigms in programming and what different paradigms excel at and what they struggle with. Contrast paradigms 2500 words Harvard style citations are required (check out RefWorks, or other citation software) – they are also not part of your word count. Of course spelling and grammar count. Creative Commons Attribution-ShareAlike 4.0 International License 25
26
See you after the break 15 minutes! Creative Commons Attribution-ShareAlike 4.0 International License 26
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.