BBM 101 - Introduction to Programming I

Fall 2024

Mark I Perceptron
Drawing of Analytical Engine. Image: University of Cambridge

Course Information

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 control flow, functions, lists, input and output, simple data structures (sets, dictionaries), testing and debugging, and recursion.
The class will use the Python 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.

Time and Location

BBM 101

Section 1: Wednesday at 12:40-15:30 in D8
Section 2: Thursday at 09:40-12:30 in D1
Section 3: Wednesday at 12:40-15:30 in D1

BBM 103


Instructors

Tunca Doğan's avatar

Tunca Doğan (Section 1)

tuncadogan@hacettepe.edu.tr

Office Hours: By Appointment, Office 210

https://yunus.hacettepe.edu.tr/~tuncadogan/

Ahmet Selman Bozkır's avatar

Ahmet Selman Bozkır (Section 2)

selman@cs.hacettepe.edu.tr

Office Hours: By Appointment, Office 202

http://yunus.hacettepe.edu.tr/~selman/

Aydın Kaya's avatar

Aydın Kaya (Section 3)

aydinkaya@cs.hacettepe.edu.tr

Office Hours: By Appointment, Office Z07/A

https://web.cs.hacettepe.edu.tr/~aydinkaya/


Teaching Assistants

Alpay Tekin's avatar

Alpay Tekin

alpaytekin@cs.hacettepe.edu.tr

Office Hours: By Appointment, Research Lab. 7 (Office 222)

Orhan Demirci's avatar

Orhan Demirci

orhandemirci@cs.hacettepe.edu.tr

Office Hours: By Appointment, Research Lab. 5 (Office 118)

Görkem Akyıldız's avatar

Görkem Akyıldız

gorkemakyildiz@cs.hacettepe.edu.tr

Office Hours: By Appointment, Research Lab. 7 (Office 222)

Student Assistants


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 the corresponding class pages by following the links https://piazza.com/hacettepe.edu.tr/fall2024/bbm101 and https://piazza.com/hacettepe.edu.tr/fall2024/bbm103.

Pre-requisites

Students are not expected to have any prior programming experience.

Course Requirements and Grading

Grading for BBM 101 will be based on

  • two midterm exams (30% + 30%),
  • a final exam (40%).
In BBM 103, the grading will be based on
  • Five programming assignments (10%+15%+25%+25%+25% = 100%) (done individually).

Policies

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.

Attendance to lectures is mandatory. A student who do not attend the lectures more than 4 weeks will fail BBM101 directly with an F1 grade. A student who do not attend more than 3 recitation sessions or do not submit more than 1 assignments will fail BBM103 directly with an F1 grade. You are responsible for all material presented in lectures. Some of the course material might not be covered in the textbook.

back to top

Reference Books

back to top

Schedule

Week Lecture Reading and Other Material Assignments
1 What is computation and Computational Thinking Guttag 1, Downey 1
Video: The birth of the computer, George Dyson
Reading: Computer Science, Allen Newell, Alan J. Perlis, Herbert A. Simon
2 Introduction to Algorithms and Development Strategies PA 1 out
3 Stored Program Computers [codes] Alvarado et al. 4 (excluding 4.5-3-4.5.4)
HMMM Simulator
PA 1 due
4 Introduction to Python, Statements, Expressions Guttag 2.1, Downey 5.1-5.3
5 Control flow, Functions Guttag 2.2-2.4, 3.1-3.2, 4.1-4.2, 4.4, Downey 3, 5.4-5.7
6 Arrays, Lists Guttag 5.1-5.3, 5.5, Downey 10
7 Midterm 1 PA2 out
8 Tuples, Sets, Dictionaries Guttag 5.1-5.6, Downey 10
9 File IO Guttag 4.6, Downey 14 PA2 due, PA3 out
10 Debugging, Exceptions, Testing Guttag 6,7, Downey Debugging sections of each chapter, Appendix A
11 Recursion Guttag 4.3, Downey 5.8-5.10, 6.5 PA3 due, PA4 out
12 Midterm 2
13 Understanding Data Guttag 11, Downey 14.1-14.4, 14.11
Immigration data on Canada as Excel file
bbm101.csv file
Breast Cancer Detection codes as Jupyter Notebook
Breast Cancer Detection codes as pdf
Pandas samples(from slides)
PA4 due, PA5 out
14 Algorithmic Speed Guttag 9, Downey Appendix B PA5 due

back to top

Deadlines for Programming Assignments

  • Assignment 1 (Due: Oct 13, 2024 (23:00:00))
  • Assignment 2 (Due: Nov 17, 2024 (23:00:00))
  • Assignment 3 (Due: Dec 08, 2024 (23:00:00))
  • Assignment 4 (Due: Dec 22, 2024 (23:00:00))
  • Assignment 5 (Due: Dec 29, 2024 (23:00:00))

back to top

Resources

General purpose text editors

  • Vim (Linux, OS X, Windows)
  • Emacs (Linux, OS X, Windows)
  • Sublime Text (Linux, OS X, Windows)
  • Week 10 Exercise Input File

Setting up Python

PyCharm Edu Integrated Development Environment (IDE) will be used in laboratory classes for learning how to program with Python.

back to top


© 2024 Hacettepe University