Course Syllabus
Fall 2013
CIS 1057 Section 1: Computer Programming in C
Instructor: Dr. Anwar Mamat
Lectures: Wednesday & Friday: 9:30-10:50 AM TTLMAN 0401B
Lab Times: Monday: 8:00 AM - 9:50 AM WCHMAN 104
My Office: Wachman Hall, Room 414
Office Hours: Monday 10:00am -12:00pm Or drop in when the door is open.
Other hours by appointment.
Phone: (215) 204-4207
E-Mail: anwar@temple.edu
TA: Dawei, Li
Office hours: Wednesdays 4:00~5:00 pm.
Office: Wachman Hall Room 108
email address: dawei.li@temple.edu
Prerequisites: First-level gen-ed math course
Description: In CIS 1057, we introduce some rudimentary concepts about computers, and the fundamental methodologies and approaches to computer programming in the C programming language. The topics covered include the general characteristics of computers, techniques of problem solving using the computer, informal methods to designing algorithms, the C programming language, and writing, debugging and testing computer programs.
Problem solving and programming methodologies are as important as programming in C. We will therefore place considerable emphasis on algorithm design as well as on programming in C. You will need to be able to design algorithms before you can write programs in C.
CIS 1057 cannot be taken for credit if you have already completed CIS 1053 (CIS C061), CIS 1068 (CIS 0067), or CIS 1073 (CIS C081). CIS 1057 is a second level math core course.
Textbook: Problem Solving and Program Design in C, 7th Edition, Hanly and Koffman, Addison-Wesley, copyright 2013
Reference Material:
Kernighan and Ritchie, The C Programming Language, 2nd Edition, 1988, Prentice-Hall (in bookstore for either CIS 1057 or CIS 2107 (CIS 0072). {You do not need to buy this book – it is not essential but it could be helpful}
Labs: When you register for this course, you are also registering for the lab session for this course. Students are REQUIRED to attend the lab section that they are registered for. Attendance will count as part of your grade. Two types of lab assignments will be given during the semester:
Quizzes: There will be quizzes given roughly once a week, normally during the first 10-15 minutes of the first class of the week (Monday in our case).
Grading: There will be one mid-term exam and a final during the semester. Your semester grade will be based primarily on your exam, quiz scores, and lab assignments. 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.
GRADES:
Labs and Project | 30% |
Midterm Exams | 20% |
Final Exam | 30% |
Quizzes | 15% |
Miscellaneous (attendance, etc.) | 5% |
FINAL GRADES
Final grades will be assigned as follows.
Grading Scale:
Final Grade |
Percentage |
||
A | 92-100 | ||
A- | 90-91 | ||
B+ | 88-89 | ||
B | 82-87 | ||
B- | 80-81 | ||
C+ | 78-79 | ||
C | 72-77 | ||
C- | 70-71 | ||
D | 62-69 | ||
D- | 60-61 | ||
F | 0-59 |
Weekly Schedule: Note that the schedule below is tentative and may be adjusted as the course progresses. See the CIS 1057 Blackboard Site (Documents Section) for details of each Lab and each Homework Assignment. You are expected to be following along in the notes on the web, including the reference documents, when appropriate. (All references are to the 7th Edition of the text.)
Lecture Schedule
This is a tentative outline of when the various topics will be covered. You are expected to have Schedule: read the designated chapters prior to attending the class. Exams will generally be based on material covered in class, but not necessarily restricted to it. The slack in the schedule provides for spill over and scheduling lectures for additional topics.
Week |
Data |
Topics |
Chapter |
Other | Assignment |
1 |
08/28, 08/30 |
Introduction Numerical Computation in C |
2 |
Assignment 1 | |
2 |
09/04, 09/06 |
Building Programs: Libraries and Library Functions, Top Down Design, Functions without Arguments, Functions with Input Arguments, Testing. |
3 |
Assignment 2 | |
3 |
09/11, 09/13 |
Control structures; Conditions; If statements; Switch statement, Logical expressions and operators; tracing an algorithm; Nested if statements. |
Assignment 3 | ||
4 |
09/18, 09/20 |
“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. Loops and Functions and their relationships. |
5 Loops |
||
5 |
09/25, 09/27 |
Pointers, Function with output parameters. Functions with output parameters; Pointer & Indirection Operator, Scope of identifiers; Formal & Actual Parameters, Debugging & Testing a Program System |
|
||
6 |
10/02, 10/04 |
Arrays, subscripts, array arguments; Searching, Sorting |
max_array.c | ||
7 |
10/09,10/11 |
Strings: string basics, string comparison, string manipulations |
8 |
palindrome.c input.txt | Assignment 5 |
8 |
10/16, 10/18 |
Review and Midterm |
|
||
9 |
10/23, 10/25 |
Recursion, and abstract data types |
|||
10 |
10/30, 11/01 |
Abstract data types: struct and union |
10 struct |
Assignment 6 | |
11 |
11/06,11/08 |
File I/O |
11 |
BlackBoard | |
12 |
11/13, 11/15 |
Dynamic Data Structure, dynamic memory allocation |
13 |
BlackBoard | |
13 |
11/20, 11/22 |
Programming in Large |
12 |
BlackBoard | |
14 |
11/27 |
Concurrent programming |
|
||
15 |
12/04 |
Final Review |
|
||
16 |
Dec. 11, 2013 8:00am-10:00am TL 401B |
Final Exam |
All chapters |
Final Exam will cover Chapters 1-13 (assigned sections) and all assigned homework and labs.
Date: Dec. 11, 2013 8:00am-10:00am TL 401B