2023/5/28 13:41 CMPSC 311: Intro Sys Prog – SUM23 Instructor Information Suman Saha, Ph.D. Assistant Teaching Professor Department of Computer Science and Engineering Email: [email protected] (mailto:[email protected]) Teaching Assistants Grandhi, Sohil Sri Mani Yeshwanth (mailto:[email protected]) Thrupti Raj Lakshmana Gowda (mailto:[email protected]) Overview and Schedule Credits 3 Location WEB Textbook None This course explores the art and methods of systems programming. Practically speaking, lectures and course assignments will provide students with experience programming in C within the UNIX environment. UNIX tools will be introduced, as will the general UNIX philosophy. Use of the Linux command line will be taught to proficiency. We will examine the use of shell programs, compilers, build sequences, memory management, file systems, signal processing, parallel programming, and other topics essential to computer scientists. In addition, we will introduce students to the basics of systems administration on UNIX virtual machines. A detailed list of lectures by lecture contents, assignments, and due dates (subject to change as the semester evolves) is available on the Module page. Office Hours (Join via Zoom tab) Instructor Suman Saha (mailto:[email protected]) Thrupti Raj Lakshmana Gowda (mailto:[email protected]) Office hours M 1 pm – 3 pm W 12 pm – 2 pm https://psu.instructure.com/courses/2251107/assignments/syllabus 1/7 2023/5/28 13:41 CMPSC 311: Intro Sys Prog – SUM23 的大纲 (mailto:[email protected]) Format of Meetings This course will be taught online in asynchronous mode. The three exams are to be taken online. Communication We will use Canvas Announcements to broadcast general messages. For questions that are not answered elsewhere, you should always contact TA first. If TA cannot answer your question, then you can ask the instructors or TA brings up the question to the instructors. We will be using Campuswire for class discussions. Please be smart and don’t ask questions that give away important aspects of the assignment, be nice, and search past threads to see if your question has already been asked before posting. Rules: Feel free to ask questions about lectures/assignments. Do not share your code or your program output. Use office hours to discuss your code with the course staff. Conceptual questions may generally be public (make your best judgement). It is okay to answer your fellow students’ questions if you are confident about your answers. Course Philosophy System programming concerns the development of software and services used by applications and operating systems, e.g., OS functions, defragmenter, web servers, databases, search tools, backup systems, etc. This course will provide the information and experience required to understand, design, and implement components of large and small software systems. In general, students successfully completing the course will be able to evaluate design alternatives according to engineering best practices, specifications, performance analysis, robustness, etc. This course will investigate one system and one programming language in detail through demonstrations, programs, programming assignments, etc. The specific system is Unix, a family of operating systems forming a complete standardized programming environment based on the idea of software tools. The specific language is C, which is widely used for operating system implementations, and which forms the basis for the C++ and Java languages studied in the prerequisite courses. This will help students understand operating system services available to application programmers, and provide a firm ground for the study of operating systems in general. IMPORTANT: This course covers the basic skills and topics that form the foundation of later CMPSC and CMPEN courses. For this reason, it is essential that every student attend and learn the material. It will be nearly impossible for students to complete later courses in these majors without mastery of this material. Grading https://psu.instructure.com/courses/2251107/assignments/syllabus 2/7 2023/5/28 13:41 CMPSC 311: Intro Sys Prog – SUM23 的大纲 The course will be graded on exams and course projects: Activity Percentage Course Projects 50% Mid-term Exam #1 15% Mid-term Exam #2 15% Final Exam 20% NOTE: 1. You must receive at least 40% of the points for the exams to pass the class. 2. You must receive at least 40% of the points for the class projects to pass the class. Grading Scale A 100 % A- < 94.0 % B+ <90.0 % B < 86.0 % B- < 82.0 % C+ < 78.0 % C < 72.0 % D < 68.0 % F < 60.0 % to 94.0% to 90.0% to 86.0% to 82.0% to 78.0% to 72.0% to 68.0% to 60.0% to 0.0% Course Projects The course projects require students to develop and debug system programs. The details of the projects will be made in class and through project descriptions made available on the course website. Exam Format • All the exams will be online. We will proctor the exams. • You have to arrange Wi-Fi to attend the exams during exam time. • You have to be on zoom and share your laptop/computer screen with the instructor/TA during the exams. • Any exam will not be accepted without proctoring. • You have to be present during the announced exam times (EST). You will not be given any different time to participate in the exams. Exam Date: https://psu.instructure.com/courses/2251107/assignments/syllabus 3/7 2023/5/28 13:41 CMPSC 311: Intro Sys Prog – SUM23 的大纲 Exam -1: Monday, 12th June 2023 Exam-2: Monday, 10th July 2023 Final Exam: TBA Academic Integrity Course Policy Academic integrity is the pursuit of scholarly activity in an open, honest and responsible manner. Academic integrity is a basic guiding principle for all academic activity at The Pennsylvania State University, and all members of the University community are expected to act in accordance with this principle. Consistent with this expectation, the University’s Code of Conduct states that all students should act with personal integrity, respect other students’ dignity, rights, and property, and help create and maintain an environment in which all can succeed through the fruits of their efforts. Academic integrity includes a commitment by all members of the University community not to engage in or tolerate acts of falsification, misrepresentation, or deception. Such acts of dishonesty violate the fundamental ethical principles of the University community and compromise the worth of work completed by others. The course projects are to be carried out individually. Students are explicitly not allowed to share information, source code, or even discuss the contents of the projects. Any violation of this policy will be considered cheating and will result in the student receiving an ‘F’ grade for the project and a full letter grade off the final grade for the course. Students with more than one violation may face stronger penalties per the university policy. Students are forbidden from copying code, makefiles, or any other material from the Internet (such as publicly available Github repos). Plagiarism will be strictly enforced by the TAs through in-depth reviews of your submissions. Any violation in the letter or spirit of this policy will also be considered cheating and handled as described above. Note that any publication of the assignments (e.g., via github or other system) is considered a violation of the above policy. More information on The Department of Computer Science and Engineering’s Academic Integrity Standards, which are applicable to this course, can be found at https://www.eecs.psu.edu/students/resources/EECS-CSE-Academic-Integrity.aspx (https://www.eecs.psu.edu/students/resources/EECS-CSE-Academic-Integrity.aspx) Lateness Policy Lab assignments are assessed a 10% per day late penalty, up to a maximum of three days after which a zero grade will be given. No exceptions. Period. Note that the last lab will not have a three- day grace period as we need to finish the grading of this lab as soon as possible and make time for the grading of the final exam. Virtual Machines/Student Computer As part of the course projects, every student will be required to maintain a virtual machine on a personal computer. Students are responsible for administrating and maintaining these virtual https://psu.instructure.com/courses/2251107/assignments/syllabus 4/7 2023/5/28 13:41 CMPSC 311: Intro Sys Prog – SUM23 的大纲 machines and are strongly encouraged to back them up frequently. It is the student’s responsibility to have a functioning and suitably powerful computer to run their virtual machines. Hardware or software failures are the student’s responsibility, and can not be used as an excuse for late assignments. The minimum requirements for this computer that has 100MB of free storage, 8GB of memory, and a 64-bit processor. Netbooks and tablets are not suitable. Course Prerequisites You must have completed and passed (with a grade of C or better) the prerequisite course CMPSC 221, Object-Oriented Programming with Web-Based Applications, which uses Java. You must have completed and passed (C or better) the earlier courses CMPSC 131 and 132. If, instead, you have completed and passed similar courses elsewhere, contact the instructor. Prior experience with Unix or C is not expected, but you should be very familiar with the concepts introduced in CMPSC 131 and 132 and know how to use an integrated development environment, e.g., Microsoft’s Visual Studio. If possible, you should take CMPEN 331, Computer Organization and Design, at the same time as this course, or within one semester of it. The connection between these courses would be stronger if we could require you to take both at the same time, but that’s not possible. In 331, you learn about the basics of memory organization (registers, cache, main memory, virtual memory), instruction execution, exceptions and interrupts, and the translation of procedural programming languages into machine instructions. This is a three-credit course, and you can expect to spend a lot of time outside of class working on the project programming. To avoid turning the programming assignments into a nightmare of unsuccessful debugging, you should recognize symptoms of confusion early and promptly ask for help from the professors or TA. With the exception of first and second assignments, the following assignments will build on previous assignments, so incomplete or poor code will make later assignments very difficult if not impossible. For this reason, it is essential students do not get behind on the projects. We will often give you some code as examples or as a starter kit for an assignment, and the use of that material is encouraged. After that point, the programming work should be done on your own. This will be strictly enforced. Course Ethics This course considers topics involving systems. As part of this investigation, we will cover technologies whose abuse may infringe on the rights of others. As an instructor, I rely on the ethical use of these technologies. Unethical use may include circumvention of existing security or privacy measurements for any purpose or the dissemination, promotion, or exploitation of vulnerabilities of these services. Exceptions to these guidelines may occur in the process of reporting vulnerabilities through public and authoritative channels. Any activity outside the letter or spirit of these guidelines will be reported to the proper authorities and may result in dismissal from the class. https://psu.instructure.com/courses/2251107/assignments/syllabus 5/7 2023/5/28 13:41 CMPSC 311: Intro Sys Prog – SUM23 的大纲 Any instance of sharing or plagiarism, copying, cheating on tests, or other disallowed behavior will constitute a breach of ethics and will result in the penalty identified above. Programming assignments must be completed without assistance or cooperation between students. Students are responsible for reporting any violation of these rules by other students, and failure to constitutes an ethical violation that carries with it similar penalties. When in doubt, please contact the course professor for advice. Do not undertake any action which could be perceived as technology misuse or cheating anywhere and/or under any circumstances unless you have received explicit permission from Professor Suman Saha. Disability Accommodation Penn State welcomes students with disabilities into the University’s educational programs. Every Penn State campus has an office for students with disabilities. Student Disability Resources (SDR) website provides contact information for every Penn State campus (http://equity.psu.edu/sdr/disability-coordinator). For further information, please visit the Student Disability Resources website (http://equity.psu.edu/sdr/). In order to receive consideration for reasonable accommodations, you must contact the appropriate disability services office at the campus where you are officially enrolled, participate in an intake interview, and provide documentation: See documentation guidelines (http://equity.psu.edu/sdr/guidelines). If the documentation supports your request for reasonable accommodations, your campus disability services office will provide you with an accommodation letter. Please share this letter with your instructors and discuss the accommodations with them as early as possible. You must follow this process for every semester that you request accommodations. Counseling And Psychological Services Many students at Penn State face personal challenges or have psychological needs that may interfere with their academic progress, social development, or emotional wellbeing. The university offers a variety of confidential services to help you through difficult times, including individual and group counseling, crisis intervention, consultations, online chats, and mental health screenings. These services are provided by staff who welcome all students and embrace a philosophy respectful of clients’ cultural and religious backgrounds, and sensitive to differences in race, ability, gender identity, and sexual orientation. Counseling and Psychological Services at University Park (CAPS) (http://studentaffairs.psu.edu/counseling/): 814-863-0395 Counseling and Psychological Services at Commonwealth Campuses (https://senate.psu.edu/faculty/counseling-services-at-commonwealth-campuses/) Penn State Crisis Line (24 hours/7 days/week): 877-229-6400 Crisis Text Line (24 hours/7 days/week): Text LIONS to 741741 Educational Equity/Report Bias https://psu.instructure.com/courses/2251107/assignments/syllabus 6/7 2023/5/28 13:41 CMPSC 311: Intro Sys Prog – SUM23 的大纲 Consistent with University Policy AD29, students who believe they have experienced or observed a hate crime, an act of intolerance, discrimination, or harassment that occurs at Penn State are urged to report these incidents as outlined on the University’s Report Bias webpage (http://equity.psu.edu/reportbias/) Recording of Class Sessions Video and audio recordings of class lectures/office hours will be part of the classroom/office hour activity. The video and audio recordings are used for educational use/purposes and only may be made available to all students presently enrolled in the class. For purposes where the recordings will be used in future class session/lectures, any type of identifying information will be adequately removed. https://psu.instructure.com/courses/2251107/assignments/syllabus 7/7

Leave a Reply