Introduction to object-oriented style of programming in C for Java programmers in a Linux/Unix environment. Basic structure of C programs, function pointers, variable argument lists, other generic programming techniques. Software building using make. Testing and debugging techniques. Case studies. PREREQ: COMPSCI 225 or PERM/INST.


Instructor: Alark Joshi

Email: alark@cs.boisestate.edu

Office: MEC 302A

Office Hours: Tuesday, Thursday 3:00pm-5pm or by appointment

Teaching Assistant: Nathan Riskey

Email: nathanriskey@u.boisestate.edu

Office: CS Tutoring Center

Office Hours: Tuesday, Thursday 10:00am-1pm, Friday 10am-12pm, 2pm-4pm or by appointment

Grader: James Kress

Email: jameskress@u.boisestate.edu

Office: CS Tutoring Center

Office Hours: Monday 1:30pm-4pm or by appointment

Prerequisites

COMPSCI 225 or PERM/INST. One year of Java programming. Knowledge of basic data structures like lists, hash tables, binary search trees. Knowledge of elementary sorting and searching algorithms (as introduced in COMPSCI 225). No prior knowledge of C programming language is needed.

Objectives:



  • translate knowledge of object-oriented programming in Java to C.
  • recognize and use common paradigms in C programming.
  • design and develop programs of moderate complexity in C.
  • use various tools to improve their productivity.
  • use object-oriented techniques with system utilities.

Textbooks

Grading

The course will be graded on a PASS/FAIL basis. The evaluation will be based on successfully finishing every assignments. Typical assignments include rewriting basic data structures from COMPSCI 225 (doubly linked lists, hash tables, binary search trees) in C, writing shell scripts, developing a test harness etc.

Academic Dishonesty

As per the Office of Student Rights and Responsibilities, the Student Code of Conduct defines Academic Dishonesty as "A violation may include cheating, plagiarism, or other forms of academic dishonesty. All assignments submitted by a student must represent her/his own ideas, concepts, and current understanding or must cite the original source. Academic dishonesty includes assisting a student to cheat, plagiarize, or commit any act of academic dishonesty. Attempts to violate academic integrity do not have to be successful to be considered academic dishonesty. Academic dishonesty includes turning in substantial portions of the same academic work to more than one course without the prior permission of the faculty members."