"An introduction to computer programming based upon early coverage of object-oriented principles such as classes, methods, inheritance and polymorphism, together with treatment of traditional flow of control structures. Good software development practices will also be established, including issues of design, documentation, and testing."
The official prerequisite for this course is College Algebra (Math 120) or its equivalent. No programming experience is necessary.
Our goal for this course is to introduce the basics of programming as well as the theory of object oriented programming languages. The programming languange for this course is Python, which is an excellent choice for teaching first time programmers. Students can expect to learn a great deal about programming structure and principles which will translate to other languages throughout their career.
The course will begin with discussions of data representation and the inheritence structure which is so essential to object oriented design. We will then look at control structures and more complicated program design for most of the semester. We will likely end with an investigation of more advanced programming topics, such as recursion or network programming. At each stage, I will attempt to point out connections between topics; for those interested in further information, I will provide pointers to more advanced topics and further coursework available in each subject.
In addition, we will also spend time on principles of good programming. In the work environment, it is not just simple speed or accuracy that is important. In large projects, you must also be able to write code that others will be able to understand and modify. To this end, we will articulate the basics of good programming practice and software engineering principles, topics which will be useful in all later programming endeavors.
Asking questions directly after class or during office hours is preferable. However, email contact with the course instructor is a necessity in this class, since homework will all submitted via email. I will check email several times throughout the work day, and will also check email once per evening to answer questions and resolve issues. Email contact over the weekend will likely be more sporadic, although I will be sure to check at least once.
Computers will be an integral part of this course, both inside and outside of class. However, out of courtesy to both the instructor and other students, please do not use the lab computers for non-class related activity. In particular, you do not need to be using a computer unless an exercise or in class activity requiring them is in progress.
You are unlikely to need cell phones during the course of lecture. Please ensure that your cell phone is set to vibrate or silent during lecture, and do not send text messages of any kind.
We expect 6-8 graded homeworks throughout the course of the semester. Each homework must be submitted via email to the instructor and will be due by 11:59pm on the due date specified. Late homeworks will suffer a penalty of 10% for every hour they are late. For example, homework which is submitted between midnight and 12:59am will be worth at most 90%o of the total credit; anything submitted between 6am and 6:59am will be worth at most 30% of the full credit.
As discussed below, students are expected to complete assignments individually and using only approved course materials.
Quizes will be given every Friday during class. They will generally be given during the last few minutes of class, and will consist of 2 or 3 short questions about the material covered during the past week. Students will be allowed to drop their lowest quiz grade at the end of the semester.
We expect 8-10 programming assignments through the course of the semester. For programming assignments, late submissions will be accepted with a penalty of 10% per hour the assignment is late. For example, for a program due at 11:59pm, anything submitted between midnight and 12:59am will be worth at most 90% of full credit; anything submitted between 6am and 6:59am will be worth at most 30% of the full credit.
Students will also be able to drop their lowest programming assignment score at the end of the semester.
Letter grades will be based on each students overall percentage of awarded points according to the following formula.
Any modification to this scale at the end of the year will be in favor of the students. That is we may later decide to award an A to a student who is slightly below the cutoff, but we certainly will not deny an A from someone who is above the cutoff.
In general, extra credit will not be assigned in this class. The programming and homework assignments provided will be challenging enough for most students, so I would like for students to focus on the assignments provided.
Upon occasion (and solely at the instructor's discretion), some small extra credit activities may be included, either by announcement in class or as part of an assignment. Please keep in mind that the extra credit is unlikely to significantly affect your grade; if you are concerned about your final grade, it is much better to focus your energy on the regular assignment. Extra credit is solely designed to provide an opportunity to students who wish to explore the topics further.
Late homework or programming assignments will suffer a penalty of 10% for every hour they are late. For example, homework which is submitted between midnight and 12:59am will be worth at most 90%o of the total credit; anything submitted between 6am and 6:59am will be worth at most 30% of the full credit.
In unusual circumstances, such as extreme illness or injury (documented by a doctor's note), family emergencies, etc., please contact the instructor as early as possible to arrange accomidations.
In the context of this course, I encourage students to discuss general course material, which includes studying for exams, sharing notes if a student must miss class, and working on any practice problems which are assigned. We will also have occasional programming assignments that will be completed in pairs. However, unless clearly stated otherwise in the assignment description, any work which will be submitted for a grade must be completed by individuals. In addition, the only acceptable sources of information are the course textbook, the instructor, official university tutors, or other sources which are explicitly mentioned in an assignment. Students may not use other sources, including (but not limited to) websites other than the official course website or those explicitly listed in course materials, textbooks other than those officially listed below, or students (either past or present).
Students who violate academic integrity policies will be reported to the department. First time offenses on homework will result in a minimum of a failing grade on the assignment in question, with egregious or repeated offenses resulting in failure in the course. In addition, students may be referred to the College of Arts and Sciences for further disciplinary action.
The following is a statement of minimum standards for student academic integrity at Saint Louis University; I expect full compliance with the policies described.
The University is a community of learning, whose effectiveness requires an environment of mutual trust and integrity, such as would be expected at a Jesuit, Catholic institution. As members of this community, students, faculty, and staff members share the responsibility to maintain this environment. Academic dishonesty violates it. Although not all forms of academic dishonesty can be listed here, it can be said in general that soliciting, receiving, or providing any unauthorized assistance in the completion of any work submitted toward academic credit is dishonest. It not only violates the mutual trust necessary between faculty and students, but also undermines the validity of the Universityís evaluation of students and takes unfair advantage of fellow students.
Further, it is the responsibility of any student who observes such dishonest conduct to call it to the attention of a faculty member or administrator.
Examples of academic dishonesty would be copying from another student, copying from a book or class notes during a closed-book exam, submitting materials authored by or editorially revised by another person but presented as the studentís own work, copying a passage or text directly from a published source without appropriately citing or recognizing that source, taking a test or doing an assignment or other academic work for another student, tampering with another studentís work, securing or supplying in advance a copy of an examination without the knowledge or consent of the instructor, and colluding with another student or students to engage in an act of academic dishonesty.
Where there is clear indication of such dishonesty, a faculty member or administrator has the responsibility to apply appropriate sanctions. Investigations of violations will be conducted in accord with standards and procedures of the school or college through which the course or research is offered. Recommendations of sanctions to be imposed will be made to the dean of the school or college in which the student is enrolled. Possible sanctions for a violation of academic integrity include, but are not limited to, disciplinary probation, suspension, and dismissal from the University.
Any student who feels that he or she may need academic accomidations in order to meet the requirements of this course, as outlined in the syllabus, due to the presence of a disability, should contact the Student Success Center. Please call the office at (314)977-8885, send an email to firstname.lastname@example.org, or visit the Student Success Center on the 3rd floor of the Busch Student Center. Confidentiality will be observed in all cases.
Our department employees many junior/senior computer science majors to help out in our department labs. Those students are also available to provide assistance with course materials at such times.
Our department web page maintains a current list of the available times and locations.
As stated in the Academic Integrity policy, these workers are an acceptable resource for help, yet you should still document both the source of the help as well as the extent, if significant.