/** * CS149 - Programming Fundamentals * Department of Computer Science * James Madison University * @version Fall 2019 */
Location: | ISAT/CS 250 |
Meeting Time: | Section 10, MWF 9:05-9:55AM |
Section 11, MWF 10:10-11:00AM | |
Required Textbook: | Think Java: How to Think Like a Computer Scientist |
version 7.0.0 by Allen Downey and Chris Mayfield. |
DO NOT PURCHASE THE TEXTBOOK ONLINE. Electronic versions will be made available for free on the course website. You may optionally purchase a spiral-bound copy at the JMU Bookstore.
Name: | Dr. Nathan Sprague |
Office: | ISAT/CS 226 |
Office Phone: | 568-3312 |
Email: | spragunr@jmu.edu |
Office Hours: | http://w3.cs.jmu.edu/spragunr/schedule.html |
Questions related to course content should be asked through Piazza. You may use email if you need to contact me directly.
You are welcome to call or stop by my office any time, with the understanding that I may or may not be available outside of my posted office hours. If you need to meet with me outside of my posted hours, email me to make an appointment.
Note that I typically do not respond to email or Piazza posts in the evenings or on the weekends. Please plan ahead so I can help you before Sunday deadlines.
If you contact me and don't hear back within a day or two, don't give up! I try to respond to email in a timely manner, but sometimes one falls through the cracks. I won't be offended if you send a follow up message if you don't hear back from me.
Official course description: "Students learn fundamental problem-solving techniques using a modern programming language."
By the end of this course, you should be able to:
A detailed schedule including reading and homework assignments is available online. That schedule will be updated throughout the semester and should be checked regularly.
This is not a lecture-based course. We will begin most weeks with a team activity designed to introduce core concepts. In preparation for Wednesday, you will read one chapter from the textbook and complete a short online quiz. Wednesday and Friday will involve discussion of the weekly homework, in-class programming exercises, and other hands-on activities. I will also provide videos and other resources online to reinforce concepts and help you prepare for the exams.
Note that the content in this course is inherently cumulative. Each new topic requires an understanding of the preceding topics. This can make it very difficult to recover if you fall behind early in the semester. I suggest that you make a concerted effort to stay on top of this course from day one. If you find yourself struggling, please contact me immediately. I can probably help you if reach out to me early. I probably can't help you if you wait until you are hopelessly behind.
The final course grade will be calculated according to the following distribution:
Homework and Programming Assignment #1 | 10% |
In-Class Activities | 10% |
Quizzes | 5% |
Programming Assignment #2 | 5% |
Exam #1 | 20% |
Exam #2 | 20% |
Final Exam | 30% |
Letter grades will be assigned on the scale A=90-100, B=80-89, C=70-79, D=60-69, F=0-59, with potential minor adjustments after considering the overall performance of the class and actual distribution of numeric scores. I will use "+" and "-" grades at my discretion. I do not assign WP or WF grades except under extraordinary circumstances.
Students who do not earn 60% of the points on the final exam will receive a letter grade no higher than C for the course. You must earn a B- or higher grade to continue on to CS 159.
There will be weekly homework assignments. Most assignments will involve five programming exercises. The first two exercises will be due by 9:00AM on Friday, and the last three will be due Sunday at 11:00PM. You are welcome to discuss the exercises with other students, but the source code you submit must be entirely your own work. Submissions will be graded on correctness, documentation, and overall code quality.
Regular attendance and fully engaged participation is expected. Your grade will be partially based on in-class activities, so attendance will affect your grade.
The weekly homework assignments will involve many small programming problems. There is strong evidence that practicing on small problems is a good way to learn programming fundamentals. However, much of computer science is about solving large problems by breaking them into manageable pieces. I will assign two Programming Assignments that will give you the opportunity practice programming on this larger scale.
We will have two midterms and a comprehensive exam during finals week. Each midterm exam will be spread across two class periods: one for written problems, and one for programming. If you are unable to take an exam at the scheduled time because of illness or other problems, you must contact me beforehand to arrange to take the exam at a different time. Failure to make prior arrangements for a missed exam will result in a grade of 0 for the exam.
It is expected that your work in this course will comply with the provisions of the JMU honor code. It is not a violation of the honor code to discuss assignments and solutions with other students at a conceptual level. However, all of the work that you submit must be written by you, based on your own understanding of the material. Representing someone else's work as your own, in any form, constitutes an honor code violation. It is also a violation of the honor code to "render unauthorized assistance to another student by knowingly permitting him or her to see or copy all or a portion of an examination or any work to be submitted for academic credit."
A key component of academic integrity is giving credit where credit is due. If you receive assistance, either from another student or from some other source, you must provide a clear and explicit acknowledgment of that assistance in your submission.
It will not be possible to receive credit for in-class work that is missed due to absence. In recognition of the fact that absences are occasionally unavoidable, I will drop the two lowest scores in this category when calculating your final grade.
Late homework assignments will not be accepted. There will be no make-up opportunities and no extra credit assignments. In extreme, documented circumstances (e.g., hospitalization), I will make reasonable accommodations.
I take an old-fashioned view of mobile devices. I see them as infernal distractions that disconnect us from our surroundings while chipping away at our very humanity. Phones should be silenced and put away during class unless they are being used for a course-related activity. If you violate this policy, I reserve the right to give you a long pointless lecture about the failings of your generation and the probable downfall of civilization. This will be embarrassing for both of us.
Fifty minutes is an extremely short period of time. Please be ready to begin work at the scheduled start of class and refrain from packing up to leave until the class period is over. In exchange, I will commit to ending class promptly at the schedule time.
Students are responsible for adding and dropping courses via MyMadison. Please consult the registrar's page of dates and deadlines for exact deadlines.
If you need an accommodation based on the impact of a disability, you should contact the Office of Disability Services (Student Success Center, Room 1202, www.jmu.edu/ods, 540-568-6705) if you have not previously done so. Disability Services will provide you with an Access Plan Letter that will verify your need for services and make recommendations for accommodations to be used in the classroom. Once you have presented me with this letter, you and I will sit down and review the course requirements, your disability characteristics, and your requested accommodations to develop an individualized plan, appropriate for this course.
This class will operate in accord with JMU's inclement weather policy available at http://www.jmu.edu/JMUpolicy/1309.shtml.
I will give reasonable and appropriate accommodations to students requesting them on grounds of religious observation. If you require such accommodations you must notify me at least two weeks in advance.
Many of the course materials we will be using this semester, including portions of this syllabus, were developed by other faculty members in the JMU Computer Science department. Contributors include, David Berstein, John Bowers, Alvin Chao, Chris Mayfield, Kevin Molloy, and Dee Weikle.