Fall 2014 COP 3223 Section 1 Syllabus

Introduction to C Programming

Course Website: http://www.cs.ucf.edu/courses/cop3223/spr2014

Lecturer: Dr. Pawel Wocjan

Office: HEC341
Email: wocjan@eecs.ucf.edu
Phone: 407-823-2844
Office hours: M W F 11:20 am - 12:10 pm

I am always available directly after class. I usually stay in the class room to answer lots of questions. The class room remains free because the following class starts at least 30 mintues later.

Teaching Assistants:

Name Time Location Email
James Cary WF 11:00am - 12:00pm HEC-308 aka "The Cave" james.t.cary@gmail.com
Matt Hyman MF 1:00pm - 2:00pm HEC-308 aka "The Cave" matt.hyman@knights.ucf.edu
Gaby Llave TR 3:00pm - 4:00pm HEC-308 aka "The Cave" gllave@knights.ucf.edu

Course Description:

COP 3223 provides an introduction to the Python and C programming languages for those with no prior programming experience.

The first part of the course (5 weeks) aims to teach the syntax and use of the major constructs of Python. We will study Python in the context of implementing a simple search engine.

The second part of the course (10 weeks) aims to teach the syntax and use of major constructs of the C language and will not focus on algorithmic design (COP 3502 focuses on algorithmic design). Some of these constructs include: conditional statements, loops, functions, arrays, pointers, strings, structures, and file I/O.

Course Materials

Recommended Materials:

The Programming Knights book is a custom textbook specifically written for the course that we teach at UCF. The goal in writing this book was to bring the cost down for students and also to provide a book that mirrored how the course is taught. This book will be cheaper than a new copy of the previous book, but potentially more expensive than a used copy of the previous book. Any of the previous textbooks for the course will be satisfactory for those who want a book of some sort.

Here are two of these previous textbooks:

Important Course Policies:

Cheating will not be tolerated. If a student is caught cheating, then the grade on that assignment for all students knowingly involved (the person providing answers as well as the one taking the answers) will be a -25%. (Note, this is less than 0%.) Since discussion of concepts with other students is often helpful, cheating must be more clearly defined. In particular, the following items are cheating: copying a segment of code of three lines or more from another student from a printout or by looking at their computer screen, taking a copy of another student's work and then editing that copy, and sitting side by side while writing code for assignments and working together on segments of code. In all of these situations, BOTH people responsible, the one from whom the three lines of code are taken as well as the person who takes those lines of code are engaging in academic misconduct. For example, if someone makes an electronic copy of their code accessible to ANYONE in the class (except for themselves) before 48 hours after an assignment is due, they are automatically culpable of academic misconduct. It does not matter if the recipient of the code doesn’t use it, uses it a little, or copies it directly. Furthermore, based on the severity of the case, the entire course grade for the student may be lowered an entire letter grade. If you get stuck on an assignment, please ask either a TA or the instructor for help instead of getting help from another student. Part of the learning process in programming involves debugging on your own. In our experience, when a student helps another student with an assignment, they rarely allow the student getting help to "figure out" problems on their own. Ultimately, this results in a lack of debugging experience for the student receiving help. The goal of the TAs and instructors is to provide the facilitation necessary for students to debug and fix their own programs rather than simply solving their problems. But, you are encouraged to work together on any non-graded programs to enhance the learning process.

In order to take a make-up exam, you must request one from the instructor. A make-up exam will only be given for UCF approved reasons.

Both the course web page and WebCourses will be crucial elements of the course. It is your responsibility to check both of these every three days. Some clarifications may only be announcements or via WebCourses, so make sure to check all announcements in a prompt manner.

Grading:

Homeworks: 25 %, First Exam: 25 %, Second Exam: 25 %, Final Exam: 25 %

Homeworks

Each programming assignment is to be done individually. To make sure students are keeping up with the course, assignments will be due every Friday, except for the first Friday and the weeks with exams. NO LATE ASSIGNMENTS WILL BE ACCEPTED!!! Also, note that assignments are to be completed individually. If we fall behind, some due dates will be changed. To get the true due date of each assignment, check WebCourses.

Exams

First Exam Second Exam Final Exam
02/12 (Wed) in class 03/26 (Wed) in class 04/28 10:00 - 12:50am in our class room

For each exam, you’ll be allowed to use a limited amount of notes as an aid. No calculators will be allowed on any exam. Other specifics for the allowable aids will be given online a few days before the exams.

The first and second exam will last for 50 minutes. The final exam is during the final examination period and will last 2 hours and 50 minutes.

The first exam covers only Python. The second exams covers only C. The final exam covers everything we have learned about C. The final exam does not cover Python.

Important Addition to the Grading Rules

The new policy makes it possible to use the final exam to replace one of the midterm exams if this replacement improves your final grade. In this case, the final exam effectively counts.

In other words, if a student's final exam percentage score is higher than their exam 1 or 2 percentage score, then we replace the lowest of the two exams. Hence we only replace one exam grade, not two. It is worth noting that we scale the replacement to how much the exams are worth.

For example, if a student got 10/20 on exam 1 and on the final they get 75/100, then the new score for exam 1 will effectively become 15/20.