mgr inż. Paweł Aszklar

Zakład Projektowania Systemów CAD/CAM i Komputerowego Wspomagania Medycyny Faculty of Mathematics and Information Science Warsaw University of Technology

Programming 1

General Info

LecturesPaweł AszklarWednesday, 2:15 p.m. - 4:00 p.m., r. 329
TutorialsMaciej SpychałaFridays, 4:15 p.m. - 6:00 p.m., r. 213 (*)
Szymon ZygułaFridays, 4:15 p.m. - 6:00 p.m., r. 213 (*)
Paweł AszklarFridays, 4:15 p.m. - 6:00 p.m., r. 212 (*)
LaboratoriesMaciej SpychałaFridays, 12:15 p.m. - 2:00 p.m., r.201
Fridays, 2:15 p.m. - 4:00 p.m., r. 201
Szymon ZygułaFridays, 2:15 p.m. - 4:00 p.m., r. 301
Paweł AszklarFridays, 12:15 p.m. - 2:00 p.m., r. 203
Fridays, 2:15 p.m. - 4:00 p.m., r. 203
(*) - 7 classes, schedule below.

Tutorial and Laboratory Schedule

October 4th

  • Exercise Lab 0 - Intro
  • Tutorial 1 - C Language Basics

October 11th

  • Exercise Lab 1 - C Language Basics
  • Tutorial 2 - Functions and Arrays

October 18th

  • Graded Lab 1 - C Language Basics
  • Tutorial 3 - Pointers and Arrays

October 23rd

  • Early final - Written test part, 4:15 p.m. - 6:00 p.m., r. 329

October 25th

  • Exercise Lab 2 - Functions, Arrays and Pointers
  • Early final - Laboratory part, 4:15 p.m. - 6:00 p.m., r. 302

November 8th

  • Graded Lab 2 - Functions, Arrays and Pointers
  • Tutorial 4 - Character Strings

November 15th

  • Graded Lab 3 - Character Strings
  • Tutorial 5 - Data Structures

November 22nd

  • Exercise Lab 4 - Data Structures

November 29th

  • Graded Lab 4 - Data Structures
  • Tutorial 6 - Memory Allocation

December 6th

  • Exercise Lab 5 - Memory Allocation

December 13th

  • Graded Lab 5 - Memory Allocation
  • Tutorial 7 - Linked Lists

December 20th

  • No Classes - Merry Christmas!

January 3rd

  • Exercise Lab 6 - Linked Lists

January 10th

  • Graded Lab 6 - Linked Lists

January 17th

  • Exercise Lab 7 - Files
  • Tutorial - Final Test

January 24th

  • Graded Lab 7 (Retake) - Files
  • Tutorial - Final Test Retake

Lectures

Lecture 1 (Source code)

  • Course overview
  • Stages of creation of a program
  • Simple C program structure

Lecture 2 (Source code)

  • C language elements
  • C statemets
  • Program flow control

Lecture 3 (Source code)

  • C statements continued
  • Function definitions
  • Pointers and arrays
  • Variable declarations

Lecture 4 (Source code)

  • Basic built-in types
  • C constants
  • Enumerated types

Lecture 5 (Source code)

  • Multiple source files
  • Build process in C
  • Preprocessor directives

Lecture 6 (Source code)

  • C operators
  • Data structures

Lecture 7 (Source code)

  • Unions
  • typedef declarations
  • Pointer arithmetics
  • Memory managements

Lecture 8 (Source code)

  • Sorting algorithms
  • Standard formatted input and output
    (printf and scanf functions)

Lecture 9 (Source code)

  • Singly and doubly linked list
  • Circular lists
  • Implementation of doubly linked list

Lecture 10 (Source code)

  • Generalization of linked list data structure
  • File streams

Lecture 11 (Source code)

  • Character string handling functions
    (<string.h> library)
  • Variable visibility, lifetime and linkage
  • Declarations with initializers

Lecture 12 (Source code)

  • Function pointers
  • C standard library overview

Lecture 13

  • C standard library overview contd.
  • Multidimensional arrays
  • main function parameters

Lecture 14 (Source code)

  • Bitwise operators
  • Variadic functions
  • Recursion

Lecture 15

  • _Bool and _Complex types
  • Fixed-width integer types
  • Type generic expressions
  • Type generic math library
  • C vs C++

Exercises

Laboratories

Downloads

Links