C and Unix
Main Menu

Tools for Computing:
System Programming with C and Unix.


"That's one small step for [a] man, one giant leap for mankind"

July 21, 1969


Instructor: Jeff Whitmer

Jeff Whitmer

  • My Office: Luddy Hall 2050 (IF2050).
  • Office Hours:

    • Office Hour Special NOTES:
      • Any changes to my office hours will be posted here.

        • Tuesday, January 8, 2024: FIRST DAY THIS CLASS MEETS.

        • Monday, January 15, 2024: Martin Luther King Jr. holiday. IU CLASSES DO NOT MEET.

    • Luddy Hall 2050 (IF2050) Office Phone: 855-3974.
    • E-mail: jwhitmer@indiana.edu.

Meeting Times:

Spring Semester 2024:

MEETINGS: Tuesdays and Thursdays:, 9:45am - 11:00am (Sections 5016, 6377)
Miles Brand Hall I W109


animated GIF

Important Updates for All Students
enrolled in Spring Semester 2024:
[LAST UPDATED: 2/20/24]


  • CAT 3 scores and preferred solutions posted. Scores for CAT 3 are posted on Canvas. The preferred solutions for CAT 3 are available as a link on the Homework Assignments page in the "Important Shared Resources" section just below "Questions from JIT 1 thru 3." Because this is often a challenging exercise and there are a set of common confusions, I will discuss this in detail in class on Thursday, 2/22/24.

    Again, this can be a pretty challenging exercise. While there were several scores of 10/10, 1/2 the class scored 5/10 or lower. The average was 57.10%. Those who were not present and did not submit CAT 3 were not included in this average.

    While this was a small exercise, the various parts tested what you had learned by using/doing, as well as whether you had previously consulted the various other course resources and retained that information. Many of you seem to still be unclear about the logical operators like AND, OR, and NOT (~). Because there are key to several aspects of homework ASSIGNMENT 3, I would encourage you to review the preferred answers as promptly as your schedule permits. If you are unclear why those are the preferred answers, I would further encourage you to set up an appoointment with any of the 3 AIs, so you can things cleared up before ASSIGNMENT 3 is due Thursday.

    I would also note some of you took away my opportunity to give partial credit on several components by not showing your work. CAT 3 was worth 10 points. This should all be visible on your Canvas Gradebook.

  • Individual Homework PROGRAM 4 is now available via the Homework page. It is due at 11:59:00.00PM (SHARP) on Saturday, February 24, 2024 to your Canvas "Homework PROGRAM 4" assignment in the Individual Homework PROGRAMS group. Please read through it at your earliest convenience so that I can make any corrections or updates as promptly as possible. This is your version of what we worked on together in Meeting 11 last Thursday (2/15) and in Meeting 12 today (Tuesday, 2/20). Remember, unless you have already completed ASSIGNMENT 3, which may or may not be the case, that is your first priority and you have until "11:59PM SHARP" on Thursday, February 22, 2024 to get it completed and submitted. Also note: While we plan to have your ASSIGNMENT 3 scores and feedback available before PROGRAM 4 is due, keep in mind PROGRAM 4 does not depend on ASSIGNMENT 3 and you already have access to all the code we will share for PROGRAM 4 before it is due.

    IMPORTANT NOTE: Some of you still be confused about my absolute prohibition against using any and all comments that appear in my examples, the Meeting Guides, or elsewhere. I am reminding everyone of this because even the Meeting 12 version of Linked1.c has extensive comments that belong only to me or the original author of this example code. Make sure none of these comments appear in your PROGRAM 4 version of this example. There will be extreme consequences if they do appear, especially as I am providing you with this reminder not to include them.

  • Individual Homework PROGRAM 3 Scores Posted and emails on the way: Scores for Program 3 are posted and everyone should get an email with the details of their Program 3 scores by the end of today. Overall, a very good set of submissions that could have been even better if everyone had included all the required features. Some of you completely overlooked or ignored the requirement to use function prototypes, or overlooked that you were supposed to include ALL 3 possible statements to control access to the array data, or had various much simpler errors. We will review the use and placement of function prototypes in class on Tuesday to try to clear up any confusions. Failure to prototype all your functions will have a far greater impact on your scores in the remaining two ASSIGNMENTs and remaining PROGRAM.

    Some of you failed to prototype the "division" function that was part of one of the example files shared in class. As you were asked to prototype all functions, that one should have been prototyped as well. This will be important moving forward, as it was you first chance to consider prototyping a function that is within another function that is also prototyped.

    For those who submitted, the overall average on PROGRAM 3 was 96.76%, a nice 3% point improvement over PROGRAM 2. Since it is often the case that the average goes down by many percentage points and yields a class average in the 80s, this is great work! There was 7 100, and 10 in the 90s. Four (4) students did not successfully submit PROGRAM 3 and were not included in this average. Remember, Homework ASSIGNMENT 3 is due Thursday, February 22, by 11:59pm (SHARP). While we will review the ASSIGNMENT requirements in Meeting 11 on Tuesday and again on Thurssday (as needed), it looks like some number of you may have a fair bit to figure out before it is due. PROGRAM 3 was worth 100 points.

  • Individual Homework ASSIGNMENT 3 IS NOW AVAILABLE: You will find it on the Homework Assignments page in the ASSIGNMENTS section at the bottom of the page. ASSIGNMENT 3 is an ASSIGNMENT, meaning you will be figuring out how to write the code to solve each of the described problems. ASSIGNMENT 3 is due by 11:59PM EDT SHARP on Thursday, February 22, 2024. We will look at it on Tuesday, February 20 and again on 2/22 if needed. NOTE: The description is very long because it tries to show sample output for all parts of the assignment. The behavior and input/output expected is much easier to understand if you download and run the sample binary, A3S24, that is right there with the Assignment 3 description. NOTE: We plan to have your P3 feedback to you by the end of the day today Sunday, February 18, or first thing tomorrow, Monday, February 21, so you can benefit from it as you work on ASSIGNMENT 3. While this is well before the ASSIGNMENT 3 deadline, also keep in mind all that we will be sharing in class related to ASSIGNMENT 3 is contained in Meeting Guide 8 and, especially, Meeting Guide 9, from the past two weeks. [ALSO NOTE: In the ASSIGNMENT 3 description, my sample output calls the binary with "bittest" but you will be using the name of the precompiled version "A3S24" if you choose to download the sample binary.]

    Remember, you can begin work on ASSIGNMENT 3 as soon as you wish, but please try to look over Homework ASSIGNMENT 3 before class on 2/20/24 as I will demo the binary to be sure the functionality required is clearly understood.

  • Linked List Resource Available: There is a new link at the end of the readings section of "Important Shared Resources" in the first (top) section of the Homework Page. The same resource is linked in the last section of the "Weekly Reading Assignments" page immediately below Hoover Chapter 4. It is entitled "A good introduction to Linked Lists from Stanford." You are very strongly encouraged to read through it at your earliest convenience, but please try to read it at least twice before class on Tuesday, February 19, when we will have our discussion of Linked Lists. This is a topic Hoover chooses not to address but I think is far too important for us to simply ignore/avoid.

  • TENTATIVE/PRELIMINARY Homework PROGRAM/ASSIGNMENT schedule for the rest of this course:

    Because this course will be ending at about the same time many semester long courses will be having Midterms, we want to help you plan your schedule. Here is what we have planned for the rest of our work in A290/A590.

    Program 3: Will be posted tomorrow, 2/13/24, right before class and will be due on Saturday, February 17 by 11:59pm.

    Program 3 will be graded and emails send no later than Monday, February 19.

    Assignment 3: Will be posted Sunday, 2/18 and will be due on Thursday, February 22 by 11:59pm.

    Assignment 3 will be graded and emails send no later than Saturday, February 24.

    Program 4: will be posted Tuesday, February 20 and will be due Saturday, February 24 by 11:59pm. Keep in mind Program 4 depends on Meetings 11 and 12 [Next week's 2/20 and 2/22 meetings]. Keep in mind it is a PROGRAM, so you will have all the basic code from the Meeting Guides by the end of class on Thursday, 2/22.

    Program 4 will be graded and emails sent by the end of the day on Monday, February 26.

    Assignment 4: will be posted early on Monday, February 26 and will be due Friday, March 1 by 11:59pm. NOTE this due date is the official end of the course. We would like to give you more time, but I have to submit the grades by Monday, March 4, so we need time to grade this Assignment and set and submit Final Grades.

    Again, this is all tentative and preliminary, but our progress so far makes me confident this is how things will work, so you are probably safe in planning your schedule based on this calendar.

  • AI contact information and preferred appointment times now available. You will now find the contact information and preferred appointment times for the 3 AIs in A290/A590 C/Unix, Abhijith, Prajwal, and Sumanth, are on the Course website Homepage just below the section with announcements. Please note that "preferred appointment time" means just that. These are the times it is the most likely each one of them will be able to meet with you to answer questions that cannot be answered electronically. I do not ask them to hold office hours, as that is not a very effective use of ther time. If you have a question about an Individual Homework PROGRAMS or ASSIGNMENTS (with restrictions), you are welcome to contact any of them to set up an appointment either in person or virtually. Keep in mind we expect appointments to be kept and a missed appointment without notice may impact your options for future appointments. We will discuss this further in class tomorrow.

  • puTTY Video Primer posted: As promised I have put a "puTTY" video primer in the Media Gallery for anyone who needs to review how to use puTTY to access Silo. You can access the Media Gallery as one of the options at the bottom of the left hand menu in Canvas, just above "Campus Course Policies."


Graduate Associate Instructors, Spring 2024:

Abhijith Dameruppala

Abhijith Dameruppala

Email: adameru@iu.edu

  • Office Hours/Appointments: No formal office hours. Preferred appointment times available and appointments strongly encouraged.
    PREFERRED Appointment times:

  • Thursdays: 3:00pm - 5:00pm and Fridays: 3:00pm - 5:00pm

Prajwal Kaushal

Prajwal Kaushal

Email: prkaus@iu.edu

  • Office Hours/Appointments: No formal office hours. Preferred appointment times available and appointments strongly encouraged.
    PREFERRED Appointment times:

  • Tuesdays: 1:00pm - 3:00pm and Fridays: - 10:00am - 12:00pm

Sai Sumanth Muvva

Sai Sumanth Muvva

Email: saimuvva@iu.edu

  • Office Hours/Appointments: No formal office hours. Preferred appointment times available and appointments strongly encouraged.
    PREFERRED Appointment times:

  • Wednesdays: 10:00am - 12:00pm and Fridays: 1:00pm - 3:00pm