Catalog Description
Introduction to the fundamental principles of programming language
design, semantics, and implementation. Structure and vocabulary of
modern programming languages. Programming language topics include
formal semantics of programming, name binding, scope, data types, type
systems, control flow, object orientation, scripting languages,
functional languages, polymorphism, and concurrency. Labs and
assignments will include experience in writing programs in a
nonprocedural programming paradigm.
Prerequisite or Corequisite
CSCI 362 (Data Structures)
Grade of C- or better
Outcomes
At the end of this course, a successful student will be able to
Textbook
Concepts of Programming Languages
12th Edition
Robert Sebesta
Tentative Content
Other topics may be covered as necessary or if there's time and sufficient interest. Readings will be frequently assigned. Most exam material will come from the lectures and assignments.
Grade Breakdown
Final grades will be assigned using the standard 100-point scale.
Percentage | Grade |
---|---|
93+ | A |
90 – 92 | A- |
87 – 89 | B+ |
83 – 86 | B |
80 – 82 | B- |
77 – 79 | C+ |
73 – 76 | C |
70 – 72 | C- |
67 – 69 | D+ |
63 – 66 | D |
60 – 62 | D- |
59- | F |
You MUST earn at least a 70% exam average to earn a C- in this course.
Attendance
You are expected to attend class and lab, read the textbook, complete
assigned problems, participate in class discussions, and work
productively during problem sessions and labs. Lab attendance is
REQUIRED. Not attending a lab or leaving before completing all
outstanding assignments will result in a grade reduction of 2% per
class period missed.
Classroom Civility
Arrive at class promptly, prepared and ready to participate. Set
your phone to silent mode and, except in cases of emergency, remain
in the classroom for the duration of the meeting. If it is
necessary to leave or enter a room once class has begun, do so
quietly and with as little disruption as possible. If you leave
class for an extended period of time, or multiple times, this will
be treated as a missed lab (see above). Avoid talking which may be
disruptive to your fellow students and professor, avoid phone use,
and avoid using a laptop for a purpose other than note-taking.
You will asked to leave the classroom if you violate one of the principles above, or in some other way disrupt the class, and if this occurs more than TWICE, you may be expelled from the course.
Late Policy
Late submissions will NOT be accepted. If your assignment is
incomplete, submit it for possible partial credit. NO
assignments will be accepted via email. Do NOT wait until moments
before the deadline to submit to ensure you have some leeway.
Makeup exams will not be given — if you do NOT take an exam at the scheduled time AND location, you will receive a zero. Exceptions may be made at my discretion for truly extraordinary circumstances (like a serious health issue that will require medical documentation).
Graded Work
Several assignments will be given. Some will require a computer, others may not. Some will need to be completed by the end of the period, and some will be for extra credit only. For computer problems, you may be asked to demo and explain your solution to receive credit. Missing a lab will result in a score of zero, and no makeups will be given.
It is imperative that your code is neatly formatted (proper indentation and use of whitespace) and well-documented (comments, identifiers); correct, but non-compliant, programs will not be accepted. Note well the format of programs discussed in class. A good code editor will help ensure your code is properly formatted.
Programs must compile/interpret and run for any credit. Developing your programs incrementally can provide assurance that you will receive some credit for your work.
We will use the Mac Lab (Caputo 131), which has 27 iMacs which run a macOS operating system. See Mac Lab for more details.
Unannounced quizzes may be given during any class period.
Three examinations, including a final, will be given. Each MUST be taken in the lab on one of the lab machines (unless you have an accomodation from Learning Services). The exams will cover material from the lectures and assignments. The final will be cumulative, but will emphasize material not covered on prior exams.
Exams are closed book, notes, calculator, and neighbor. Only a pen or pencil is allowed.
For all ONLINE exams, at a minimum the following will be expected.
Academic Honesty
I encourage you to ask me questions — this is always the safest approach. You can do so in person or via email. Tutors are also available. We also have a CS Discord server.
I expect you to complete assignments YOURSELF. You MAY discuss syntax, compiler errors, example code, and concepts with peers, but NOT the details of a homework problem solution. A good litmus test is "Would I be comfortable having this discussion publicly in the CS Discord?". If not, you are likely engaging in inappropriate collaboration. You may NOT copy a partial or full solution from another source. You may NOT use the internet for assignment hints, strategies, OR solutions. If you do so, you are committing academic dishonesty, which may result in failure of the course. Obtaining a solution on the Internet or elsewhere and submitting it as your own work is plagiarism and will result in SEVERE disciplinary measures. Be sure you can explain every step of every solution you submit.
Academic dishonesty WILL be reported to the department chair and provost.
Consult MU's Academic Honesty Policy for more details.
Title IX Reporting
Millersville University and its faculty are committed to assuring a safe and productive educational environment for all students. In order to meet this commitment and to comply with Title IX of the Education Amendments of 1972 and guidance from the Office for Civil Rights, Title IX requires University faculty members to report incidents of sexual discrimination, including sexual violence, shared by students to the University's Title IX Coordinator. Accordingly, if a student shares information about any incidents of sexual discrimination or sexual violence during a classroom discussion, in a writing assignment for a class, or in other contexts, faculty must report that information to the Title IX Coordinator. This information will only be shared with the Title IX Coordinator, who is the individual on campus designated to respond to reports of discrimination or sexual violence. While the Title IX Coordinator is not a confidential source of support, they will address matters reported to them with sensitivity and will keep your information as private as possible.
Additionally, faculty members are obligated to report sexual violence or any other abuse of a student who was, or is a child (a person under 18 years of age) when the abuse allegedly occurred, to the person designated in the University's Protection of Minors policy.
Information regarding the reporting of sexual violence and the resources that are available to victims of sexual violence are set forth at www.millersville.edu/titleix.
Counseling Resources
Students sometimes face mental health or drug/alcohol challenges in their academic careers that interfere with their academic performance and goals. Millersville University is a caring community and resources are available to assist students who are dealing with problems. The Counseling Center (871-7821) is an important resource for both mental health and substance abuse issues. Additional resources include Health Services (871-5250), Center for Health Education & Promotion (871-4141), Campus Ministries, and Learning Services (871-5554).