[Skip Navigation] [CSUSB] / [CNS] / [CSE] / [R J Botting] /[CS320 Course Materials] /syllabus.html [syllabus.txt(Text)] [Search ]
Tue Mar 26 11:38:57 PDT 2013
[Schedule] [Syllabi] [Text] [Labs] [Projects] [Resources] [Grading] [Contact]
Notes: [01] [02] [03] [04] [05] [06] [07] [08] [09] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]
Opening the PDF files on this page may require you to download Adobe Reader or an equivalent viewer (GhostScript).


    CSE320 Programming Languages Syllabus

      10 Reasons People Take this Class


      Ideally you have got a C or better in CS202 or an equivalent class. You may find this class very hard to do unless you have done two quarters or one semester of programming in a high level structured or object-oriented language like Ada, C, C++, Java, or Pascal. The labs are easier if you already use the Linux OS.


      You will acquire knowledge of procedural, functional, logic and object-oriented programming languages. In addition, you will learn about markup, meta, and modeling languages. You should learn about the fundamental concepts of lexical and syntactic structure, semantics and logic behind formal languages in general, and programming languages in particular. Finally you will have a chance to practice analyzing problems and designing solutions using the UML in a team -- how much softwaredevelopment is done.


      Reading! Reading! Plus writing (in English). Writing EBNF and drawing UML. The work and the final depend on learning what is in the text, on the web, covered in class, experimented on in Labs, and in the handouts.


      We will study all the chapters in the [ Required Text ] book plus handouts and pages on the WWW.

      (Required Text): You need the latest edition of Robert W Sebesta's book


      1. Robert W. Sebesta, University of Colorado, Colorado Springs
      2. Concepts of Programming Languages, 10/E
      3. ISBN-10: 0131395319 ISBN-13: 9780131395312
      4. Publisher: Addison-Wesley Copyright: 2013
      5. Format: Cloth; 816 pp
      6. Published: 01/06/2012
      7. URL [ 9780131395312.page ]
      This is in the bookstore. Avoid editions before the 10th, there have been significant changes. In the past, there was a cheaper paperback version that was not sold in bookstores in the USA. It had the same content but was on cheap paper and in black-and-white.

      As soon as possible, you must find the CSci320 page: [ http://cse.csusb.edu/dick/cs320/ ] Visit this four or more times each week.


      A maximum of 300 points are assigned to continuous assessment during the quarter and a maximum of 200 points to the comprehensive final examination. The final is critical in determining yor grade. The rest of the coursework is designed to prepare you for the final. Continuous assessment includes: participating in classes (40 points), assigned work (38 points), project work (45 points) and laboratory work (200 points). This includes 19 points of padding to cover undocumented emergencies before the final. Bonus points make up for points lost during the course not in the final.

      Notice: Because this course has no quizzes or midterms it is easy to get a good grade in the course work and yet not to be ready for the final and so get a bad overall grade. You need to review the work we do in the course to prepare for the final. This includes your lab pages, the exercise pages, your assigned work, and you project work.

      Assigned Work: 38 points

      Find and study the assigned reading (see schedule and web pages). At the start of each class (except the first and last) you will hand in some review questions with answers from the ends of the chapters and/or handouts assigned for that class. You may use these questions+answers as a memory aid in the final examination. The first two will be corrected, graded (1 point each, 2 points max), and handed back as fast as I can do it.

      It helps if you form a study group to do the assigned work. If you do this, each member of the group must hand in answers to different questions. Once corrected and graded you can merge them to create the notes you use in the final.

      Class Work: 40 points

      At the start of each session you need to be present and ready to do exercises based on the assigned reading. You earn one point for being present and active at the start and another for staying active until dismissed. Class work includes practicing final questions.

      Lab work: 200 points

      There is one lab for each class. Each lab lasts 50 minutes. Each lab is worth 10 points. The precise work will be published on the web shortly before the start of class on that day. In each lab you will be: (1) viewing and downloading relevant pages and files. (2) Compiling, testing, and fixing code in C++, C, Java, LISP, Prolog, etc. (3) drawing UML diagrams, (4) publishing your laboratory report in HTML on our student web site.

      The work will normally be graded at the end of the lab session by the teacher. However, some students have scheduling conflicts and must have a written agreement of when and how they will submit their work for grading. It is, also, common for the initial set up of student web sites to be less than 100% perfect, making it difficult to start the work. If our systems or your account are not working I stretch due dates/times to include the downtime.

      We tend to grade lab pages holistically based on completeness, content, and correctness at the end of the lab period (normally). I expect to see 3 links to examples of code and some comments on each one. Points will be lost for unreadable pages, bad English, bad links, bad code, or bad HTML. Notice: You will have to work hard to avoid simple mistakes that lose points. Check all links! Spell check your pages. Gratuitous movies, and audio will add nothing.

      Since the WWW is public, your lab work may be shared with the class as part of a lecture/discussion. They may also be used in accreditation plus open houses, and other department events.

      Project: 45 points.

      You will complete an Object-Oriented Analysis and Design project. This means (1) describing, in English, a new language, (2) giving examples of code in the language, (3) describing the syntax using EBNF/XBNF, and (4) drawing diagrams in the UML. You will be working in a team. No debugging should be needed. You will be given a draft specification for a programming language.

      In the 4th class session I will be handing out some notes on the notation you will be using plus a rough draft of a Language Reference Manual (LRM) for a programming language. Your task is to improve it. At the start of the 7th class hand in a first iteration of phase 1. Hand in an UML model of the language as given plus some proposed improvements to the documentation and/or the language including a new name, examples, and comments (10 points). You will probably resubmit this at the start of the 12th class of the quarter. At the start of the 16th class you hand in a revised set of BNF and UML diagrams for your improved language (10 points). During class 20 your group will present the changes you have made using BNF and UML (10 points). You will hand in hard copy of the LRM to me before the end of the last office hour before the final exam for this class. The final LRM must have: syntax in BNF, semantics in the UML, commentary, and examples ( 15 points). All reports & presentations should describe the language in English and give examples. Some must also define the syntax and semantics using EBNF/XBNF and UML. The table shows the points given to the different parts during the project.
      Phase 13*3*04
      Phase 22*2*33
      Present 2*2*3*3*

      (Close Table)
      * new ideas only.

      To share in the points earned by your team in the presentations you must take part in some obvious way. Note: Questions in the Final examination will also test to see if you participated in your team's project.

      Ultimate Deadline

      All work has to be shown or handed in before the 12midnight Friday in the finals week.

      Comprehensive Final 200 points

      I use the class work, review questions, lab work, and projects as a source for creating questions in the final. There will be long-answer questions based on each chapter plus class work, lab work, and projects. You can get 100% by giving 10 perfect answers. You can attempt no more than 12 answers. You may use copies of assigned work but no handouts, class notes, projects, books, wireless devices, or computers. I recycle parts of final questions into the class work. Bring about 20 pages of blank paper to write your answers on. [ template.pdf ]

      Repeating Students

      If you are repeating this class, come and talk to me (before the last day to drop!) about carrying over any scores to this quarter.

      Distance Learning

      If you are unable to attend a class session, use the [Contact] link at the top of my CSE320 pages to send me the assigned work and answers to at least 3 of the class work questions linked to the web page for the session. This should be sent before the start of the next class.


      The following definitions use XBNF.
    1. BNF::="Backus-Naur Form", expresses syntax and grammar developed by Backus and Naur.
    2. EBNF::="Extended " BNF.
    3. HTML::= "HyperText Markup Language", used on the WWW.
    4. HTML_page::= "<HTML>" head body. Details on head and body in a later handout.
    5. Java::="An " OO " Language from Sun/Oracle".
    6. LISP::= "LISt Processing Language".
    7. LRM::="Language Reference Manual".
    8. OO::="Object-Oriented".
    9. OOAD::=OO "Analysis and Design".
    10. Prolog::="Programming in Logic".
    11. UML::="Unified Modeling Language".
    12. URL::=Universal_Resource_Locator,
    13. Universal_Resource_Locator::= protocol ":" location,
    14. protocol::= "http" | "ftp" | "mailto" | ... ,
    15. location::= O( "//" host) O(pathname).
    16. WWW::="World Wide Web".
    17. XBNF::="eXtreme" BNF, developed by the teacher from EBNF. Details in a later handout.

    . . . . . . . . . ( end of section CSE320 Programming Languages Syllabus) <<Contents | End>>

    Preparation for the Next Class

    1. Study the schedule and syllabus. Can you spot any ambiguities or errors? Program your PDA! It can be embarrassing to be out of step in this class. It can also lose points.

    2. Read and laugh at the "Consumers Guide to Programming Languages" in "Lab 01" below.

    3. Study chapter 1 the text book.

    4. Do the Review Questions from the end of chapter 1 (pages 33-34). Ignore the Problem Set.

    5. Prepare readable written questions+answers to 2 or more Review Questions . Include the question and the answer.

    6. Bring your own written questions+answers to the next class. I give 1 point per question+answer up to a maximum of 2 points. Your graded and corrected questions and answers can be used in the final.

    . . . . . . . . . ( end of section Preparation for the Next Class) <<Contents | End>>

    Lab 01


      1. To have logged in and used our Linux Lab computers.
      2. To have found and explored the CSE320 web site. [ http://cse.csusb.edu/dick/cs320/ ]


      Normal Scenario

      1. Log in as usual. Start Firefox or Konqueror. Input this URL in the location box: [ http://cse.csusb.edu/dick/cs320/ ]
      2. Try most of the links at the top of the page.... where do they go?
      3. Try the Search engine. Can you find "Lab 01"?
      4. Visit the Computer Science Club [ http://cse.csusb.edu/resources/club/ ] and [ csec_sb ] it's Google-group.
      5. Follow this link [ consumers.html ] to some joke definitions of languages and print out copies to read later.
      6. Check out the preparation for the next class [ 02.html ]

      Due At the end of the laboratory period. Grading: D=worked hard but got nowhere(7/10),..., A=100% successful completion (10/10).

      Alternative Scenarios

        6a If you have some time spare:

        Go to this page [ lab/01.cpp ] and a download a copy (File.... Save as.... Source). Compile and run it.

        1a If you don't have an account

        1. Fill in the form asking for one.
        2. In the lab, sit with someone who does have an account.
        3. Learn by watching them, asking questions, and taking notes. You may need to study the recommended UNIX books for CS201 or CS202.
        4. Wait for your account to be created (typically 48 hours) and then do the lab.
        5. Show me when done, to get the points.

        1b If your CSCI account doesn't work

        1. Fill in the form reporting the problem and hand it to the technicians or EMail bwang@csusb.edu (Birdie).
        2. Tell me!
        3. Show me when you've got on line and done the lab, to get the points.

      . . . . . . . . . ( end of section Alternative Scenarios) <<Contents | End>>

    . . . . . . . . . ( end of section Lab 01) <<Contents | End>>

( End of document ) <<Contents | Top