Académique Documents
Professionnel Documents
Culture Documents
Course Syllabus
Instructor
Richard LeBlanc
Title
Office Phone
206-296-5511
ENGR 527
Office Hours
leblanc@seattleu.edu (mailto:leblanc@seattleu.edu)
Location
ADMN 223
Times
Start Date
Course Credits
Catalog description: Common features, organization and tradeoffs of modern programming languages including semantics, garbage collection and memory management, and
type systems. Theoretical foundations of languages and computation including regular expressions, language classification, grammars and finite state automaton. Programming using
scripting languages and functional languages.
Course Prerequisites: CPSC 2430 and either MATH 3000 or CPSC 2600.
Required Text
Formal Language: A Practical Introduction (e-book), Adam Brooks Webber, Franklin Beedle and Associates, https://fbeedle.com/content/formal-language-practical-introduction-0
(https://fbeedle.com/content/formal-language-practical-introduction-0)
Recommended Texts
Programming Language Pragmatics, 3rd edition, by Michael L. Scott, Morgan Kaufmann Publishers, ISBN: 978-0123745149
Learning Python, 4th edition, by Mark Lutz, O'Reilly, ISBN: 978-0596158064
Learning outcomes
The course has several interwoven threads of learning and skill development. You will
learn about the formal concepts underlying the basic idea of computation and how they influence programming languages and software development,
learn about the history and relationships among programming languages and their features, and
learn to write programs in Python and in a functional language, F#.
On successful completion of this course, you will be able to
1. Identify key developments in the development of programming languages.
2. Work with finite state machines and regular expressions, demonstrating an understanding of their relationships and how they apply in modern programming languages.
3. Manipulate context-free grammars for programming language features and explain their role in the implementation of compilers and interpreters.
4. Write and debug programs in Python, using a programming style appropriate to the language.
5. Write and debug programs in F#, using a programming style appropriate to the language.
6. Illustrate the primary differences between functional and imperative programming
7. Describe key design choices within various programming languages in regard to language concepts such as names, scope and binding; type systems; and control flow features.
8. Describe a Turing Machine and explain how it relates to the notion of computability.
Grading Policy
Homework Assignments
10%
Programs
30%
Quizzes
10%
Midterm Exam
20%
Final Exam
30%
Attendance Policy
Absences
Because there will be much student participation and several unannounced quizzes, it is important that students attend as many classes as possible. You are not required to attend class
but any absence will likely negatively affect your grade.
Tardiness
You are expected to be in your seat at 12:30 PM. Because of the configuration of the room, late arrivals are disruptive to other students. We occasionally will have a short quiz that will
start promptly at 12:30 and must be handed in within 10 or so minutes, as announced by the instructor.
Date
Details
due by 11:59pm
12am
event_id=2169746&include_contexts=course_1552914#7b2273686f77223a2267726f75705f636f757273655f31353532393134227d)
Fri Apr 10, 2015
12am
event_id=2169747&include_contexts=course_1552914#7b2273686f77223a2267726f75705f636f757273655f31353532393134227d)
Mon May 11, 2015
due by 11:59pm
due by 2pm