COURSE DESCRIPTION Fall 2025 CSCI-E26 Modified 7/13/25 22:12 _________________________________________________________________ What is CSCI-E26? CSCI-E26 is a course in C and Unix/Linux programming with a focus on using C and Unix/Linux to create interactive pages for the World Wide Web. The course covers in detail almost of the the C language, introduces the major tools and ideas of Unix program- ming, and shows how to use HTML forms to connect to remote data- bases and services. Who is prepared for it? We assume you know how to write computer programs. In particu- lar, we assume you have written programs in a structured lan- guage, that you know about editors, understand the ideas of vari- ables, loops, arrays, functions, and some data structures. We expect you to have taken a course in data structures that include using linked lists. If you have not written complicated programs that use these ideas in some language, you will be overtaxed by the course. Administative Details Lectures Wednesdays, 7:40-9:40 PM ET using Zoom. short break. Covers ideas, sample programs. Be prepared to take notes. All sample programs used in class will be stored on line, so you can retrieve them and examine and/or print them later. Homework Several assignments, due on Sunday evenings at mid- night. See course outline. Must hand in listing and sample run. Must run on the course machine: cscie26.dce.harvard.edu. Can be developed on any machine. For details about the homework, see the Assignments page on the course web site (cscie26.dce.harvard.edu/~dce-lib113). Exams One midterm, one final. Grading The weighting is roughly: homework 45%, participa- tion 5%, midterm 20%, final 30% Sections One hour each week at time to be determined. Office Hours Online with Zoom, times to be arranged Questions/ Use Ed Discussion on Canvas to ask questions of Discussion staff and other students and to start class discus- sions. Info Sheets Need name, address, programming experience, and sec- tion requests. Complete the online form at https://cscie26.dce.harvard.edu/~dce-lib113/info- form/ . Help CSCI-E26 provides several forms of support to help you learn the material and succeed with the projects: o Students are encouraged to ask questions in class o I call on students in class< o Weekly sections discuss main ideas and homework strategies o Weekend workshops (with Zoom) provide hours of time to discuss ideas, meet other students, work in company of oth- ers o Ed Discussion forum for posting questions to the class or directly to teaching staff o One-on-one meetings by request o After-class zoom discussions Texts The required texts are C Programming, A Modern Approach by King (1st or 2nd edition), Your Unix: The Ultimate Guide, 2nd ed or 3rd ed. by Das. The Harvard Coop has them. Online book sellers have them. They are for reference and additional exam- ples. The suggested reading does not exactly follow lecture, but is pretty close. The C Programming book explains the language, the Unix book explains how to use Unix. Facilities The course machine is cscie26.dce.harvard.edu. Con- nect using ssh over the Harvard VPN. Instructions for the VPN can be found here: https://harvard.ser- vice-now.com/ithelp?id=kb_arti- cle&sys_id=f90a73f6dba21c5c60c0d9fcd39619ea Accounts You will have an account on the E26 server. Your username on the E26 server is your Harvard NetID. You can find your NetID at https://key.har- vard.edu/manage-account. Accounts will be available one week before classes start. You need a Harvard Key to set up your account. Claim your Harvard Key at https://key.har- vard.edu/ . For details about claiming your key, visit: https://extension.harvard.edu/for-stu- dents/support-and-services/computer-and-e-mail-ser- vices/ Web Site https://cscie26.dce.harvard.edu/~dce-lib113/ COURSE DESCRIPTION page 2 CSCI-E26 Accessibility The Division of Continuing Education (DCE) is com- mitted to providing an accessible academic commu- nity. The Accessibility Services Office (ASO) is responsible for providing accommodations to students with disabilities. Students must request accommoda- tions or adjustments through the ASO. Instructors cannot grant accommodation requests without prior ASO approval. It is imperative to be in touch with the ASO as soon as possible to avoid delays in the provision of accommodation. DCE takes student privacy seriously. Any medical documentation should be provided directly to the ASO if a substantial accommodation is required. If you miss class due to a short-term illness, notify your instructor and/or TA but do not include a doctor's note. Course staff will not request, accept, or review doctor's notes or other medical documenta- tion. Please visit https://www.extension.har- vard.edu/resources-policies/accessibility-services- office-aso for more information, or contact accessi- bility@extension.harvard.edu. Academic If you do not know how to start a project, feel Integrity overwhelmed, need help with some bugs, we offer a lot of support. There is no need to compromise aca- demic integrity. You are responsible for understanding Harvard Exten- sion School policies on academic integrity and how to use sources responsibly. Violations of academic integrity are taken very seriously. 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. Review important information on academic integrity and student responsibilities here: https://exten- sion.harvard.edu/for-students/student-policies-con- duct/academic-integrity ; for more on academic cita- tion rules, visit Using Sources Effectively and Responsibly (https://extension.harvard.edu/for-stu- dents/support-and-services/using-sources-effec- tively-and-responsibly) and review the Harvard Guide to Using Sources ( https://usingsources.fas.har- vard.edu). Details for Academic Conduct Unless otherwise stated, all work submitted as part of this course is expected t o be your own. You may discuss the main ideas of a given assignment with other students (provid ed that you acknowledge doing so in your solution), but you must write the actua l solutions by yourself. This includes both programming assignments and other ty pes of problems that we may assign. Prohibited behaviors include: o Copying all or part of another person's work, even if you subsequently modify it o Viewing all or part of another student's work o Showing all or part of your work to another student o Consulting solutions from past semesters, or those found in books or on the Web 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. Generative Course Goals: CSCI-E26 is a programming course using AI C and Unix. The goal of the course is to help you learn C and Unix programming and to improve your programming and design skills. In the same way that using Google Translate to do assignments for a course in French language and culture prevents stu- dents from actually learning French language and culture, using Chat-GPT or other generative AI sys- tem to produce syntax, algorithms, and problem-solv- ing prevents you from actually learning syntax, algorithms, and problem-solving. In order to achieve these goals, 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, including preliminary ones. Viola- tions of this policy will be considered academic misconduct. We draw your attention to the fact that different classes at Harvard could implement differ- ent AI policies, and it is the student's responsi- bility to conform to expectations for each course. COURSE DESCRIPTION page 3 CSCI-E26 Course Publishing or Distributing Course Materials: Stu- Material dents may not post, publish, sell, or otherwise pub- licly distribute course materials without the writ- ten permission of the course instructor. Such mate- rials include, but are not limited to, the follow- ing: lecture notes, lecture slides, video, or audio recordings, assignments, problem sets, examinations, other students' work, and answer keys. Students who sell, post, publish, or distribute course materials without written permission, whether for the purposes of soliciting answers or otherwise, may be subject to disciplinary action, up to and including require- ment to withdraw. Further, students may not make video or audio recordings of class sessions for their own use without written permission of the instructor. Attendance/ Students are encouraged to attend class during the Participation live presentation and to participate by asking and answering questions. Participation counts for 5% of the grade and also includes participation in online sections and office hours. Students who cannot attend class may participate in sections, office hours, and/or discussion site. Credit/Work Graduate-credit students will submit additional design/planning documentation for class projects. What is the Point of this Course? This is a course in Unix/Linux programming. Unix is an operating system, but it is more than just a control program for computers; it is a complete programming environment based on the idea of software tools. The Unix programming model is one of building complex, powerful solutions by combining simple, special-purpose tools. These tools are data manipulation programs. Every Unix system comes with a wealth of these tools. Tools are usually written in C. Combinations of tools are often written in a scripting language, such as the Unix shell, sh . Unix programming, then, consists of (a) designing and writing tools in C and (b) combining them using sh. Csci-e26 teaches C programming and sh programming. Where do web interfaces fit into this? To make your combination of tools available from web pages, you need to learn how to con- nect web pages to Unix programs. The Common Gateway Interface is the method web pages use to transfer data from web page to a server and back. By learning this third skill, you will be able to construct Unix tools, combine them into Unix programs, and use web pages for user input and output. Each of these three skills is useful on its own. C is a great language; its syntax is the basis of C++, JavaScript, Perl, awk, Java. Unix is written in C as are most of the software tools. Shell scripting is an essential skill for Unix administration and for power users. CGI programming may be done in any language, not just C/Unix. The principles we cover apply to any network and programming platform. These principles are the basis of all web-based applications.