.\" .ds Lm October 27, 2024 00:06 .\" include language from J frankel e93 .\" Computer Science E-93 is a comprehensive course in the architecture and organization of modern computers. .\" Students are already expected to be comfortable with designing, coding, and debugging programs of modest complexity while employing good programming style, structured techniques, and employing appropriate data structures as appropriate. In particular, this class is not a programming course, but students will be required to write several significant programs. .\" In addition, some experience with digital logic and gates and with programming in assembler language is preferred. .ds Ti \s+2\v'+3p'~\v'-3p'\s-2 .sp 0.6i .ft B .tl 'CSCI-E28''Course Information' .sp -6p \l'6.5i' .sp 6p .in +0.25i .ll -0.25i .hy 14 .na .ti -0.25i \fBInstructor\fR .sp 4p Bruce Molay (molay@fas.harvard.edu), (617)864-8832. .ti -0.25i \fBPurpose/Content\fR .sp 4p Csci-e28 explains the structure of the Unix operating system and shows how to write system and network programs. It is appropriate for students who want to learn how to write system software for Unix or for students who want to learn about the structure of a multi-tasking, multi-user operating system. The course covers the details of the file system, terminal and device input/output, multi-tasking, interprocess communication, video displays, and network programming. Theory is presented in the context of how Unix implements the ideas. By the end of the course, students should be able to figure out how most Unix commands work and know enough about the system to draft their own version of most of them. .ti -0.25i \fBPreparation\fR .sp 4p You should be able to program in C or C++. You should be comfortable with pointers, structs, dynamic memory allocation, linked lists, and recursion. You do not need to have programmed in C for Unix. If you know C++, you need to write in the C subset of C++. Students are already expected to be comfortable with designing, coding, and debugging programs of modest complexity while employing good programming style, structured techniques, and employing appropriate data structures as appropriate. Familiarity with Unix is helpful but not essential. .ti -0.25i \fBClasses\fR .sp 4p Classes are Wednesdays, 7:40-9:40PM ET online using Zoom. Lectures present ideas in the context of specific problems and Unix commands. Careful review of sample programs will be used to demonstrate principles and focus discussion. Many of the programs will be from the text; read before lecture, bring questions. .ti -0.25i \fBReading\fR .sp 4p \fIUnderstanding Unix/Linux Programming\fR by Molay is the main text This book follows the course closely. Two other texts are not required, but are helpful additions: \fIAdvanced Programming in the Unix Environment\fP by Stevens is more encyclopaedic - has all the info and is an excellent reference. \fILinux Application Development\fP by Johnson and Troan provides supplemental information about programming for Linux. .ti -0.25i \fBRequired Work\fR .sp 4p A final exam and six programming assignments. The assignments are spaced evenly through the term. Most assignments build on or follow examples and ideas presented in class. Grades are based on a final exam and the programming projects. The weighting is roughly 35% exam, 61% for projects, 4% for class participation. For details on assignments, see the Assignments page on the course web site (cscie28.dce.harvard.edu/\*(Tidce-lib215). .ti -0.25i \fBFinal Exam\fP .sp 4p The final format is to be determined: either proctored at home with Canvas or proctored in person on paper. .ti -0.25i \fBCourse System, VPN\fR .sp 4p The course machine is cscie28.dce.harvard.edu. Connect using ssh over the Harvard VPN. Detailed instructions for the VPN can be found here: https://harvard.service-now.com/ithelp?id=kb_article&sys_id=f1766696db1e94184415 60fdd39619ef .ti -0.25i \fBAccounts\fR .sp 4p Your username on the E28 server is your Harvard NetID. You need a \fIHarvard Key\fP to get a NetID. Claim your \fIHarvard Key\fP at https://key.harvard.edu/ . For details about claiming your key, .br visit: https://extension.harvard.edu/for-students/support-and-services/computer-and-e-mail-services/ .sp 8p You can find your NetID at https://key.harvard.edu/manage-account. Accounts will be available one week before classes start. .bp .sp 0.6i .tl '''page %' .sp 0.1i .ti -0.25i \fBHelp\fR .sp 4p .sp -12p .TS center; lb l. Review Sections Online meeting one hour each week at a time to be determined. .sp 4p Office Hours Online with Zoom, times to be arranged .sp 4p Ed Use Ed discussion on Canvas to send questions to staff and to start and participate in class discussions. .sp 4p web page http://cscie28.dce.harvard.edu/\*(Tidce-lib215/ .TE .ti -0.25i \fBInfo Sheets/Scheduling\fR .sp 4p Please go to \ \ http://cscie28.dce.harvard.edu/\*(Tidce-lib215/infoform\ \ to tell us your preferences for section and office hours time. Do this now. .ti -0.25i \fBAccessibility\fR .sp 4p The Extension School is committed to providing an accessible academic community. The Accessibility Office offers a variety of accommodations and services to students with documented disabilities. Please visit www.extension.harvard.edu/resources-policies/resources/disability-services-accessibility for more information. .ti -0.25i \fBAcademic Integrity/Plagiarism\fR .sp 4p You are responsible for understanding Harvard Extension School policies on academic integrity (www.extension.harvard.edu/resources-policies/student-conduct/academic-integrity) and how to use sources responsibly. Not knowing the rules, misunderstanding the rules, running out of time, submitting the wrong draft, or being overwhelmed with multiple demands are not acceptable excuses. There are no excuses for failure to uphold academic integrity. To support your learning about academic citation rules, please visit the Harvard Extension School Tips to Avoid Plagiarism (www.extension.harvard.edu/resources-policies/resources/tips-avoid-plagiarism) , where you'll find links to the Harvard Guide to Using Sources and two free online 15-minute tutorials to test your knowledge of academic citation policy. The tutorials are anonymous open-learning tools. .sp 8p Details Academic conduct Unless otherwise stated, all work submitted as part of this course is expected to be your own. You may discuss the main ideas of a given assignment with other students (provided that you acknowledge doing so in your solution), but you must write the actual solutions by yourself. This includes both programming assignments and other types of problems that we may assign. Prohibited behaviors include: .sp 6p \(bu Copying all or part of another person's work, even if you subsequently modify it \(bu Viewing all or part of another student's work \(bu Showing all or part of your work to another student \(bu Consulting solutions from past semesters, or those found in books or on the Web \(bu Posting your work where others can view it (e.g., online) \(bu Receiving assistance from others or collaborating with others during an exam, or consulting materials except those that are explicitly allowed. .sp 8p If we believe that a student is guilty of academic dishonesty, we will refer the matter to the appropriate administrative committee. Penalties for this type of behavior are typically severe. .ti -0.25i \fBGenerative AI\fR .sp 4p \fBCourse Goals\fP: The goals of CSCI-E28 are to help you understand the Unix/Linux system API and to improve \fByour\fP programming and design skills. In the same way that using Google Translate to do assignments for a course in French language and culture prevents students from actually learning French language and culture, using Chat-GPT or other generative AI system to produce syntax, algorithms, and problem-solving prevents \fByou\fP from actually learning syntax, algorithms, and problem-solving. .sp 8p In order \fBto achieve these goals\fP, we expect students to practice syntax, algorithm design, and problem solving. We expect that all work students submit for this course will be their own. We specifically forbid the use of ChatGPT or any other generative artificial intelligence (AI) tools at all stages of the work process, .bp .sp 0.6i .tl '''page %' .sp 0.1i including preliminary ones. Violations of this policy will be considered academic misconduct. We draw your attention to the fact that different classes at Harvard could implement different AI policies, and it is the student's responsibility to conform to expectations for each course. .ti -0.25i \fBAttendance/Participation\fR .sp 4p Students are encouraged to attend class during the live presentation and to participate by asking and answering questions. People who cannot attend class may participate by attending office hours, review sections, and on the Ed discussion site. .ti -0.25i \fBCredit/Work\fR .sp 4p Students enrolled for graduate credit will do additional software design/planning documents for each project. .in -0.25i .ll +0.25i .sp |10i .ps 8 .tl '''Modified \*(Lm' .ps 0