BIL132 Programming 2

Course Schedule: Monday(9 AM) C207; Lab: Monday(4 PM) B311, Thursday(4 PM) B312
Course TA(s): TBD
Course webpage:
Source Codes:
Course Description: This course teaches more advanced aspects of C programming, programming techniques, Matlab environment and create programs to solve practical problems.
Prerequisite(s): BIL131 – Programming1
Note(s): You should have a Linux (preferably Ubuntu) running laptop with you.
Credit Hours: 3
ECTS Credits: 7
Textbook: The C Programming Language, 2nd Edition, Brian W. Kernighan, Dennis M. Ritchie; ISBN-13: 978-0131103627

MATLAB Programming for Engineers,   Stephen J. Chapman, ISBN-13: 978-0495244493

Course Objectives:
At the completion of this course, students will be able to:

  1. Understand general structure of computer program
  2. Understand basic principles and techniques of programming
  3. Get familiar with development environments
  4. Learn variables, loops, control statements and procedures
  5. Write C programs to solve basic problems
  6. Use Matlab to solve problems

Grade Distribution:

Assignments 20%
Midterm Exam 40%
Final Exam 40%

Letter Grade Distribution:

>= 90.00 AA 50.00 – 59.99 CC
80.00 – 89.99 BA 45.00 – 49.99 DC
70.00 – 79.99 BB 40.00 – 44.99 DF
60.00 – 69.99 CB <= 39.99 F

Course Policies:

  • General
    • You must have your computer with you in all sessions.
    • Quizzes and exams are closed book, closed notes.
    • No makeup quizzes or exams will be given.
  • Grades
    • Grades in the C range represent performance that meets expectations; Grades in the B range represent performance that is substantially better than the expectations; Grades in the A range represent work that is excellent.
    • Grades will be maintained in OBS. Students are responsible for tracking their progress by referring to the online gradebook.
  • Labs and Assignments
    • Students are expected to work independently. Offering and accepting solutions from others are an act of plagiarism, which is a serious offense and all involved parties will be penalized according to the Academic Honesty Policy. Discussion amongst students is encouraged, but when in doubt, direct your questions to the professor, tutor, or lab assistant. No late assignments will be accepted under any circumstances.
  • Attendance and Absences
    • According to the University rules, regulations, and guidelines (Chapter Four, Section related to the attendance, Item 25, first clause [in Turkish]), all students should attend at least 70% of the lectures throughout the semester of interest. Students who do not meet the attendance criterion will fail with the letter grade “IA”. It is students’ responsibility to follow up with their intermittent attendance status throughout the semester. The instructor will not announce and/or disseminate the attendance status of the students.
    • Students are responsible for all missed work, regardless of the reason for absence. It is also the absentee’s responsibility to get all missing notes and/or materials.

Academic Honesty Policy:

See Academic Honesty page.

Tentative Course Outline:

The weekly coverage might change as it depends on the progress of the class. However, you must keep up with the reading assignments.

Week 1

  • General review

Week 2

  • Pointers and memory structure

Week 3

  • Header Files
  • Macros and selective compiling
  • External libraries

Week 4

  • File operations

Week 5

  • Memory management

Week 6

  • Pointers
  • Function Pointers

Week 7

  • Midterm review

Week 8

  • Midterm Exam

Week 9

  • Introduction to Matlab

Week 10

  • Matrix and vector operations

Week 11

  • Plotting

  • User defined functions

Week 12

  • Loops and vectorization

Week 13

  • Complex Numbers and 3D Plots
  • Custom data types

Week 14

  • Final review

Course Resources