Course Syllabus
Fall Semester, 2003
CIS C071: Computer
Programming in C
Instructor: Frank L.
Friedman
Office: Wachman Hall (nee Computer Center Building) Room 307
Hours: 9:30 - 11:00 AM, Tuesday and Thursday and 3-4pm Mon and Wed (drop in) Other hours by appointment only.
Appointments should be scheduled AT LEAST one day in advance. Try to verify that I will be there before you make any sort of a lengthy trip to see me.
I prefer to discuss lecture material and concepts during office hours. If you have questions about the lab material or need help with the lab work you should make an appointment to see your lab TA.
There will be a limit of 15 minutes per student if there are other students waiting for help. If you need more time you can get back in line for an additional 15 minute block. This limit ONLY applies when other students are waiting for help.
Phone: (215) 204-5559 External
1-5559 Internal
FAX: (215) 204-5082
E-Mail: frank.friedman@temple.edu
Home page: http://knight.cis.temple.edu/~friedman
Lecture Times: Tu Th 2:40-4:00 PM TL 103
Lab Times: Section 1: W 2:40- 4:30 PM CC 215
Section 2: Tu 8:10-10:00 AM CC 215
Lab
Instructor: Sir Howard L. Walowitz
Office: Wachman Hall 306 (Computer Center)
Phone: 215-204-6973
Email: walowitz@joda.cis.temple.edu
Home page: http://joda.cis.temple.edu/~walowitz
Office Hours: Tues 3:00-4:00, Thur 10:00-11:00 and by appointment
Prerequisites: First-level core math course
Description: In CIS 71, we introduce computers and computer programming in the C programming language. The topics covered include the general characteristics of computers, techniques of problem solving using the computer, algorithm specification, the C programming language, and writing, debugging and testing computer programs. CIS 71cannot be taken for credit if you have already completed CIS 61, 67 or 81. CIS 71 is a second level math core course.
Textbook: Problem Solving and Program Design in C, 4th Edition, Hanly and Koffman, Addison-Wesley, 2004
Reference Material: Kernighan and Ritchie, The C Programming Language, 2nd Edition, 1988, Prentice-Hall (in bookstore for either CIS C071 or 0072).
Labs: Students MUST be enrolled in a lab section in order to take CIS 71 for credit. Students are REQUIRED to attend the lab section that they are registered for. Three types of lab assignments will be given during the semester:
· The first type will involve the use of specialized self-paced software providing short exercises to test your knowledge of C. These exercises are independent of other parts of the course and are being used experimentally
· The second type will involve testing or modifying C programs that will be provided to you. You should be able to complete this second type of exercises during your assigned lab section provided you familiarize yourself with the exercise prior to attending lab.
· The third type of assignment involves writing C programs to solve programming projects assigned from the textbook. You should expect to spend some time working on these exercises outside of your scheduled lab time.
Quizzes: There should be a quiz a week during the semester. The quizzes will be given once a week, normally during the first 10-15 minutes of the first class of the week (Tuesday in our case). The total of your quiz grades will be equal to the value of one exam.
Grading: There will be two mid-term exams and a final during the semester. You semester grade will be based mostly on your exam and quiz scores, although lab assignment work can be used to raise (or lower) your final grade by as much as a letter. You MUST receive at least a SOLID D grade in your exam and quiz scores AND have B or better lab scores in order to receive a passing grade (C or better) for the semester. I do NOT drop any exam scores! More details on grading appear in the Course Guidelines document.
Weekly Schedule: Note that the schedule below is tentative and will be adjusted as the course progresses. See website and handouts for details of each Lab assignment. The lab pointers below all point you to the same web page. From there you can get the lab you need. It is not stated below, but you are expected to be following along in the notes on the web, including the reference documents, when appropriate.
Week 1 - Overview of hardware and software; Translating, linking, executing a program. Software Development. Introduction and overview of C: Variables, Data types. Declara-tion and executable parts of a program, including input, output and assignment statements.
Case Study: Miles to
Kilometers (Fig 1.13) ; Coin Collection Value (Fig 2.12) .
Reading: Preface, Chapter 1 all.
Chapter 2 (2.1-2.5)
Assignment:
Quick Check Exercises: Chapter 1, p. 29 (odd numbered exercises). Chapter 2, pp. 88-89 (1, 2, 5, 6, 10).
Review Questions: Chapter 1, pp 30-31 (1-8, 12). Chapter 2, pp. 89-90 (1, 2, 4, 7).
Lab00: Understanding
a Problem Statement
Week 2 - Formatting output; Building Programs: Libraries and Library Functions, Top Down Design, Functions without Arguments, Functions with Input Arguments, Testing.
Case Studies: Circle Area
& Circumference; Flat Washer Weights; Stick Figure.
Reading: Chapter 2 (2.6),
Chapter 3 all
Assignment::
Quick Check Exercises: Chapter 2, p. 89 (4 and 7), Chapter 3, p. 138 (2, 4, 6, 8)
Review Questions: Chapter 3, p140 (1-4)
Lab01: English
Coins
Week 3 - Control structures; Conditions; If statements; Switch
statement, Logical expressions and operators; tracing an algorithm; Nested if
statements.
Case Studies: Water Bill, Water
Bill II with conservation requirements.
Reading: Chapter 4 all
Assignments:
Quick Check Exercises: Chapter 4, pp. 199-200 (2, 3, 4, 9, 10)
Review Questions: Chapter 4, p202-03 (2, 3, 5)
Lab02: Block
Initials Display
Week 4 - “While”, “For”, “Do-while” Loops, Counting Loops,
Accumulating a sum/product; Conditional loops; Input validation loops, Sentinel
controlled loops, Nested Loops; Debugging programs with loops.
Case Studies: Monitor
Gasoline Tank, Radiation Levels
Reading: Chapter 5 all.
Assignments:
Quick Check Exercises: Chapter 4, pp. 199-200 (2, 3, 4, 9, 10)
Chapter 5, pp. 269-270 (2, 3, 5, 11)
Review Questions: Chapter 5, p. 269-70 (2, 5, 7)
Lab03: Male-Female
Stick Figures
Week 5 - Exam and recap covering Chapters 1-5, Labs 00-03.
Week 6 - Numeric and Character data types. Internal representations of data. Binary number systems. Computer data as (approximate) models of real-world information. Enumerated Data
Reading: Chapter 7 (7.1-7.3)
Assignments: Review Questions: Chap 7 (1-3), p354
Two short programming assignments: Dimes Addition; Powers of 1/2
Lab04: Expandable House Figure
Lab05a: Review
Lab on Computing Grades (Converting Numeric to Letter Grade)
Week 7 - Functions with output parameters; Pointer & Indirection Operator, Scope of identifiers; Formal & Actual Parameters, Debugging & Testing a Program System
Case Study: Arithmetic with
Common Fractions..
Reading: Chapter 6 all
Assignments: Review Questions : Chap 6, p317.
Lab06: Age vs
Relative Bone Density
Week 8 – Structured Data I: Arrays, subscripts, array arguments;
Searching, Sorting
Case Study: Sorting an Array
Case Study: Lookup Tables
Reading: Chapter 8 (8.1-8.6
)
Assignments: Review Questions: Chap 8 (1-6), p417.
Lab05b: Repeat
of Numeric Letter Grade Conversion Using Arrays
Week 9 - Text File
I/O, Arrays continued
Reading: Chapter 12, Sec
12.1
Assignments: Study carefully Mr. Walowitz’s code for the
Lab
Lab05c: Repeat
of Numeric to Letter Grade Conversion Using Files and Arrays
Week 10 - Exam covering Chapters 1 - 8, Labs 00-06
Not Complete as yet
Week 11 – Structured Data III - Strings continued Basics, String
Library functions, Concatenation, String Comparison, Character Operations
Case Study:
Reading: Chapter 9 (9.1 -
9.4, 9.6)
Assignments: Review Questions: Chap 9, p484.
Lab09:
Week 12 - Structure
Data II – structs; Structure types as I/O data; Structure type arguments and
function results
Case Study:
Reading: Chapter 11 (11.1 _
11.3)
Assignments: Review Questions : Chap 11, p587.
Lab08:
Week 13 - Text,
Binary File Processing
Case Study:
Reading: Chapter 12
(12.1-12.2)
Assignments: Review Questions : Chap 12(1-8)
Lab10:
Week 14 - Wrap-Up and Review
Assignment: Take home final question
Final Exam will cover Chapters 1-9, 11,12 Labs 00 -11