Some years ago our traditional first course for computer science majors, CSCI 1320 (Principles of Algorithm Design I in previous years, then Principles of Programming I, now Principles of Computer Science I), was designed to not only teach basic programming and problem solving but also to expose students to certain concepts of computing closely related to the machine itself. Later changes to the curriculum have de-emphasized this material in favor of more abstract topics. CSCI 1120 is intended to give students the exposure to low-level concepts once provided by CSCI 1320, including a review of the Linux/UNIX command line, a review of computer arithmetic and data representation, and an introduction to the C programming language.
A current schedule of office hours can be found on my home Web page (http://www.cs.trinity.edu/~bmassing). If I'm not in my office during office hours, I should be somewhere in the CSI, perhaps in one of the labs helping another student, and there will often be a note on my door saying where to find me.
In addition to scheduled office hours, you're welcome to drop by and see if I'm in my office and free to talk, or you can make an appointment by calling me or sending me e-mail.
E-mail is almost always a good way to reach me; I normally check it fairly often and reply promptly.
Most course-related information (this syllabus, homework and reading assignments, etc.) will be made available via the Web. The course Web page is a starting point for Web-accessible course material; you can find it linked from my home page (http://www.cs.trinity.edu/~bmassing) or directly at http://www.cs.trinity.edu/~bmassing/Classes/CS1120_2017fall/HTML/.
(Not required, but highly recommended.)
There are many books on the C language, some more reliable than others. Here are two that seem good to me.
Grades in this course will be determined by scores on several homework assignments and class attendance/participation, weighted as follows.
Numeric grades will be calculated as a simple percentage, by dividing total points earned on the above components by total points possible. These numeric grades will then be converted to letter grades based on a curve, but in no case will the resulting letter grades be worse than students would receive based on the following scheme.
|Numeric grade||Letter grade|
|90 - 100||A-/A|
|80 - 89||B-/B/B+|
|70 - 79||C-/C/C+|
|60 - 69||D/D+|
|0 - 59||F|
Homework (in the form of programming assignments) is a crucial part of this course; most of what you learn will likely be learned in the course of completing the programming assignments. Detailed requirements will be provided as part of each assignment; due dates will be announced via the course Web page. You are strongly encouraged to use the department's network of Linux machines, but unless otherwise specified for individual assignments, you may use any other system that provides a suitable environment.
Regular class attendance is strongly encouraged; class participation grades will be based largely if not entirely on attendance. You can miss a week's worth of classes without penalty; after that, each unexcused absence reduces this part of your grade. If you must miss class for whatever reason, see the notes online for a summary of what you missed, including any announcements. It may also be helpful to check with a classmate for more about what we did in class.
Course-related announcements will sometimes be made by sending e-mail to the Trinity e-mail addresses of all registered students. Students are strongly encouraged to read mail sent to their Trinity addresses frequently.
Unless otherwise stated for a particular assignment, homework will be accepted up to one class period late, but no more, at a penalty of 10 percent off per working day. This penalty may be waived or additional time allowed at the instructor's discretion in cases of illness or conflict with a university-sponsored activity or religious holiday.
If you have unusual circumstances (as we all sometimes do), please discuss these with me as far in advance as possible.
All students are covered by a policy that prohibits dishonesty in academic work. Under the Honor Code, a faculty member will (or a student may) report an alleged violation to the Academic Honor Council. It is the task of the Council to investigate, adjudicate, and assign a punishment within certain guidelines if a violation has been verified. Students are required to pledge all written work that is submitted for a grade: ``On my honor, I have neither given nor received any unauthorized assistance on this work'' and their signature. The pledge may be abbreviated ``pledged'' with a signature. For electronically submitted work, you should include the text -- either the full version or just ``pledged'' -- somewhere in what you submit.
Unless otherwise specified, all work submitted for a grade (homework assignments) must represent the student's own individual effort. Unless otherwise stated, all submitted work will be considered pledged work.
Discussion of homework assignments among students is allowed, but not to the point where detailed answers are being written collectively. If you are working with other students in a lab, seeing another student's work may be unavoidable, but please do not share answers electronically. If you are uncertain about whether a particular level of collaboration is acceptable, please ask for clarification. You will be asked to document any collaboration; details will be provided with assignments.
Graded papers and sample solutions (to homeworks) from previous semesters, for this course or other courses I teach, are off limits. Answers that are identical beyond coincidence (either to another student's work or to a sample solution from a previous semester) will be considered to be in violation of the Honor Code, and will result in appropriate action. You are responsible for the security of your work, both electronic and hard copy.
As most of you know, the department maintains a network of computers to be used for coursework and research; it includes machines in the classrooms, machines in the other labs, and several machines housed in ITS's server room. All are available for in-person use whenever the room is not in use for a class or other event; all are also available for remote use whenever the appropriate operating system is running. For this course I strongly encourage you to use these computers for any homework that requires computer access, since they provide a reasonably standard environment with the needed tools. To report problems with the computers or with your account, it's probably best to get in touch with me (by e-mail if it's outside office hours); if I can't resolve the problem myself I'll pass it on to the appropriate person(s) in ITS.
If you have a documented disability and will need accommodations in this class, I expect that you will deliver your accommodation letter to me early in the semester so we can discuss how I might prepare to meet your needs. Please make these arrangements with me as soon as possible once you have met with the SAS Coordinator and have picked up your accommodation letters. All discussions will remain confidential. If you have not already registered with Student Accessibility Services, contact the office at 999-7411 or SAS@trinity.edu. You must be registered with SAS before I can provide accommodations.