C and Unix
Main Menu

General Course Information.


General Course Goals.

I hope to accomplish several things in this course. Since this is the first time I've done it, while I think I have a pretty good idea of what needs to be covered and how, things could change as we progress.

In general, there are two areas I want cover: the conceptual/technical and the practical. In many cases, these are related, but not always. The conceptual amounts to the "why" and the technical amounts to the "how" aspect of any class. We want to learn why things work and how to use them. However, the "how" may be a bit different than you are used to, since there is not necessary a single "how."

The practical is the "hands on" component. This is what you will do primarily in the labs, where we will show you how to do use the software tools to create your apps.


"Technical" Course Goals.

The conceptual goal of this course is to start building a clear understanding of how the C programming language is different and unique. This will involve some work with Unix and with emacs. We will address the basics of C including: basic programming organization, if-else and switch-case constructs, functions, function prototypes, arrays, strings, bit-wise math and bit manipulation, pointers, memory management, structures, and linked lists.

When you complete this course, you should have a very basic understanding of C, the unix environment, emacs as an editor, and some basic programming standards.



I know this is what a student is often interested in first. Here's what I have in mind at this point.

Attendance: Attendance is mandatory if you want to pass. If you skip any meetings on a regular basis, thinking you can get by on the outlines or guides posted after class, you will almost certainly fail. I know, it's happened many times in my other courses where I make similar resources available. Attendance will be taken in every meeting in the form of cards dropped off in class (you provide the cards), CAT exercises, or other "hardcopy" work submitted in class. Attendance will be counted separately from your Participation score, but it is CRUCIAL that you understand if you are not in class, it is impossible for you to participate.

EFFECTIVE FALL 2019:The Health Center will no longer issue "notes" simply indicating you went there, so such notes will no longer be accepted for an "excused" medical absence. Offical medical notices clearly indicating a medical absence was required, signed by a physician, will STILL be accepted to excuse an absence. In light of this new policy, each student will have 1 absence to use during the 8-week class period that can be used without explanation or documentation. All other absences will be noted in interpreted as laid out on this page.

Attendance will be worth 5% of your Final Grade. ADDITIONAL NOTE on absences: Please note that, while you can be excused from class with written confirmation due to illness, interviews, or similar major events, that excuse applies only to your attendance. If any work is done and submitted during class (CAT, Quiz, etc.) that is not excused and cannot be made up. Because these exercises are a small part of the grade, and because you should not be absent, they are all considered "you need to be in class to complete them" type exercises. Be sure you are clear about this policy.

ACTIVE Course Engagement: This is the one more or less subjective component of the final grade. As such, it will be based upon my observations throughout the duration of the course. Participation doesn't just mean who asks the most questions or makes the most comments, but who is clearly prepared and engaged with the material. One thoughtful question or very salient comment is worth more than hours of "babble." Many of the other course components are specifically designed to aid you in being prepared to participate. This also includes my evaluation of you as an active and reliable class participant throughout the semester. In other words, I will be evaluating your overall engagement in the course, both in and out of the classroom. Missed work, chronic absenteeism, failure to respond to inquiries from me or the Undergraduate Instructors, lack of attention in class, tardiness, and any other information available will be used to make this evaluation. The rest is up to you. Because this is such a key part of the course structure, it will represent 10% of your final grade.

Homework: JITS/Written MINI Assignments/CAT exercises (including quizzes if any) There will be several regular written assignments that I call MINIs. In general, you will be asked to do additional research on a topic discussed on class. You will be encouraged to use all available resources, as long as you give proper credit for what you use. These will usually be due within 1-2 days after they are posted. These will be submitted electronically to your Canvas Dropbox. There will be regular JIT submissions, usually related to a MINI, that you will submit to me via email. We will also be using a variety of Classroom Assessment Techniques (CATs) during this course, some of which may be more traditional quizzes. Many of them will rely on every student being truly prepared when each meeting begins. REMEMBER: In-class exercises cannot be "made up" regardless of the circumstances surrounding your absence from class. The MINI + JIT + CAT exercises will be worth 10% of the final grade.

Homework: Programs There will be regular programming assignments based on the work we do together in each meeting. The assignments will be designed to show you are comfortable with what is happening in class. They will not be designed to significantly extend your knowledge, but may very well expect you to extend the concepts, strategies, or techniques we have worked on together. These will be submitted via the Canvas Dropbox system. The Programming Assignments will be worth 25% of the final grade.

Homework: Individual Assignments: There will be one or more (as many a 4) significant assignments in the course. These will ask you to create something on your own that is related to materials developed in our meetings, or on your own. They will probably be submitted via the Canvas Dropbox system. These Project(s)/Assignment(s) will be worth 50% of the final grade.

Overall Grade: So, your overall grade will be based on the following:

Regular Attendance: 5%

ACTIVE Course Engagement: 10%

Regular Written MINI + JIT Assignments + CAT Exercies + Quizzes: 10%

Regular Programs (based on classwork together): 25%

Individual Assignments (done on your own): 50%

Grading Scale:We will begin with the standard 90-80-70-60 grading scale. +/- grades fall in the upper and lower 2.5% of each range, respectively. This scale could drop by the end of the term, but it will never rise. This mean if you earn a 90.00% average, you are guaranteed an A-.


Important Course Policies.

Be absolutely sure you understand the following course policies. It will be assumed that you have read and accept these policies before the end of the first week of class.

If you have never been in a CS/Informatics course before, these policies may seem inflexible and severe. However, they are not unlike the sort of guidelines or contract stipulations you would find in the "real world" and that's the way I run this course. Consult the Important Course Guidelines for a more complete list. It is also worth noting these are almost exactly the guidelines Prof. Bardzell uses when he teaches A290/A590.

  1. You are solely responsible for your performance in this course. We are here to help you whenever possible, but all of your choices have logical consequences. Make sure you take interest in your scores and Final Grade before you earn them.
  2. No work will be accepted late, period. If I do not have any "hardcopy" assignment in my possession before I leave the meeting room the day it is due, it will be scored a 0 (zero). Similarly, if you miss the deadline on any material submitted electronically, even by .01 second, you should expect a score of 0 (zero) there as well. Should this occur with something like the Project(s)/Assignment(s), the result would be one or more full letter grades on your Final Grade.
  3. I do not accept work electronically, UNLESS specifically requested. While there some things, like Programming assignments, MINI, and JITS that MUST be submitted electronically, no other work will be accepted eletronically UNLESS clearly requested. If it is due on a certain day/date, I expect it in legible hard-copy form before the end of the meeting period at that time. Anything else will probably result in a score of 0. [See #2 above]. The same is true for anything submitted in any other manner requested.
  4. This is an Informatics, Computing, and Engineering course, and we expect you to use the technology. What this means, specifically, is we expect you to have an IU Email account and we expect you to use it. We expect you to check email at least twice daily, under normal circumstances. If an announcement is made in class regarding a schedule change, etc., we would expect you to check email at every opportunity. Additionally, we expect you to monitor the Canvas A290/A590 environment. This may become an important resource and you should learn how to use it if you don't already know how. Just be sure you understand that "I didn't check email" or "I didn't check the website or Canvas" will not be acceptable reasons for not getting work done on time or failing to meet other course requirments.
  5. Emergencies: I realize emergencies will arise, but it is still your responsbility to notify me as quickly as possible should such an emergency occur. NOTE: I consider an emergency to be something like a death in the immediate family in the last 24 hours or severe personal injury requiring hospitalization. In all other circumstances, I think you should be able to contact me before any assignment is due or other major course event. My email and voicemail numbers are clearly indicated on the course HomePage and I am in my office by 7:30am every day. I try not to be totally unreasonable in this regard, but if you come to me a week after missing an any assignment and claim you missed the assignment because of car trouble, I will not be very sympathetic. [If you missed a project deadline at work and didn't contact your Supervisor for week, would you expect her/him to be very sympathetic? If you had a major presentation to a client and failed to notify your Manager in advance that you could not attend, what would you expect the consequences to be?] Again, I am in my office on all class days by 7:30am and can be reached via email and my voicemail, both of which are posted on the HomePage.

Finally ...

Don't let any of the above scare you away. I just wanted to be sure anyone enrolled in the course this summer has a decent amount of information to make an informed decision.