SYLLABUS FOR C PROGRAMMING I

 

Term:  Fall, 2003-2004 (031) (September 2 – December 12, 2003)

Course Number: CIS 312x

Instructor:   Mr. Darren Henderson

Office: Room 508

Office Phone: (219) 473-4346

E-mail:  dhenderson@ccsj.edu

Office Hours:                  Monday                                 12:00 p.m.- 2:00 p.m.

                                                                  4:00 p.m.- 7:00 p.m.

                                Thursday              12:00 p.m.- 2:00 p.m.

                                                                  4:00 p.m.- 7:00 p.m.

                                Friday                     12:00 p.m.- 2:00 p.m.

 

Instructor Background:

Darren Henderson earned a B. S. in Engineering from Purdue University Calumet and a M. S. in Electrical Engineering from Purdue University with a specialty in Communications and Signal Processing.  His undergraduate curriculum was characterized by a strong emphasis in mathematics and physics including courses in Advanced Calculus, Partial Differential Equations, Complex Analysis, Advanced Analysis, Electromagnetic Field Theory, Optics, and Quantum Mechanics.  As his undergraduate senior design team project, Darren worked on a prototype for a home security and convenience system that provided a speech synthesis capability.  His task was to write the assembly language software for the Motorola HC11 microcontroller and to work with the Texas Instruments speech synthesis chip.  Darren’s graduate coursework included courses in Digital Communications, Digital Signal Processing, Image Processing, Computer Networks, and Estimation Theory.

Darren joined the Computer Information Systems Program at Calumet College of St. Joseph in 1995.  He regularly teaches the courses C Programming I and II, Hardware and Software Concepts, and Data Communications and Networking Theory.  In addition to his teaching activities, Darren has worked for CCSJ's Computer Services Department.  He used his engineering background and skills to help lay the groundwork for the school's existing computer network and services.  He was responsible for initially creating the faculty and staff e-mail accounts and for making the school's computers (faculty, staff, and 4th floor computer labs) Internet accessible.  His duties involved Unix/Linux and Windows NT System Administration and TCP/IP Network Administration in support of DNS, DHCP, WWW, and e-mail services.  He was also responsible for implementing an early firewall to protect the school's Univers database system from unauthorized access.  He currently is working on ways of integrating the Blackboard 5 e-learning environment into his courses at CCSJ.

                Before his tenure at CCSJ, Darren was an adjunct instructor in the Electronics Technology Department at Ivy Tech State College in Valparaiso.  He taught a multitude of courses including: Circuits I and II, Solid State I and II, Digital Principals, Digital Applications, and Electricity for HVAC.

                His current research interests are in C++ programming, software engineering for Internet applications, and network security.

 

Course Time: Thursdays 7:00 p.m. – 10:00 p.m.                Room 418

 

Course Description: This class presents a threshold look at C's syntax and logic structures.  A subset of Microsoft's Quick C is used to develop a simple database system.

 

Prerequisite: CIS 115, CIS 125.

 


Learning Outcomes/ Competencies:

Students in this course will:

 

·         use the Visual C++ Integrated Development Environment (IDE) to enter, compile, link, and debug C programs.

·         use C’s primary data types (i.e. int, char, float, and double) appropriately.

·         successfully demonstrate the use of structured programming concepts (selection, sequence, and iteration structures) in C program development.

·         successfully demonstrate the use of modular programming concepts by a) incorporating C’s built-in functions into user-written C programs and by b) creating user-defined custom functions.

·         use C’s pointer “data type” appropriately when working with functions.

 

Textbooks:

The Art of Programming: Computer Science with C, Lawlor, Steven C., PWS Publishing Company, Boston, MA, 1996. (ISBN 0-314-06814-7)

 

Software:

The software used for this course is Microsoft Visual Studio 6/Visual C++ 6 (VC++ 6).  This software is installed on the 4th floor computer labs (Room 416, 418, 419, and 420) for student use.  For users wishing to do C programming outside the CCSJ labs, the CCSJ Library has 4 copies of Visual Studio 6 available for check-out to CCSJ students possessing a valid library/identification card.  The software may be checked out for 3 days.  The late fee for not returning the program CDs is $10 per day.  A newer version of Visual Studio, Visual Studio .NET, is also available for purchase in the CCSJ Bookstore for $19.95.  However, Visual Studio .NET is optimized for C# (pronounced C sharp) program development instead of C program development.  Visual Studio .NET has a built-in C compiler but it must be executed through a DOS prompt and the IDE debugger can not be used to trace C programs.  Hence, the best option is for a student to use VC++6 on their home computer to do the required C programming for the course.   The software may be obtained by checking it out from the library or even purchasing it from a company specializing in educational software sales.  

 

The operating system (OS) software used on the 4th floor computer labs is Microsoft Windows XP Professional.  In this OS version (and in XP Home), a USB flash memory device should be natively usable without the installation of any additional device drivers.  However, this is usually not the case in other OSes like Windows 98 or Windows ME.  These OSes require the installation of the appropriate hardware device drivers in order to be able to recognize the device properly.

 

Storage Media:

Students will need to use some form of portable read/write storage (e.g. USB flash memory, CD-R/Ws, and/or floppy disks) to store their C source code on during program development and/or to transport files between the CCSJ laboratory computers and their personal computer.  The simplest device to use would be either a USB flash memory device or a “DirectCD” formatted CD-R/W disk.  The reason is that when building C source code VC++ 6 creates “extra” files that can quickly fill up a floppy disk and produce spurious errors.  Using a storage medium with sufficient storage (32 to 64MB should be adequate) capacity will allow the student to build their C source code without worrying about exhausting the storage space.  The procedure to use a floppy disk for C program development in VC++ 6 is more complicated since it requires transferring files back and forth from the floppy disk to the hard disk.  This procedure is described more fully in the handout “Microsoft Visual C++ 6 Command Summary “ for students interested in this method.

 

AVI Tutorials:

AVI tutorials demonstrating the usage of the VC++ 6 Integrated Development Environment (IDE) for C program development are available on the CCSJ network.  Students may “burn” these tutorials onto a blank CD-R or CD-R/W if they are interested in viewing these tutorials on their home computer.  Students that wish to view these tutorials in the CCSJ labs are asked to bring in a pair of headphones (with a mini- RCA plug) so as not to disturb their classmates in the process.  Students are highly encouraged to view these tutorials in order to quickly and fully master the basic usage of VC++6 early on in the semester.

 

Learning Strategies:

Due to the technical nature of the subject matter, the course material is presented mainly through lecturing.  The bulk of the course material is presented through Microsoft PowerPoint slide shows.  In addition, sample programs from the textbook are “traced” using the Visual C++ 6 IDE during class to highlight important C concepts.  Students are encouraged to participate during this time by asking questions.  It is anticipated that the repeated use of the VC++ 6 IDE in class will help to facilitate the student’s learning of this essential tool.  Students demonstrate the course competencies in part by completing regular programming assignments.

 

Assessment:

The student’s grade is computed using the weights shown below:

 

                                Homework/Projects        50%

                                Midterm                 20%

                                Final                       30%

                                                                        ------

                                                                        100%

 

Class Policy for Assignments/Exams:

Homework problems will be assigned throughout the duration of the term. Homework will be collected generally two weeks from the date assigned.  Late homework is subject to an automatic deduction to be determined by the instructor.  All LATE Homework received after 12 p.m. (NOON) on December 6, 2003 will NOT be considered for credit and will result in an assigned score of zero.

 

The official class policy is that there is NO MAKE-UP EXAMS, however in recognition of the occasional personal and/or family emergency that may occur during the semester, a make-up exam may be granted provided all the following conditions are met:

1)      The instructor is notified of the make-up exam request by the student on or before the scheduled exam date.

2)      A suitable alternate time convenient to the instructor can be arranged.

3)      The missed scheduled exam must be made-up within one-week of the scheduled exam date.

 

The granting of make-up exams is NOT an entitlement but is a courtesy granted to the student by the instructor.  If this courtesy is abused by a particular student or the class as a whole, then the privilege may be revoked.

 

A missed midterm exam or final exam will be assigned a score of zero.

 

Exams are typically closed book and closed notes.

 

The FINAL EXAM is comprehensive!

 

The function of the homework problems and class/laboratory activities is that they serve as exam preparation.  The function of the exams is to confirm that the student has achieved the required level of proficiency.

C Source Code Requirements:

Students are required to submit hardcopies of their C source code and their C program output as their homework program deliverables.  Students are expected to produce/submit C source code that is well-structured (i.e. uses the Lawlor C style and is properly indented) and properly commented.  All C source code hardcopies shall contain a multi-level comment at the top of the source code of the form:

 

/*   Jane Doe

     CIS 312 – C Programming I

     Chapter 1 – Program 1 – page xx

*/

 

Student’s C source code submissions are also evaluated for the efficiency of the program implementation and for the degree to which the homework program requirements are fully met.

 

Students are expected to write their own C source code.  Students that repeatedly submit code that was produced by another student are engaging in academically dishonest behavior.  This is a serious matter and the student becomes subject to serious consequences such as failure on the given assignment and/or failure from the course.  Students that submit suspicious code will be required to go through a code review with the instructor to verify the student’s understanding of the code that was produced.  If this code review goes poorly then the student may be subject to the serious consequences that are described above.

 

Grading Scale:

 

A: 93-100                A-: 90-92                  B+:  87-89     B: 83-86         B-:  80-82    C+: 77-79

C: 73-76                 C-: 70-72                 D+:  67-69     D: 63-66         D-:  60-62    F:  59 & below

 

Class Policy on Attendance:

Attendance will be taken for administrative purposes.  Although class attendance does NOT account for a percentage of the assigned semester grade, it is vital that students attend both the class lectures and laboratories on a regular basis in order to be informed of any important class announcements, any deviations from the course outline below, and of any supplemental material presented. 

 

However, class/lab attendance and participation is used as a factor in deciding borderline cases. (if applicable)

 

Course Outline:

 

Class Dates:

Topics/Assignments:

WEEK 1

9/04/2003

Course Policies/Syllabus

Chapter 1 – Computers and Programming

WEEK 2

9/11

Chapter 2 – The C Language

WEEK 3

9/18

Chapter 3 – Building a C Program

WEEK 4

9/25

Chapter 4 - The Selection Structure

WEEK 5

10/02

Chapter 5 - The Iteration Structure

WEEK 6

10/09

Structured Programming Concepts/Exercise #1

WEEK 7

10/16

Midterm Exam Review

WEEK 8

10/23

Midterm Exam


 

WEEK 9

10/30

Structured Programming Concepts/Exercise #2

WEEK 10

11/06

Chapter 6 - Functions

WEEK 11

11/13

Chapter 10 - Pointers (page 403-420)

WEEK 12

11/20

Selected C Topics

Final Exam Review #1

WEEK 13

11/27

No Class – Thanksgiving Recess

WEEK 14

12/04

Final Exam Review #2

WEEK 15

12/11

Final Exam

 

 

Class Participation:

See "Class Policy on Attendance" above

 

 

Center for Academic Excellence:

Tutoring assistance is free to all students of Calumet College of St. Joseph.  The Center for Academic Excellence (CAE) has experienced and well-trained tutors in most subject areas to help students who are struggling in a course or who are doing well and would like to do better.  Regular weekly tutoring sessions are likely to improve your grade.  In addition to the face-to-face tutoring offered by the Center, online tutoring is available for students whose schedules do not permit them to meet with a tutor in person.  Call the Center for Academic Excellence at (219) 473-4287, to schedule a tutoring appointment or for additional information about how to access online tutoring assistance.

 

Academic Alerts:

In order to assist students to successfully persist towards course completion, Calumet College of St. Joseph asks instructors to give a written evaluation in the form of an Academic Alert at the end of the 5th and 10th weeks of the semester (Fall and Spring) for any students performing below “C” average work.  The current practice is to have the instructor hand-deliver the alert to the student if possible otherwise the alert is forwarded to the CCSJ Academic Advising office where it is then delivered to the student via the U.S Postal Service.  The intent of the academic alert system is to notify the student of substandard performance so that they may take steps to rectify the situation (e.g. tutoring through the Center for Academic Excellence)  However, students should realize that NOT receiving an Academic Alert on week #5 or week #10 is NOT a guarantee of NOT receiving a grade below a “C” for the semester since a student’s assigned semester grade depends on the student’s performance during all 15 weeks of the semester.

 

Statement of Plagiarism:

If an instructor or other Calumet College of St. Joseph personnel find that a student has plagiarized or been involved in another form of academic dishonesty, the instructor or other personnel may elect to bring the matter up for judicial review. The maximum penalty for any form of academic dishonesty is dismissal from the College. The procedures for judicial review are listed under the section of CCSJ handbook that addresses student grievances.

 

Please note: Calumet College of St. Joseph subscribes to Turnitin.com and all papers can and may be submitted for checks on plagiarism from the Internet/Electronic sources/Databases.

 


Citation Guidelines:

Calumet College of St. Joseph adheres to citation guidelines as prescribed by the particular discipline (i.e., MLA, APA, and Chicago Manual of Style or Turabian.).  All of these guidelines are available in the Calumet College of St. Joseph library or bookstore.  These texts outline how to cite references from a variety of sources, including electronic media.

 

Withdrawal from Classes Policy:

After the last day for class changes has passed (see College calendar), students may withdraw from a course in which they are registered with permission from the faculty member conducting the course. A written request detailing the reason(s) for the withdrawal must be filed with the Registrar. The Registrar must receive written request for withdrawal by the last day of classes prior to the final examination dates specified in the catalogue. Written requests may be mailed to the Registrar or faxed to the College fax number 219-473-4259. Students are to make note of the refund schedule when withdrawing from courses. The request is forwarded to the faculty member, who makes the final determination to accept or deny the request. If the request is honored, the student will receive notification of official withdrawal; if denied, the notification will indicate why the withdrawal is disallowed.

 

An official withdrawal is recorded as a "W" grade on the student's transcript. Dropping a course without written permission automatically incurs an "F" grade for the course (see Refund Schedule).