BIL131 Programming 1

Course Schedule: Friday(9 AM) C207; Lab: Tuesday(9 AM) B311, Friday(4 PM) B312
Course TA(s): TBD
Course webpage: http://ww3.ticaret.edu.tr/aboyaci/dersler/bil131-programming-1/
Source Codes: https://github.com/aboyaci/BIL131_Programming1
Course Description: This course teaches fundamentals of programming (writing, compiling and executing programs), basic programming techniques, the C programming language, development environments and create programs to solve practical problems.
Prerequisite(s): None.
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

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

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

  • Flow diagrams and pseudo-code description
  • Basic CPU and memory structure
  • Development Environment

Week 2

  • Binary numbers
  • Logic gates
  • Boolean algebra
  • “Hello world”, the program structure
  • Variables, variable types
  • Arithmetic and logical operations

Week 3

  • Program flow
  • Loops

Week 4

  • Functions and scopes
  • Parameters

Week 5

  • String manipulation
  • Math functions

Week 6

  • Structures
  • Unions
  • Arrays
  • Matrices

Week 7

  • Introduction to pointers
  • Midterm review

Week 8

  • Midterm Exam

Week 9

  • Pointers and memory structure

Week 10

  • Header Files
  • Macros and selective compiling
  • External libraries

Week 11

  • File operations

Week 12

  • Memory management

Week 13

  • Error handling
  • Debugging

Week 14

  • Function pointers
  • Final review

Course Resources

Quiz 1 (14/10/2016)

Quiz 2 (21/10/2016)