View/Open

advertisement
CS 320 Programming Languages
Fall 2014
Credits: 3 units
Contact Hours: Tuesday/Thursday 1100-1215
Instructor: Patty Kraft
Office: GMCS 544
Email: pkraft@mail.sdsu.edu
Office Hours Days: M/T/W/TH
Office Hours: 1230 – 1345 (M/T/W/TH), 0930-1030 T, and by appointment
Course Materials
1.
Required text: Concepts of Programming Languages, 9th Edition, by Robert Sebesta. Addison-Wesley Press.
ISBN 9780136073475..
Course Information for CS 320
Description from the Official Course Catalog
Programming Language History, Syntax and Semantics, Lexical Analysis, Syntax Analysis, Names, Bindings,
Scopes, Data Types, Control Constructs, Function Invocation, Recursion, Functional Programming, and
details of specific programming languages.
Prerequisites: CS108 is a sufficient prerequisite; if you have already (or are concurrently) taking CS 237 (Assembly
Language), you will find that this will deepen your understanding.
Course Type: Upper division required course
Specific Goals for CS 320
Course-Level Student Learning Outcomes
The objectives of CS 320 (Programming Languages) are for students to:
1. Learn to recognize distinguishing programming language features.
2. Understand the importance of language design in program development.
3. Understand the process of breaking down source code into lexemes, tokens, and parse trees.
4. Understand and use basic UNIX commands, compilers, and file structure.
5. Be able to apply scoping rules to variables, functions, modules, and namespaces.
6. Understand object-oriented methodologies by use of public, private, protected, and friend
constructs.
7. Understand the concept of functional programming list processing through application of basic
methods.
8. Be able to code a program in a previously unused programming language by studying examples and
researching language constructs as needed.
Relationship to CS Program Course Outcomes
CS 320 addresses the following CS Program course outcomes:
a) An ability to apply knowledge of computing and mathematics appropriate to the program’s student
outcomes and to the discipline
b) An ability to analyze a problem, and identify and define the computing requirements appropriate to
its solution
c)
An ability to design, implement, and evaluate a computer-based system, process, component, or
program to meet desired needs
d) Recognition of the need for and an ability to engage in continuing professional development
e)
An ability to use current techniques, skills, and tools necessary for computing practice.
Topics Covered
The following topics are covered in CS 320:
1. Overview of programming language properties, categories, and history.
2. Introduction to UNIX, text editors, compiling, and running programs on the UNIX operating system.
3. Language syntax, semantics, syntactical analysis, and lexical analysis.
4. Naming, binding, and scope of variables.
5. Data types, arrays, and structures.
6. Function and module structure and invocation.
7. C programming language: input/output, static and dynamic allocation, pointers, arrays, structures;
debugging, compiling, and executing a program.
8. FORTRAN programming language: input/output, static and dynamic allocation, subprograms, syntax,
control structures, recursion; compiling, and executing a program.
9. Expressions and assignment statements.
10. Object-oriented objectives and properties: abstraction, encapsulation, polymorphism, and
inheritance.
11. C++ programming language: input/output, classes, objects, structures, arrays of objects.
12. Functional languages composition and LISP programming language.
Special Assistance
Special Assistance: If you are a student with a disability and believe you will need accommodations for this class, it
is your responsibility to contact Student Disability Services at (619) 594-6473. To avoid any delay in the receipt of
your accommodations, you should contact Student Disability Services as soon as possible. Please note that
accommodations are not retroactive, and that accommodations based upon disability cannot be provided until you
have presented your instructor with an accommodation letter from Student Disability Services. Your cooperation is
appreciated.
Course Structure and Conduct
Style of the Course: lecture, individual homework, and individual programming assignments
Technology Utilized in the Course: Blackboard, various IDEs, SDSU server rohan class accounts and development
environment, SSH connection utilities
Programming Assignments and Exams
Programming assignments: There will be 7-8 programming assignments and 3-4 homework assignments
throughout the semester. Programming work is to be done on an individual basis. All programming assignments
will be submitted online and a matching hard copy submitted in class. You are required to follow certain coding
guidelines which will be outlined in class and on assignments. Assignments turned in after the posted due date and
time will be counted late and assessed a late penalty.
Exams: There will be one midterm exam and a final exam. Make-up exams are not given. Unless a compelling
reason exists (to be determined by me), failure to appear for an exam at the indicated date and time will result in a
zero score. If you know in advance that you will miss an exam, see me about it in advance. Refer to
http://arweb.sdsu.edu/es/registrar/finalexams/14_fall.html and note now that the date of our final exam is
Tuesday, December 16, 2014, from 10:30am-12:30pm; don't make plans that conflict with the final. Note in
particular that the university policy prohibits taking the final early.
Course Assessment and Grading
Assignments will comprise 40% of your grade, the midterm will be 25% of your grade, and the final will be
worth 35% of your grade.
Excused Absence Make-up Policies: Unless a compelling reason exists (“compelling” will be determined by
me), failure to appear for an exam at the indicated date and time will result in a zero score.
Other Course Policies
1.
2.
Adding/Dropping Procedures: Students that do not show up the first week of class will be dropped at the
end of the first week. Students will be allowed to add the course based on space available, provided they
have attended all lectures from the first week of class. Last day for students to add or drop class:
9/8/2014.
Cheating/Plagiarism: You are free to discuss ideas and strategies for approaching problems with others,
but each student must complete his/her own work. Cheating and plagiarism WILL NOT BE TOLERATED. If
a student is found cheating or plagiarizing material written by someone else (including information posted
on websites), that student will fail this course and should expect to face disciplinary proceedings.
3.
Extra Credit Policy: If you are having problems with the assignments or tests, contact the instructor as
soon as possible. It will NOT be possible to earn extra credit to improve a poor grade at the end of the
semester. There may be opportunities for extra credit during the semester that are related to additional
programming assignments.
4.
Classroom Focus: If you MUST bring a cell phone or pager to class, set it to the vibrate mode and step out
of the room to take any necessary calls. PLEASE limit this to emergency/critical situations only.
Course Calendar
Approximate Due Dates for Major Assignments and Exams
Week
Date
1
26-Aug
Course Introduction.
Chapter 1 & 2 Sebesta
28-Aug
Overview of Programming Languages
topics.
Sections 1 - 6 "Beej" online
2-Sep
Syntax & Semantics / Unix
Chapter 3 Sebesta
4-Sep
Syntax & Semantics
Sections 7 - 10 "Beej" online
Homework 1 due
Lab 0 due
2
3
4
5
6
Topic
Reading
9-Sep
Lexical & Syntax analysis / C language
Chapter 4 Sebesta
Lexical & Syntax analysis /C language
Sections 10 - 12"Beej" online
16-Sep
C language, file i/o, argc/argv
Sections 13 - 15"Beej" online
Lab 1 due 9/15 11:59pm
18-Sep
C language
Stanford Lexical Analysis PDF
Quiz 2
23-Sep
C language, gdb, addressing
25-Sep
C language: pointers, arrays, arithmetic,
dyanamic allocation
Read Fortran tutorial
Lab 2 due 9/25 SOC
30-Sep
Names, binding, scope
FORTRAN
FORTRAN
Chapter 5 Sebesta
Read class notes
Write skeleton Fortran program
FORTRAN
Data types
Expressions & Assignments Statements
FORTRAN
Chapters 6 & 7 Sebesta
Scope in Fortran
Arrays in Fortran
7
7-Oct
8
14-Oct
FORTRAN
16-Oct
Midterm exam
C++ Tutorial
21-Oct
C++ Language
C++ Classes
23-Oct
C++ Language
Intro to OOP
28-Oct
C++ Language
Using a makefile Program 5
30-Oct
C++ Language
Format output
Abstract Data Types & Encapsulation
C++ Language
Chapters 11 & 12 Sebesta
9-Oct
10
11
Quiz 1 (Introduction)
11-Sep
2-Oct
9
Assignment
4-Nov
Homework 2 due
Lab 3 due
Lab 4 due
Lab 5 due
6-Nov
12
13
14
15
16
17
Polymorphism
Homework 3 due
11-Nov
Object-Oriented Programming
C++ Language
No class: Veterans Day
13-Nov
C++ Language
Inheritance
Lab 5 due
18-Nov
Subprograms / C++ Language
Chapter 9 Sebesta
OperatorOverloading.pdf
20-Nov
Schedule slip day / Scripting Language
25-Nov
Functional languages
27-Nov
No class: Thanksgiving Day
Chapter 15 Sebesta
Lab 6 due
Homework 4 due
2-Dec
Functional language
Scheme1
4-Dec
Functional language
Scheme exercises
9-Dec
Functional language
11-Dec
Functional language
16-Dec
Final exam 1030am – 12:30pm
Lab 7 due
Download