CSC 330 / F20
Structure of Programming Languages

Prof. Andrew J. Pounds, Ph.D.

Office: Rm. 438 Godsey Science Center, (478) 301-5627

Rm. 231 Willett Science Center

e-mail: pounds_aj@mercer.edu

Alt Phone (SMS): (478) 227-3444

Office Hours: via ZOOM appointment only.

“We do no know what the computer language will look like in the year 2000, but it will be called FORTRAN.” – Seymour Cray

CSC 330 is a course that considers the underlying factors that drive the design and implementation of programming languages. Topics such as grammars, ambiguity, control structures, scope and typing of variables, precedence, recursion, concurrency, and input/output facilities will be considered. Different programming paradigms (procedural, object oriented, functional) and how these are implemented in languages will also be discussed. Examples will be drawn from high level Von Neumann programming languages as well as languages based on the λ-Calculus functional programming model. In addition, students will be introduced to the standard practices and tools of the professional programmer.

Students taking CSC 330 are expected to have a working knowledge of JAVA and be able to read at the college level.

Upon completion of this course, a student will demonstrate competence in each of the following areas:

Class Meeting Times and Locations

Lecture: TR 11:10 a.m.– 12:25 p.m., Room 21 GSC.

Course Materials

Required: CodeCraft : The Practice of Writing Excellent Code. Pete GoodLiffe

Grading

Class/Homework Assignments (CANVAS) 100 pts
Programming Projects (3 @ 200 pts) 600 pts
Annotated Bibliography 100 pts
Code Implementation Project 100 pts
Final Exam 100 pts


Total Possible1000 pts

The following grading scale is assured but may be slightly lowered based on test results.

A 900 pts

B+ 880 pts

B 800 pts

C+ 780 pts

C 700 pts

D 600 pts

F <600 pts

General Information

Honor Code: All students in CSC 330 are expected to adhere to the Mercer University Honor Code. Any suspected violations will be reported to the Honor Council for further investigation.

Many students have difficulty in determining how to apply the Mercer honor code to computer science courses. A few general guidelines should help you in deciding whether you are violating the honor code or not.

  1. You are allowed to receive help on your programs from other students, provided the purpose of the help is to help you understand your own program better, not to write your program for you.
  2. You are NOT allowed to give copies of your programs, or parts of your programs, to other students in any form. I will be checking code to see how much is derived from others in the class.

Any violation of the above policies will be treated as academic dishonesty and a violation of the Mercer Honor Code.

Attendance: Attendance will be taken on the first six class days and on pre-designated days. Notification about the days that attendace will be taken will be sent via the class e-mail listserve. Otherwise attendance will not be taken.

Final Exam: The only exam in this class will be the final and it will be on online “practical” that will require you to write some code and submit your code and answers online.

Partial Credit: Partial credit will not be awarded on any exam unless individuals show their work and clearly delineate how they arrived at their answers.

Re-grading Policy: If a student suspects that an error was made in the grading of a submitted work, they may return the paper for re-grading with the understanding that the entire work will be re-graded and not only the portion in question.

Posting of Grades: Grades will not be posted. If you are curious about your cumulative grade, see Dr. Pounds.

E-mail Listserve: I maintain an e-mail listserve which I use use copiously to send information to the class and which you can use to communicate with each other. To sign up for the listserve and to learn how to send information to it, please go to: http://theochem.mercer.edu/mailman/listinfo/csc330.

Departmental Computing Facilities: While students may work on their own computer systems to develop code for the class, students are encouraged to work on the departmental server named cobra (cobra.cs.mercer.edu). This server is guaranteed to have all of the requisite compilers and software libraries required to build code for this course. All programs will be tested on cobra so make sure your code runs on cobra. Students who need to use Mathematica can access it from the computer labs in the Computer Science Building or the Chemistry Department. If you need information on how to transfer code to cobra, just ask me.

GitLab: Students must maintain their programming projects on the departmental GitLab server name anvil.cs.mercer.edu. Specific instructions on how the repositories should be structured will be included in in each assignment description. Code for this class will be submitted via anvil.

Platforms and Editors: I get asked this question every year – so I am going to go ahead and answer it here. I don’t care what editors you use to develop your code. You can use eclipse, Visual Studio, Emacs, vim, sublime, Atom, nano, gedit, etc. Just know that all of those are not available on all systems. You are GUARANTEED to find vi on any Unix box. The FINAL version of your program will be tested on cobra and therefore must be able to be compiled and run in a normal command line environment. If your code ONLY runs inside eclipse then it does not meet these guidelines.

University Compliance Statements

Accommodations and ADA/504: “Students in need of accommodation due to a disability should contact the Access and Accommodation Office to complete the verification process to become approved for services. In order to receive accommodations, each term, students will request accommodation and faculty notification forms through the Access Office online system Accommodate. Students are strongly encouraged to schedule a meeting with each professor in a timely manner to discuss arrangements. Accommodations are not retroactive in nature. Note - Disability accommodations or status are not reflected on academic transcripts. Students with a history of a disability, perceived as having a disability or with a current disability who do not wish to use academic accommodations are also strongly encouraged to complete the verification process with the Access Office. Students must request accommodations in a timely manner to receive accommodations in a timely manner.

The Access Coordinator for Macon Campus is

Katie Johnson, Director and ADA/504 Coordinator.
Phone: (478) 301-2778; email: johnson_kc@mercer.edu
Website:
https://access.mercer.edu

Please note the following additional information from the Access and Accommodation Office (AAO):

In compliance with Section 504 of the Rehabilitation Act of 1973 (504) and the Americans with Disabilities Act Amendments Act of 2009 (ADAAA), “otherwise qualified” students with disabilities are protected from discrimination and may be entitled to “reasonable accommodations” intended to ensure equal access to all courses, programs, and services without a change of curriculum. Examples of accommodations include but are not limited to: testing accommodations, providing alternative format textbooks and tests, note-taking support, and modifications of policies or procedures. Equal Access may require moving a class or event to a physically accessible room, making websites accessible to screen readers, providing sign language interpreters, and captioning videos. All students requesting to be recognized as a student with a disability or requiring accommodations must first self-identify by requesting accommodations with the designated Access Coordinator for their campus or program and complete the verification process.”

Mental Health and Wellness: “Mercer University faculty and staff recognize that mental health concerns can impact academic performance and interfere with daily life activities. Please notify your faculty member or academic advisor for academic assistance, as needed. The office of Counseling and Psychological Services (CAPS) can also provide support if you are feeling stressed, overwhelmed, anxious, depressed, lost, or are struggling with personal issues. Please call (478) 301-2862 or visit the CAPS website for more information. These services are free and confidential, and support non-traditional, graduate, and undergraduate students. The CAPS office on the Macon campus is located in Linden House (attached to the MEP Residence Hall).”

Electronic Submission of Materials: “Students bear sole responsibility for ensuring that papers or assignments submitted electronically to a professor are received in a timely manner and in the electronic format(s) specified by the professor. Students are therefore obliged to have their e-mail client issue a receipt verifying that the document has been received. Students are also strongly advised to retain a copy of the dated submission on a separate disk. Faculty members are encouraged, but not required, to acknowledge receipt of the assignment.”

University Fall 2020 COVID-19 Compliance Statements

COVID-19 Monitoring and Protocols: Each member of the Mercer community must self-monitor daily and follow practices known to reduce the spread of the virus. Students are expected to perform a daily temperature check prior to attending classes and may be required to submit to a noninvasive temperature check upon arrival to class. If you experience symptoms or have tested positive for COVID-19, do not come to class, rather contact Mercer Medicine Hotline (478-301-SICK) for evaluation and direction. Absences related to COVID-19 monitoring and protocols are excused. Abbreviated direction on University COVID-19 protocols are found on the University protocols flyer.

Masking: Masks are required in all communal spaces within academic buildings. Masks, worn appropriately, are required during class unless otherwise directed by the instructor for safety. A student arriving to class or other related meetings without appropriate face covering or approved medical exemption will be directed to leave the classroom. Absences due to such dismissals are unexcused. Failure to follow appropriate masking requirements is a violation of the student code of conduct and will be reported accordingly.

Sanitation: Hand sanitizer is readily available in all campus facilities. Students are expected to sanitize their hands prior to entering classrooms and labs. Eating and drinking in instructional facilities is strictly prohibited. Cleaning supplies may be available to sanitize seats and desks prior to and after class meetings.

Class Seating and Social Distancing: Classrooms have been adjusted to provide a protective degree of social distancing with masking. Students must adhere to designated seating and classroom arrangements must not be adjusted. Additionally, appropriate social distancing and compliance with University signage directions in hallways and common spaces during entry and exit is expected.

Notification of Course Recording: Course instruction may be recorded using Echo360 or Zoom and will only be available to students registered for the course who need accommodation. Such recordings may include your name, likeness, and participation in class. Recordings of instructional activities will be used solely for class purposes by the instructor and students enrolled in this course during the current semester. Course recordings may not be reproduced or shared in any way (including electronically or posting in any web environment) with those not in the class in this semester.

COVID-19 Excused Absences: Students are expected to observe the course attendance policy. Suspected COVID-19 symptoms, illnesses, or positive test results must be reported to the Mercer Medicine Hotline (478-301-SICK). Absences at the direction of Mercer Medicine to isolate will be excused. It is the responsibility of the student to notify the instructor of their absence and to follow the instructor’s direction regarding virtual instruction, remote assignment, or make-up opportunity.

Final Exams: The final exam will be administered online. Students are advised to check their ability to access the Canvas course and any additional technological requirements prior to the date of the final exam. Any technological difficulty accessing, completing, or submitting the final exam must be immediately reported to the instructor for accommodation.

Zoom Office Hours: Virtual office hours will be conducted synchronously via Zoom. During Zoom office hours you must follow appropriate protocols in terms of audio muting and video enabling as directed by the instructor. Zoom sessions are a professional environment; you must ensure that your username, demeanor, dress, and background are appropriate.

Online Audio/Video Requirements: This course may include online sessions delivered via Zoom. You must have appropriate internet access, and audio and video capability on your computer for participation. Class protocol requires that your audio remain on mute unless you are responding to the instructor or addressing course participants. Your video must be enabled during such video sessions. As with in-person class, online sessions are an extension of the classroom and you must ensure that your username, demeanor, dress, and background are appropriate.

Department of Computer Science Fall 2020 COVID-19 Compliance Statements

Shared Lab Computers: Students are expected to sanitize the shared computer keyboard, mouse, and work area, before each class. Paper towels and a disinfectant spray will be available as you enter the computer lab. Upon entering the lab, you should safely obtain a paper towel, spray it with sufficient disinfectant, and then proceed to your computer work area. You should then wipe down your keyboard, mouse, work area, and then your hands. To minimize traffic flow within each computer lab, keep the paper towel with you until the end of class, and then discard it as you leave the room.