COP 4338 Programming III
Syllabus

   
 Professor     Michael Robinson
 Email     michael.robinson@cs.fiu.edu
 Webpage     www.cs.fiu.edu/~mrobi002/teaching
 Tel     305-348-7523
 Office     ECS 212 D
   
 Course Title   Programming III
 Course Number   COP 4338
 Credits   3
 Class Type   Required
 Prerequisites   none
 Co-requisites   COP-3530 Data Structures
 Class Policies   FIU Academic Affairs policy on academic dishonesty
   


   Credits
  • 3

   Class Type
  • Core Class - Required

   Pre-requisites
  • COP2250 or COP2210 with a minimum grade of C. Those who have less than a C in one of these classes will be dropped from the course during the first week of class.

   Co-requisites
  • None

   Goals
   Class Type
  • Core Class - Required

   Attendance
  • Attendance will be taken.
  • Not everything I teach in this class is in the book.

   Simple Rules
  • All programs MUST be done in the computers provided by FIU or in your own laptop and presented in class or in the lab when appropiate.

  • All programs MUST be named:
    last name + first Name initial + pgm1, 2, 3 or 4.
    ex: SmithJpgm1.java  SmithJpgm1.c  SmithJpgm1.html 

  • Your email MUST have your name on it.
    FIU, ElHombre, TheItGuy, etc are NOT accepted.

  • On your email's subject write:
    Your class name and email's purpose: OS1 pgm1, WEB2 pgm4

  • Email me your source programs ONLY, attached. DO NOT COPY AND PASTE.

  • Your programs must compile using the terminal mode.

  • Programs with warnings will NOT be accepted. I will not debug your programs.

  • Do not change the names of the files I provide.

  • Programs turned in after the due date are NOT accepted.

  • Any modification to your grades MUST be done no later than ONE week after grades are posted in Moodle.




Tools Required - FREE
Use the computers provided by FIU or your laptops

Please download the following software as needed:

Windows users donwload ANSI C
Windows users: gcc ANSI C compiler. Allows you to compile your ANSI C programs

Mac Users
It seems that Apple has modified the GCC C compiler to work on the Mac computers, and that this C compiler is NOT pre-installed in the Mac computers. I have Googled for this information and I think the following link will be useful:
http://www.mac-forums.com/forums/os-x-applications-games/206170-c-complier-macosx-gcc.html
Another solution is to go to an Apple Store and have them install the GCC C compiler.

Linux
On Terminal mode type gcc and press enter, if gcc is not installed Linux will give instructions on how to download it and install it



Grading
3 Exams      20 points each   =   60 points
4 Programs 10 points each   =   40 points
Total   = 100 points

Pass       Fail
A  = 100-95    C- = 69-66
A- =  94-90    D+ = 65-60
B+ =  89-87    D  = 59-56
B  =  86-83    D- = 55-51
B- =  82-80    F  = 50-0
C+ =  79-76 
C  =  75-70 



Schedule for classes held on Monday, Wednesdays and Friday

Programming Requirements

Important Dates
 
  Program 1 Due : Friday May 30th at the beginning of Class.
  Exam 1 Friday June 6th, 2014 (covering Program 1, plus class material)
   
  Program 2 Due : Wed June 18th, 2014 at the beginning of Class.
   
  Program 3 Due : Monday July 7th, 2014 at beginning of class.
  Exam 2 Friday, July 18th, 2014 (covering Programs 1, 2, 3 and class material)
   
  Program 4 Due : Monday, July 21th 2014 at beginning of Class.
  Final Exam   Friday, August 1th, 2014 (covering all Programs all exams and all Class material)



    Assignments



Catalog Description:
  Topics include UNIX and C programming

Required Text Books
  - The C Programming Language (Kerninghan and Ritchie), Prentice-Hall, 1988.
    ISBN: 0131103628

  - Advanced Programming in the UNIX Environment
    W. Richard Stevens, Stephen A. Rago. Third Edition. Addison-Wesley

  - Source Code Advanced Programming in the UNIX Environment
    W. Richard Stevens, Stephen A. Rago. Third Edition. Addison-Wesley

  Other useful books for References (NOT REQUIRED):
   - C Programming: A Modern Approach, 2nd Edition by K. N. King. ISBN#: 0393979504
   - Learn C The Hard Way by Zed A. Shaw. Available online: http://c.learncodethehardway.org/book/
   - Advanced Linux Programming, by Mark Mitchell, Jeffrey Oldham, and Alex Samuel
          Available online: http://www.advancedlinuxprogramming.com/

Prerequisites Topics:
  - Significant programming experience in a modern programming language
  - Basic knowledge of UNIX systems

Expected Course Outcomes
  1. Master C basic types, arrays, and pointers
  2. Be familiar with the UNIX development environment, using utilities such as Makefiles, gcc, and gdb
  3. Master standard Input/Output
  4. Be familiar with process address spaces: Data, Heap, Code, and Stack
  5. Master dynamic memory management
  6. Master multithreading and synchronization
  7. Master writing program solutions to problems using the above features



Projected Schedule (COULD BE MODIFIED)

  Review : Things you need to know
                  ASCII = Binary = Decimal = Hexadecimal, %, (), {}, indentations, pseudo code, data type sizes,
                  simple makefile

  Chapter 1 : Tutorial Introduction
   
  Chapter 2 : Types, Operators, and Expressions
   
  Chapter 3 : Control Flow
   
  Chapter 4 : Functions and Program Structures
   
  Chapter 5 : Pointers and Arrays
   
  Chapter 6 : Structures
   
  Chapter 7 : Input and Output
   
  Chapter 8 : The UNIX System Interface
   


©2009-2099 Michael Robinson    ®