Computer Science 146
If you wish, you may download a printable version of the original syllabus. However, all of that information is also on this web page and the web page will be updated as the course proceeds, whereas the printed syllabus will not.
This is a one-hour course intended for students who have taken CSCI 145 Scientific Programming but who wish to continue on and take further courses in Computer Science, usually with the aim of pursuing a CS major or minor.
Students might begin the computer programming sequence at SLU in one of two ways. The typical path for those who know they will be taking further computer science courses is CSCI 150 (Introduction to Object-Oriented Programming). That is a four-hour course covering the fundamentals of the object-oriented philosophy and practice, with a goal of developing a programming style that is consistent with that use by industry for large-scale software development. Key issues in that course are high-level design and decomposition, documentation, and testing. Good techniques allow for the development of software that is more robust, maintainable, and reusable.
In contrast, the focus of CSCI 145 (Scientific Programming) is the design and implementation of programs for scientific computations, typically based on simulating underlying mathematical models. For many engineering and science majors, that is the only computer science course taken, and so our primary goal is to use the semester to maximizing proficiency in completing such projects. However, less time is spent on developing the long-term software practices introduced in CSCI 150 and no introduction is given to object-oriented programming. With that in mind, the purpose of CSCI 146 (Object-Oriented Practicum) is to teach the important object-oriented concepts that were not included in Scientific Programming. Students completing the 145/146 sequence will rejoin those from the 150 track for the next software development course CSCI 180 (Data Structures).
The material will be presented in one weekly meeting, at a time to be arranged. Attendance at that meeting is expected.
|Place:||Ritter Hall 108|
|Instructor:||Dr. Michael Goldwasser|
|Email:||goldwamh at our university domain|
|Office:||Ritter Hall 108|
With the exception of the first day's printed handouts, most of the information for this course will be distributed only by means of the course web page. This web site will contain all assignments, a schedule of lectures, detailed lecture notes and links to many other sources of information.
We will be using C++ as the programming language in this course. Although there is no formal textbook, we refer students to a variety of available documentation, most notably the website http://www.cplusplus.com, which is especially good for its Language Tutorial and Library Reference.
The only graded work for this course will be a series of programming assignments as part of a single, large-scale, semester-long software project. There will not be any exams.
Letter grades will be based on each student's overall percentage of awarded points according to the following formula.
Students are expected to have read and abide by the University statement on Academic Integrity available on page 58 of the Saint Louis University's Undergraduate Catalog. A more detailed policy statement is given by the College of Arts & Science, also applying to this course.
In addition to those general statements, we wish to discuss our policy in the context of this course. When it comes to learning and understanding the general course material, you may certainly use other reference materials and you may have discussions with other students in this class or other people from outside of this class. This openness pertains to material from the text, practice problems, general syntax and use of the C++ language or other computing tools.
However, when it comes to work that is submitted for this course, you are not to use or to search for any direct or indirect assistance from unauthorized sources, including but not limited to:
Acceptable sources of information include consultations with the instructor, teaching assistants, or members of organized tutoring centers on campus, as well as any materials explicitly authorized in an assignment. Even in these cases, if you receive significant help you should make sure to document both the source of the help as well as the extent.
On certain programming assignments, we will explicitly allow students to work in pairs. In this case, conversations between partners is both permissible and required. Furthermore, both students are expected to contribute significantly to the development of the submitted work. It is unethical to allow a partner to "sign on" to a submission if that partner did not significantly contribute to the work.
Any violations of these policies will be dealt with seriously. Penalties will apply as well to a student who is aiding another student. Any such violations will result in a minimum penalty of a zero on the given assignment that cannot be dropped, and severe or repeated violations will result in an immediate failing grade in the course. Furthermore all incidents will be reported in writing to the Department and/or the Dean, as per the College procedure.
All exams and quizzes must be taken promptly at the required time. Requests for rescheduling an exam will only be considered if the request is made prior to the start of the exam, or else in an "emergency" situation with appropriate documentation.
For both written and programming assignments, we wish to allow students to continue to work comfortably beyond the official deadline when a little more time will result in more progress, while at the same time discourage students from falling significantly behind pace and jeopardizing their success on future assignments. Our solution is the following exponentially decaying late formula (some have suggested that we should offer extra credit to anyone who fully understands this formula).
We will consider an assignment submission "complete"
when any part of the assignment is last submitted or
modified. Any assignment that is not complete promptly by
its due date and time will be assessed a penalty based on the
The above policies will be waived only in an "emergency" situation with appropriate documentation.
Any student who feels that he/she may need academic accommodations in order to meet the requirements of this course—as outlined in the syllabus, due to presence of a disability, should contact the Office of Disabilities Services. Please telephone the office at 314-977-8885, or visit Suite 331 in the Busch Student Center. Confidentiality will be observed in all inquiries.
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 section on Academic Integrity, these workers is an acceptable resource for help, yet you should still document both the source of the help as well as the extent, if significant.
Our department runs a computer server named turing that serves as the primary computing environment for this course. If you do not already have an account on this machine from a prerequisite course, please let us know and we will create a new one.
See further documentation regarding use of turing's facilities.
Please note: you are not explicitly required to use turing as your computing platform, but it is the only platform that we will officially support. If you wish to use another platform for completing your assignments, please feel free to do so.