Computer Science 600.111 Summer 2002: Practical C




Home
News
Class Information
Lectures
Homeworks


News
  • Homework 1 was handed Friday 07/12 and is due Wednesday 07/17 in class.
  • Homework 2 was handed Wednesday 07/17 and is due in Wednesday 07/24 in class.
  • Due to power outage in the CS building, Homework 2 is extended till Thursday 07/25 6 PM
  • Homework 3 was handed Wednesday 07/24 and is due Friday 08/02. The deadline is very strict.
  • Class Information
    Instructor

    This course provides practical C notions for students who have taken an introductory programming class in C++ or Java. The class is intended for students interested in taking systems courses such as Operating Systems or Distributed Systems, but not exclusively so. The course also addresses issues such as writing portable code and debugging programs on UNIX systems. Course homework involves significant programming. Prereq: 600.107 or 600.109 or AP CS (AB course).

    Class Schedule
    • MWF 12-1:15, Shaffer 2
    Office Hours
    • NEB313, MW 11-12
    Academic Integrity

    Academic Honesty and Ethical behavior are required in this course, as it is in all courses at Johns Hopkins University. This course will strictly enforce the Computer Science Department Academic Integrity policy which can be found by following the link above.

    The essence of the policy is that you must work on your own on all assignments, unless told otherwise in writing. This includes discussing how to work on it and sharing code or solutions. You are also prohibited from altering or falsifying the output of programs. We run all code submissions ourselves and grade based on how they work when we run them. If it appears that you have falsified the reported results it will be treated as severely as if you had cheated or plagerized someone elses work.

    You are encouraged to talk with the professor about any questions you have about what is permitted on any particular assignment.

    Lectures
    Lecture slides will be posted on this site.

    1. Makefiles, shared and static libraries, autoconf.
    2. Preprocessing(include files, macros, compilation flags), static variables and functions, formatted input and output, pointers.
    3. Dynamic memory allocation. Passing parameters to functions, command-line parameters, varying-length argument list.
    4. Types representation and I/O operations.
    5. I/O operations, error detecting and reporting(errno, perror, strerror), date and time.
    6. Intro to networking: hostnames, IP addresses, byte order, sockets, ports. Name and addresses conversions.
    7. Networking: writing TCP client-server applications.
    8. Networking: writing UDP client-server applications

    Homeworks
    The class includes three programming assignments.


    Department of Computer Science The Johns Hopkins University