CSCI 1120 (Low-Level Computing), Spring 2020:
Syllabus

Course description

Currently our curriculum's programming sequence is taught in fairly abstract languages (Scala for the first two semesters, then C++). While this has advantages, it also means that students may not develop an understanding of what is happening in the machine. This course is intended to expose students to concepts closer to the machine -- programming in a not-so-abstract language, command-line tools, and the basics of data representation and computer arithmetic -- and also to ease the transition from Scala to C++.

Course goals

Course topics

Basic information

Class meeting times and location

Prerequisites

Instructor contact information

Office hours

This semester I plan to have office hours via Zoom meetings. A link to a Google Doc with information about times and meeting links can be found on my home Web page http://www.cs.trinity.edu/~bmassing. If none of the listed times work for you, you can make an appointment by sending me e-mail.

Also, e-mail is almost always a good way to reach me (really probably the best way); I normally check it fairly often and reply to student questions as promptly as I can.

Course materials

Web site

Most course-related information (this syllabus, homework and reading assignments, etc.) will be made available via the course Web site. You can find it linked from my home page http://www.cs.trinity.edu/~bmassing (which is usually easy to find with a Web search on my full name) or directly at http://www.cs.trinity.edu/~bmassing/Classes/CS1120_2020fall/HTML/; there is also a link in TLearn. A request: If you spot something that doesn't seem right, such as a broken link, please tell me about it!

Textbook

(Not required, but recommended.)

Other references

There are many books on the C language, some more reliable than others. Here are two that seem good to me.

Note that there's also a lot of information about C on the Web, some of it quite good but some very much not. Use more caution than usual?

Course requirements

Grading

Grades in this course will be determined by scores on several homework assignments, quizzes on video lectures, and class attendance, weighted as follows.

Component Perfect-score points
Homework about 120
Video-lecture quizzes 20
Class attendance 20

Numeric grades will be calculated as a simple percentage, by dividing total points earned on the above components by total perfect-score points. These numeric grades will then be converted to letter grades in a way that takes into account the performance of all students, but in no case will the resulting letter grades be worse than you 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 assignments

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 these assignments. Detailed requirements will be provided as part of each assignment; due dates will be announced via the course Web site. For programming assignments, you are encouraged to use the department's network of Linux machines, including ITS's new Linux virtual desktop, since everything you need is installed there, and that's the environment in which I test. However, unless otherwise specified for individual assignments, you may use any other system that provides a suitable environment. (Details about setting up suitable environments will be provided soon.)

Note that every assignment asks you to do two things in addition to the assigned problems: You must pledge the work and document any collaboration, as described in the assignment, and you must include a short essay commenting on anything you found noteworthy about it.

Attendance

Regular class attendance is strongly encouraged, and part of your grade is based on it. I recognize, however, that since many of us are teaching and learning remotely it may not be possible to participate in scheduled class meetings. I plan to record all class meetings via Zoom, so if you miss a class for whatever reason, you can watch the recording at another time. I track attendance by asking you to complete a “minute essay” at the end of each class. This consists of one or more short questions, which I ask that you answer by e-mail. You can do this either at the end of the Zoom meeting or after you watch the recording.

Video-lecture quizzes

For this course, I'll be using not the traditional lecture format but a more “flipped” style, in which most course material is presented via video lectures and class time is used for more-interactive activities or as a time when students can work on homework with someone available to answer questions.

These lectures will be made available via echo360.org. You should have access to a CSCI-1120 course there, and titles of videos to view will be listed with readings. To encourage students to view these videos, each will end with a quiz -- one or more short questions that you are to answer, by e-mail. You can send me one e-mail for each week's worth of quizzes, or one for each quiz. Please use a subject line including “video quiz” and the lecture number (e.g., “video quiz 1a” or “video quizzes group 2”).

For grading purposes, I will group quizzes by week; to get full credit for a week's quizzes, you must send me your answers for all quizzes for that week, and you must do so before the class for which the videos are part of the reading. Late or partial responses will get half credit.

E-mail

I frequently communicate important or useful course-related information by sending e-mail to the Trinity e-mail addresses of all registered students, almost always with a subject line that begins with the course number (e.g., “csci 1120”). I therefore strongly encourage you to keep up with your Trinity e-mail. If you find that these course-related messages get lost in your inbox, TMail allows setting up filters to put messages that match specified criteria into its equivalent of folders, and I encourage you to do that to help manage these messages.

Late and missed work

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 will be waived if you submit a preliminary version of the assignment on time and a revised version no more than one class period later. It may also be waived or additional time allowed at the instructor's discretion in cases of illness, conflict with a university-sponsored activity or religious holiday, or other circumstances beyond your control. In semesters past I've quoted a retired colleague:

If you have unusual circumstances (as we all sometimes do), please discuss these with me as far in advance as possible.
and I suspect that this semester more of you than usual will indeed have unusual circumstances, ranging from problems with technology to family emergencies. Keep me informed and I will try to work with you. (Be advised, however, that being too busy with other classes does not count as “unusual circumstances”.)

Academic integrity at Trinity

What Academic Affairs recommends that I say:

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.
You will be asked to do this explicitly on everything you turn in for this course.

Collaboration and academic integrity in this course

Unless otherwise specified, all work submitted for a grade (homework assignments) must represent your own individual effort, except as discussed below. All submitted work will be considered pledged work.

Getting help is allowed and even encouraged, but not to the point where the helper is providing answers you just transcribe. Similarly, 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.

However you get answers, you should write or type them up yourself. More importantly, you should completely understand everything you turn in, and by turning it in you are implicitly saying that you do.

Graded papers and sample solutions (to homeworks) from previous semesters, for this course or other courses I teach, are strictly off limits. For most assignments I will post a sample solution after the due date; these solutions are also off limits. (Normally this isn't an issue because of timing, but if for some reason you must turn in work very late, it could be.)

Answers that are identical beyond coincidence (either to another student's work or to a sample solution) will be considered to be in violation of the Honor Code, and will result in appropriate action.

You will be asked to document any collaboration; details will be provided with assignments. If you are uncertain about whether a particular level of collaboration is acceptable, please ask for clarification.

Lecture recordings

What Academic Affairs recommends that I say:

The COVID-19 pandemic requires the delivery of online instruction. For this reason, please be aware that all classroom instruction, including student participation in classroom activities, is subject to recording and dissemination on the University's secure course management system (T-Learn). The recordings will be made available only to students enrolled in the course to facilitate online learning and review. Students are expressly prohibited from capturing or copying classroom recordings by any means; violations will be subject to disciplinary action. Instructors who wish to use a recording outside of class must obtain the written consent of any students who are personally identifiable in the recording.
Something similar applies to classes conducted via Zoom but as of now I don't have official text for that. (I'll update when I do.)

Resources

Computer resources

Normally in this section I say the following:

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 server machines housed by ITS. Machines in the classrooms and labs 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. Linux computers in the Server machines should be available all the time. (More information about these computers can be found at my Web site about department computers.)

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.

With so many of us teaching and learning remotely this semester, however, we have to consider other options. One is to access department computers remotely using ITS's virtual desktop environments; in addition to the long-available Windows desktop from which you could access our Linux computers via PuTTY, they now support a Linux virtual desktop, configured just like the department classroom/lab Linux computers. Another is to work primarily on your own computer. Details of options for doing that will be provided later.

Academic support

What Academic Affairs recommends that I say:

Trinity faculty hold students to the highest academic standards, but we also know that the very best students seek out help when necessary. The following resources are in place to support your academic success; learn more here.

Academic Success:
time management, student skills, test anxiety, note taking, tutoring.
Career Services:
major exploration, career guidance.
Counseling Services:
mental health concerns, mental health referrals.
Quantitative Reasoning and Skills Center:
quantitatively-demanding coursework.
Student Accessibility Services:
accommodations for a diagnosed disability
Wellness Center:
nutrition, sleep, stress management.
Writing Center:
starting a paper, finding a thesis, drafting and editing.

I encourage you to take advantage of any that look useful! (Some are irrelevant for this course, but you might want them for other courses.)

Be advised that help is also available for this course from the department-sponsored ACM peer tutoring. Details about hours will be provided in class and/or by e-mail. I encourage you to make use of this resource if you're having difficulty in this course.

Note to students with disabilities

What Academic Affairs recommends that I say:

The University has a continuing commitment to providing reasonable accommodations for students with documented disabilities. Like so many things this Fall, the need for accommodations and the process for arranging them may be altered by the COVID-19 changes we are experiencing and the safety protocols currently in place. Students with disabilities who may need some accommodation in order to fully participate in this class are urged to contact Student Accessibility Services, as soon as possible, to explore what arrangements need to be made to assure access. During the Fall 2020 semester, the Student Accessibility Services can be reached by email at sas@trinity.edu.
I will do whatever I can to provide the requested accommodations.




2020-08-28