Course Syllabus

Home | Syllabus | Schedule | Assignments | Resources 

Course Description

CENG 231: Systems Programming (3)

This course introduces students to concepts and techniques in systems programming with the programming languages C and C++ in a *nix environment. Students will gain insight into hardware-software interfaces through hands-on projects involving system calls, concurrency, network programming, memory mapping, and low-level mechanisms for inter-process communication. A laboratory component will allow students to implement conceptual ideas in code for enterprise, real-time, and embedded hardware targets.

Prerequisite: CPSC 230. Corequisite: CENG 231L.

Student and Course Learning Outcomes

Student outcomes represent what the course strives to accomplish.
Course learning outcomes represent what will be measured to determine if the course met its objectives.

  • Student Outcomes:

    • an ability to identify, formulate, and solve engineering problems by applying principles of engineering
    • an ability to develop and conduct appropriate experimentation, analyze and interpret data
  • Course Learning Outcomes:

    • Students will be able to read the given source code in C and understand its behavior
    • Students will be able to use C language syntax and semantics as well as compilation techniques
    • Students will be able to utilize Linux commands to navigate file systems and manipulate files
    • Students will be able to develop simple Linux system programs that use library functions and system calls

Course Resources

  • Course web site
    online at https://canvas.chapman.edu/courses/66186/
  • Text book 1:
    Paul Deitel, Harvey Deitel:
    C: How to Program,
    Eighth Edition,
    Pearson, 2016.
    ISBN-13: 9780133964646
    ( "D&D book")
    cover_dnd.jpg
  • Text book 2:
    Robert Love
    Linux System Programming:
    Talking Directly to the Kernel and C Library
    Second Edition,
    O'Reilly Media, 2013.
    ISBN-13: 9781449339531
    ( "Linux book")
    cover_linux.jpg
  • Reference book:
    B. W. Kernighan, D. M. Ritchie:
    The C Programming Language,
    Second Edition,
    Prentice Hall, 1988.
    ISBN-13: 9780137460847
    cover_knr.jpg

Course Contents

    • The class meets for two 75 minutes lecture and one 50 minutes laboratory each week for 15 weeks.
      # Topic Reading
      1 Course set up, introduction to Linux D&D Chapter 1
      2 C programming: syntax, I/O, basic data types, operators D&D Chapter 2
      3 Structured programming: statements, conditionals, loops D&D Chapter 3
      4 Program control: selection, repetition, control flow D&D Chapter 4
      5 Functions: function call and definition, scoping rules D&D Chapter 5
      6 Arrays: definition, access, operations D&D Chapter 6
      7 Pointers: definition, access, operations D&D Chapter 7
      8 Characters and strings: operations, library functions D&D Chapter 8
      9 Structures, unions, and enumerators D&D Chapter 10
      10 Linux system calls Linux Chapter 1
      11 File I/O Linux Chapter 2
      12 Process management Linux Chapter 5
      13 Memory management Linux Chapter 9
      14 Signals, inter-process communication Linux Chapter 10
      15 Socket programming -
  • Note that the contents and ordering of topics is tentative and may change!
  • Please see the Schedule page for up-to-date scheduling information.

Course Policies

    • Attendance Policy:

      Attendance at lecture sections is mandatory (sign-in sheets).
      It is the student's responsibility to make prior arrangements with the instructor for any absence known in advance.
      Make-up assignments can only be arranged for absence due to medical (or similar) reasons. Proper documentation is required.

    • Laboratory Policy:

      Laboratory assigned to this course are listed in the Schedule of Classes (see course code 2076). Assignment work is performed remotely from a laptop over a network connection to the school server. Students may remotely log in to the server at any time (24/7), but live instructor support is available only during the assigned laboratory hours. All laboratory work is to be done individually. Copying answers or program codes is strictly prohibited.
      Programs must be well documented with useful comments. Excessive, insufficient, or useless comments in the program will result in deducted points.
      Linux is the standard programming platform used for this course. All processes run on the Chapman Linux server, students.chapman.edu. While other platforms may be used to develop and test the programs, all coursework will be checked and graded on this server.
      A command-line terminal with SSH is required to log in to these servers. Please refer to the Canvas Resources page for a list of suitable SSH clients.

    • Assignments:

      Assignments are generally due on Fridays at 12pm (noon), unless indicated otherwise on the assignment page. Late assignments will be subject to a 25% grade reduction per day. Homework turned in after the due date/time and grace period will not be graded and will receive no credit. The clock on the server shall be used as the reference clock.
      All assignments are to be submitted electronically while being logged into the account on the server. Detailed instructions on homework submission will be provided with the assignment description.

    • Exam:

      The course includes two midterms and one final examination, scheduled as listed on the Canvas Schedule page. Each exam covers all the material discussed in the course until the day of the examination. Unless announced otherwise, all exams are closed-book examinations. No books, notes, computers, calculators, cell phones, or any other devices are allowed. Final examinations are administered during examination week at the time announced in the schedule of classes.
    • Grading Policy:

      The course grade is determined by the following components:
      • 40% Assignments
      • 30% Midterms
      • 30% Final examination
      If the course is taken as Pass/No Pass, you must receive a 70% or higher total weighted grade in the course to Pass.
    • COVID-19 Guidelines:

      This course follows all health guidelines and reporting guidelines defined by Chapman University:
      https://custayinghealthy.chapman.edu/

Academic Honesty:

Chapman University is a community of scholars that emphasizes the mutual responsibility of  all members to seek knowledge honestly and in good faith. Students are responsible for doing their own work, and academic dishonesty of any kind will be subject to sanction by the instructor/administrator and referral to the University's Academic Integrity Committee, which may impose additional sanctions up to and including expulsion. Please review the full description of Chapman University's policy on see https://www.chapman.edu/academics/academic-integrity/index.aspx .

You are encouraged to collaborate and share ideas but all work is to be done individually unless otherwise specified. Copying program code is strictly prohibited.

Course Materials:

All course material is for use in the context of this course only. Selling, preparing, or distributing for any commercial purpose course lecture notes or video or audio recordings of any course unless authorized by the University in advance and explicitly permitted by the course instructor in writing. The unauthorized sale or commercial distribution of course notes or recordings by a student is a violation of these Policies whether or not it was the student or someone else who prepared the notes or recordings.

Chapman University's Students with Disabilities Policy:

In compliance with ADA guidelines, students who have any condition, either permanent or temporary, that might affect their ability to perform in this class are encouraged to contact the Office of Disability Services. If you will need to utilize your approved accommodations in this class, please follow the proper notification procedure for informing your professor(s). This notification process must occur more than a week before any accommodation can be utilized. Please contact Disability Services at (714) 516-4520 if you have questions regarding this procedure, or for information and to make an appointment to discuss and/or request potential accommodations based on documentation of your disability. Once formal approval of your need for an accommodation has been granted, you are encouraged to talk with your professor(s) about your accommodation options. The granting of any accommodation will not be retroactive and cannot jeopardize the academic standards or integrity of the course.

Chapman University’s Equity and Diversity Policy:

Chapman University is committed to ensuring equality and valuing diversity. To access information part of Chapman's DEI (Diversity, Equity, and Inclusion) initiative, including on-campus resources, student-driven clubs, faculty and staff advocates, and how to report a concern or incident, please view the Diversity and Inclusion Resources. Students and professors are reminded to show respect at all times as outlined in Chapman’s Discrimination, Harassment, and Retaliation Prevention Policy.  Any violations of this policy should be discussed with the professor, the Dean of Students and/or otherwise reported in accordance with this policy.

Religious Accommodation:

Religious Accommodation at Chapman University Consistent with our commitment of creating an academic community that is respectful of and welcoming to persons of differing backgrounds, we believe that every reasonable effort should be made to allow members of the university community to fulfill their obligations to the university without jeopardizing the fulfillment of their sincerely held religious obligations. Please review the syllabus early in the semester and consult with your faculty member promptly regarding any possible conflicts with major religious holidays, being as specific as possible regarding when those holidays are scheduled in advance and where those holidays constitute the fulfillment of your sincerely held religious beliefs.accordance with this policy.

Student Support at Chapman University:

Over the course of the semester, you may experience a range of challenges that interfere with your learning, such as problems with friend, family, and or significant other relationships; substance use; concerns about personal adequacy; feeling overwhelmed; or feeling sad or anxious without knowing why. These mental health concerns or stressful events may diminish your academic performance and/or reduce your ability to participate in daily activities. You can learn more about the resources available through Chapman University's Student Psychological Counseling Services here: https://www.chapman.edu/students/health-and-safety/psychological-counseling

Fostering a community of care that supports the success of students is essential to the values of Chapman University. Occasionally, you may come across a student whose personal behavior concerns or worries you, either for the student's well-being or yours. In these instances, you are encouraged to contact the Chapman University Student Concern Intervention Team who can respond to these concerns and offer assistance: https://www.chapman.edu/students/health-and-safety/student-concern/index.aspx . While it is preferred that you include your contact information so this team can follow up with you, you can submit a report anonymously.  24-hour emergency help is also available through Public Safety at 714-997-6763

Course Summary:

Date Details Due