Course Objectives: The ultimate goals for this course are to prepare students to work close to the architecture of a system using C language including topics of threading and sockets. In particular: Memory, Sockets, and Threading.
The student is expected to have an understanding of basic data structures cover in Programming I and II (but a class in data structure already taken may provide an easier time COP-3530), object-oriented programming (COP 2210 and COP 3337), and computer fundamentals (CDA 3103). While this class will use linux/unix to work in lots of their problem, the student is not required to know unix/linux but knowing it in advanced of the class may beneficial. In particular, how to edit a file (vim, emacs, or nano), compiled a basic C file (gcc), and do basic operations in the terminals such as directory listing (ls), copying (cp), and moving (mv), among others. Nevertheless, The student will be given enough information to do this. Some students may prefer to edit their homework in their editor of their choice (e.g., Sublime) and then copy the files to a linux/unix server (using sftp or any other methods).
If you are already running a unix/linux systems (including macosx, freebsd), you can worked directly in your favorite editor, without the need to use a terminal editor. Nevertheless, it is important that you at least know how to use a basic terminal editor. The nano and vim editors may be the simpler ones to use in the terminal. If you have Windows OS, you may want to install a virtual machine with linux. While there is a way to run unix/linux programs and commands without a virtual machine (using cygwin), it may best to have a VM running. Remember that you can use the school's server to run your code, without the need of anything but a terminal program like putty (windows) or ssh from your linux/macosx machine.
I like to use Sublime editor when using a graphical interface. If you are running your own linux box, then it will be much easier to use eclipse or other IDE to debug if you need it. However, it is also important to know how to debug with gdb and use terminal editors. If you are going to run your own linux machine, use the distribution you like best. I like debian. Nevertheless, your code must compiled and run in ocelot.aul.fiu.edu server. It must compiled with gcc -std=c99 -Wall ...
Integrated Development Environments (IDEs)
An important note of Visual Studio 2015. Microsoft has always lack the C support. Its C++ compiler is very good (in my opinion). Lately microsoft has provided support for newer C standards. Visual Studio 2015 supports C99 with a few exceptions. It is important if you compiled C code in Visual Studio, you set it to C only (see here how).
Tips
It is important that you read ahead. This is even more important when you are taking a summer class that last 6 weeks. You are expected to be an more mature student at this point. The instructor is here to help. Please let me know if you have any questions. If you don't have the time that this class requires, you may want to take in a longer semester.
The class will start with an introduction to C including memory allocation. I will then move to threads, and network programming. Depending on the time, we will also covered unix/linux systems calls and other topics, such as signals. However, in a six-week course, it gets more complicated to introduce topics. While I like C++ very much and it is the prefer language for me and my projects, this class doesn't have time to cover both languages given the topics that are required to be covered. If you want to learn C++, I can give you additional resources for you to read on your own. I may allow you to do your last project using C++ (yet to be determined).
The most important topics for this course are: C, Threads, Networking (sockets), and Some Linux Systems calls. Whenever possible, we will use C99 standard. Depending on time, I will modified topics.
Pre-requisites: See CS Flowchat
Time and Location: TuTh 6:30PM - 9:50PM - ECS 143
Grading:
Grading Scale:
About assignments and projects
Course Policies
Exam Policies
Student Conduct and Learning Environment
Florida International University is a community dedicated to generating and imparting knowledge through
excellent teaching and research, the rigorous and respectful exchange of ideas, and community service. All
students should respect the right of others to have an equitable opportunity to learn and to honestly
demonstrate the quality of their learning.
Therefore, all students are expected to adhere to a standard of academic conduct, which demonstrates respect for
themselves, their fellow students, and the educational mission of the University. All students are deemed by the
University to understand that if they are found responsible for academic misconduct, they will be subject to the
Academic Misconduct procedures and sanctions, as outlined in the Student Handbook:
http://globaldatebooksonline.com/flipbooks/FIU/#2
YOU CAN ALSO DOWNLOAD A LOCAL COPY HERE: Student Handbook PDF - LOCAL COPY
Can I change this document?
From Faculty's handbook:
Instructors retain the right to modify the course syllabus for any reason throughout the semester provided that:
NOTE: In most cases, I will only change this document to accommodate the entire class. I will let you know if there are any changes.
POLICIES:
If you have any disability make sure you let me know with time to make any accommodation. Also, please make sure you check the FIU Disability Center web site at : http://drc.fiu.edu I will be more than happy to accommodate any part of this class, based on the recommendation of DRC.
Incomplete Grade Policy:
Only given in extreme cases and I reserve the right to deny an incomplete. In most cases, an I grade is given if you need to deploy (military service), serious and documented illness, or documented death of a family member. You cannot use an incomplete to get extra time to finish the class.
Important Dates:
Holidays (university will be closed)
How to do well in this class (applies to all classes)
The following items are what I found during my studies to help me. Maybe some will help you
You will need to submit your homework via moodle. When submitting homework to moodle, you will need to upload ONE compress file (zip,rar) with the following format: LastName_FirstName_PantherID_HW#.zip (or .rar) Each homework will stay if you need to print out the homework or not before coming to class.
CLASS READING MATERIAL:
Go to Moodle for lectures
ADDITIONAL INFORMATION: