From: Fred Smith <flsmith@uic.edu>
Subject: MCS 260 course description
A Course Description for MCS 260
Introduction to Computer Science I
Current Text: C by Dissection by A. Kelley and I. Pohl. The
course covers chapters 1--9.
Purpose and Goal
MCS 260 is a first programming course, using the C language. It also serves as an introduction to the "unix" environment for many of the students. By the conclusion of the course students should be able to complete programming assignments that involve the use of arrays, pointers, functions from the libraries: stdio, stdlib, math, string, and ctype. They should also be able to find and program recursive algorithms that solve elementary problems.
Topics Outside the Text
The students will need an elementary primer in unix. One tutorial can be found following a link in the web page, "math.uic.edu", which is the home page for the Research Computing Lab. Make sure each student has an account on "icarus", which should be their default working environment.
In addition, many students will need an introduction in using a text editor(vs a word processor) such as pico that comes as a part of the pine mail package that seems to be a standard component of unix operating environments. Other editors such as vi, emacs, jed, and jove are usually available, but they have more features than the students require for this course, and they also have a steeper learning curve than pico. Most students appear to be contented to use pico.
Finally, a method needs to be set up for the students to send the source files of their machine problems to the lecturer.
Three such suggest themselves immediately. First, the lecturer can acquire an "icarus" account for himself and write a shell script for the students that will copy their files to a given destination in his home directory. Second, the students can use e-mail as a vehicle to transport their files to the lecturer.
Third, the students can be instructed to use "ftp" to transfer their files to the lecturer. A more sophisticated, but user friendlier method, would allow the students to use an internet browser to transfer their files to the lecturer.
General Information
Each student has two hours of discussion each week. The department tries to coordinate the use of SEO 200 so that one hour of the discussion takes place in the computer lab. This hands on practice with the TA present is important for many of the less experienced students in the course.
A Schedule of Lecture Topics
Weeks 1 and 2, Chapter 1: Writing an ANSI C Program,
and an Introduction to Unix.
Week 3, Chapter 2: Lexical Elements, Operators,
and the C System.
Weeks 4 and 5, Chapter 3: Flow of Control.
Weeks 6 and 7, Chapter 4: Functions and Structured Programming.
Week 8, Chapter 5: Character Processing.
Week 9, Chapter 6: The Fundamental Data Types.
Week 10, Chapter 7: Enumeration Types and "typedef".
Weeks 11 & 12, Chapter 8: Functions, Pointers, and Storage Classes.
Weeks 13 & 14, Chapter 9: Arrays and Pointers.
Week 15, A Course Review.
Machine Problems and Exams
An important part of the course is the assignment of programs for the students to write. The traditional number is six per semester. A consultation with a colleague who has recently taught the course can be useful in guaging the level of difficult to implement.
Also, two midterms or one midterm and two quizzes have been traditionally a part of the course. One suggestion is to allow the machine problems, midterms(quizzes), and final exam to each contribute one third to the course grade.
Machine Problems and Exams
An important part of the course is the assignment of programs for the students to write. The traditional number is six per semester. A consultation with a colleague who has recently taught the course can be useful in guaging the level of difficulty to implement.
Also, two midterms or one midterm and two quizzes have been traditionally a part of the course. One suggestion is to allow the machine problems, midterms(quizzes), and final exam to each contribute one third to the course grade.
Miscellaneous Suggestions
It is useful to set up a web page and use it communicate to the students. For a week one practice project have the students create a text file, using the editor they have chosen, and send it to the lecturer via the method she/he has chosen.
Around the eighth week, I recommend that command line arguments be introduced and their use be required in a machine problem.Arrays should be introduced earlier than week 11, even though they are mentioned first in chapter 8 of the text.
(prepared by Fred Smith, Dec. 6, 1998)