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