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 AssignmentYou 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

introduction.ppt

numerical.ppt

Installing Netbenas

f2c.c

rectangle.c

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

more about numerial

functions

change.c

f2c_function.c

change2.c

global.c

Assignment 2

3

09/11, 09/13

Control structures; Conditions; If statements; Switch statement, Logical expressions and operators; tracing an algorithm; Nested if statements.

4 conditionals

sum.c

switch.c

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

calendar

sin.c

fibonacci.c

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,7 Arrays & Pointers

matrix addition

file_IO.c

 

Assignment 4

sudoku solution 1

sudoku solution 3

6

10/02, 10/04

Arrays, subscripts, array arguments; Searching, Sorting

7 Arrays & Pointers

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

 9 Recursion

   

10

10/30, 11/01

Abstract data types: struct and union

10 struct

student.c

student2.txt

magicsquare.c

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