Instructor: Dr.
Shieu-Hong Lin
Email: ![]()
Course objectives:
1. Develop
the foundational understanding of key concepts such as context-free grammars,
regular expressions, lexical and syntax analysis, interpreters and compilers
and their roles in the design and implementation of the modern programming
languages.
2. Cultivate
the skills of problem solving, object-oriented programming, and basic software
engineering using C++ through a semester-long programming project implementing
an interpreter that can run programs for the very simple Biola programming
language.
3. Develop
an in-depth understanding of key features of C++ in areas such as memory
management, data types and type checking, inheritance and polymorphism,
templates and generic programming to effectively utilize them in programming
tasks.
4. Cultivate
the understanding of (i) scripting languages including Python and Java Script
and (ii) markup languages such as HTML, XML, and their application in web
programming by contrasting and relating the features between C++ and the new
languages.
Books and References:
Grading Structure:
Reading &
Participation
15%
Programming
Assignments 40%
Language Study Assignments 15%
Quizzes and Exam
30%
Programming Project: The main programming project is to implement an
interpreter to run programs written in the very simple Biola programming
language. You need to incrementally implement several modules and then
integrate them together into an interpreter for the simple Biola language.
Language Study Assignments: We’ll assign a sequence of study
assignments including (i) presentations regarding the textbook on web
programming and (ii) investigation of key features in modern programming
languages such as memory management, built-in data types, static typing
or dynamic
typing (type checking), control flow, subroutine call and parameter
passing, and garbage
collection, templates
and generic programming, object-oriented programming (inheritance
and sub-type
polymorphism), functional programming, and so forth.
Late policy: You lose 15% (one point out of
the 6-point scale) each day for being late in sending in your work. Unless
it is something like a serious health issue with statements from the doctor as
proof, you will
receive no point after it is one week late.
Tentative Schedule
Weeks
1~2 Language translation: Syntax and
Semantics
Week
3
Names, scoping, and binding
Week
4
Memory management
Week
5
Type checking
Week
6
Function calls
Weeks 7~8 Inheritance
and polymorphism
Week
9
Review and midterm
Weeks 10~12 Templates
and generic programming
Weeks 13~14 Function
programming and logic programming
Week 15 Review
Students desiring accommodations on
the basis of physical, learning, or psychological disability for this class are
to contact Disability Services. Disability Services is located in the Learning
Center in the Biola Library, upstairs from the main floor, and can be reached
by calling 562.906.4542 or extension 4542.
ACADEMIC
HONESTY POLICY: We are committed at Biola University to ethical practice in
teaching, scholarship, and service. As
such, plagiarism and other forms of academic dishonesty will not be tolerated. Please see the undergraduate/graduate student
handbook and/or the departmental/program/school policy on academic
honesty. It is imperative that you
present all written, oral, and/or performed work with a clear indication of the
source of that work. If it is completely
your own, you are encouraged to present it as such, taking pleasure in
ownership of your own created work.
However, it is also imperative that you give full credit to any and all
others whose work you have included in your presentation via paraphrase, direct
quotation, and/or performance, citing the name(s) or the author(s)/creator(s)
and the source of the work with appropriate bibliographic information. To do
otherwise is to put oneself in jeopardy obeing sanctioned for an act or acts of
plagiarism that can carry serious consequences up to and including expulsion