BBM 101 - Introduction to Programming I, Fall 2013

Lectures: Wednesdays 13:00-15:45 @D1 (Sec. 1), @D2 (Sec. 2), @D4 (Sec. 3)

Practicum (BBM103): Thursdays 09:00-10:45 (Sec 01-03), 14:00-15:45 (Sec. 04-05)

“When human beings acquired language, we learned not just how to listen but how to speak. When we gained literacy, we learned not just how to read but how to write. And as we move into an increasingly digital reality, we must learn not just how to use programs but to make them.

In the emerging, highly programmed landscape ahead, you will either create the software or you will be the software. It's really that simple: Program, or be programmed. Choose the former, and you gain access to the control panel of civilization. Choose the latter, and it could be the last real choice you get to make.”

   ~Douglas Rushkoff, in Program or Be Programmed: Ten Commands for a Digital Age (2010)



Instructors:

Aykut Erdem (Sec. 1)

Erkut Erdem (Sec. 2)

Fuat Akal (Sec. 3)

e-mail:

aykut-at-cs.hacettepe.edu.tr

erkut-at-cs.hacettepe.edu.tr     

akal-at-cs-hacettepe.edu.tr     

Office, Tel:

111, Tel: 297 7500 / 146

114, Tel: 297 7500 / 149

202, Tel: 297 7500 / 129

Office Hours:

TBA

TBA

TBA


Lectures: 

Wednesday, 13:00-15:45 @D1 (Sec. 1), @D2 (Sec. 2), @D4 (Sec. 3)

Practicum (BBM103): 

Thursdays 09:00-10:45 (Sec 01-03), 14:00-15:45 (Sec. 04-05)


TA:

Yasin Sahin

Ahmet Selman Bozkir

Gultekin Isik

Oguzhan Guclu

yasin-at-cs.hacettepe.edu.tr

selman-at-cs.hacettepe.edu.tr

gultekin-at-cs.hacettepe.edu.tr

oguzhanguclu-at-cs.hacettepe.edu.tr

Office: 218, Tel: 297 7500 / 123

Office: TBA, Tel: 297 7500 / TBA

Office: 218, Tel: 297 7500 / 130

Office: 218, Tel: 297 7500 / 123

Office Hours: TBA      

Office Hours: TBA      

Office Hours: TBA      

Office Hours: TBA      


Course Description:

This course serves as an introduction to the fundamentals of computer science and programming. It aims to help students with little or no programming experience to gain necessary skills to work with abstract notions for solving computational problems. The course is structured around basic topics such as sequential, selective and repetitive structures, functions, recursion, arrays and pointers, structures and unions, basic input and output and strings. The class will use the C programming language as a medium to provide a basic understanding of basic concepts in computer science, and the students will gain hand-on experience via a set of programming assignments supplied in the complementary BBM 103 Introduction to Programming Practicum.


Reference books:

The C Programming Language, 2nd Edition, Brian Kernighan and Dennis Ritchie, Prentice Hall, 1988

Practical C Programming 3rd Edition, Steve Oualline, O'Reilly Media, 1997


Grading Policy:

3 Midterm exams  

55% (10 + 30 + 15)

Final exam

40%

Class participation

5%


Important Dates:

Programming Assignment #1

9 October 2013

Programming Assignment #2

6 November 2013

Programming Assignment #3

20 November 2013

Programming Assignment #4

4 December 2013

Programming Assignment #5   

18 December 2013

Midterm Exam #1

30 October 2013

Midterm Exam #2

20 November 2013

Midterm Exam #3

11 December 2013

Final Exam

To be announced later.


Detailed Schedule:


Week   

Date    

Topic   

From the book   

Assignments and Exercises   


1

10/2  

Introduction, What is computation? [slides] [4-per-page]   

2

10/9

Binary representations and the Von Neumann architecture [slides] [4-per-page]   

PA1 out

3

10/16

No class (Religious Holiday)   

4

10/23

Sequential structure [slides] [4-per-page]   

2

Ex1 Ex1 supp.

5

10/30

Selective structure [slides] [4-per-page], Midterm exam #1   

3.1-3.4

PA1 due

6

11/6

Repetitive structure [slides] [4-per-page], Functions [slides] [4-per-page]   

3.5-3.7, 4.1-4.4

PA2 out

7

11/13

Functions (cont'd.)   

4.5-4.10

8

11/20

Midterm exam #2   

PA2 due, PA3 out

9

11/27

Pointers and Arrays [slides] [4-per-page]   

5.1-5.5

10

12/4

Pointers and Arrays (cont'd.) [slides] [4-per-page]   

5.6-5.11

Ex2, PA3 due, PA4 out

11

12/11

Pointers and Arrays (cont’d.), Midterm exam #3   

12

12/18

Structures [slides] [4-per-page]   

6

PA4 due, PA5 out

13

12/25

Input and Output, Strings [slides] [4-per-page]   

7

14

1/1

No class (New Year’s Day)   

PA5 due



Additional Resources:

Tools:

Standard Environment
The most efficient way of developing a C program is to use a Unix environment:

To mimic a Unix programming environment on your own computer, you have the following options:

IDEs
Your programs need to work in the standard environment as we evaluate them on dev.cs.hacettepe.edu.tr. However, if you'd like to use a GUI, these are the IDEs that seem to work well:

General purpose text editors

Communication:

The course webpage will be updated regularly throughout the semester with lecture notes, programming and reading assignments and important deadlines. All other course related communications will be carried out through Piazza. Please enroll it by following the link https://piazza.com/hacettepe.edu.tr/fall2013/bbm101

For the BBM 103 related communications, you should also enroll that course in Piazza through the link https://piazza.com/hacettepe.edu.tr/fall2013/bbm103


Policies:

Attendance to lectures is required. You are responsible for all material presented in lecture. Some of the course material is not covered in the textbook.
All work on assignments must be done individually unless stated otherwise. You are encouraged to discuss with your classmates about the given assignments, but these discussions should be carried out in an abstract way. That is, discussions related to a particular solution to a specific problem (either in actual code or in the pseudocode) will not be tolerated.
In short, turning in someone else’s work, in whole or in part, as your own will be considered as a violation of academic integrity. Please note that the former condition also holds for the material found on the web as everything on the web has been written by someone else.


Previous offerings: