Programming 1
General Info
Lectures | Paweł Aszklar | Wednesday, 2:15 p.m. - 4:00 p.m., r. 328 |
---|---|---|
Tutorials | Aleksander Płocharski | Fridays, 4:15 p.m. - 6:00 p.m., r. 211 (*) |
Maciej Spychała | Fridays, 4:15 p.m. - 6:00 p.m., r. 212 (*) | |
Paweł Aszklar | Fridays, 4:15 p.m. - 6:00 p.m., r. 210 (*) | |
Laboratories | Aleksander Płocharski | Fridays, 12:15 p.m. - 2:00 p.m., r. 201 |
Maciej Spychała | Fridays, 12:15 p.m. - 2:00 p.m., r.203 | |
Fridays, 2:15 p.m. - 4:00 p.m., r. 203 | ||
Paweł Aszklar | Fridays, 12:15 p.m. - 2:00 p.m., r. 202 | |
Fridays, 2:15 p.m. - 4:00 p.m., r. 202 | ||
(*) - 7 classes, schedule below. | ||
Tutorial and Laboratory Schedule
October 6th
- Exercise Lab 0 - Intro
- Tutorial 1 - C Language Basics
October 13th
- Exercise Lab 1 - C Language Basics
- Tutorial 2 - Functions and Arrays
October 20th
- Graded Lab 1 - C Language Basics
- Tutorial 3 - Pointers and Arrays
October 25th
- Early final - Written test part, 6:15 p.m. - 8:00 p.m., r. 328
October 27th
- Exercise Lab 2 - Functions, Arrays and Pointers
- Early final - Laboratory part, 4:15 p.m. - 6:00 p.m., r. 203
November 3rd
- Graded Lab 2 - Functions, Arrays and Pointers
- Tutorial 4 - Character Strings
November 17th
- Graded Lab 3 - Character Strings
- Tutorial 5 - Data Structures
November 24th
- Exercise Lab 4 - Data Structures
December 1st
- Graded Lab 4 - Data Structures
- Tutorial 6 - Memory Allocation
December 8th
- Exercise Lab 5 - Memory Allocation
December 15th
- Graded Lab 5 - Memory Allocation
- Tutorial 7 - Linked Lists
December 22th
- No Classes - Merry Christmas!
January 5th
- Exercise Lab 6 - Linked Lists
January 12th
- Graded Lab 6 - Linked Lists
January 19th
- Exercise Lab 7 - Files
- Tutorial - Final Test
January 26st
- 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
- Exercise Set 1
- Exercise Set 2
- Exercise Set 3
- Exercise Set 4
- Exercise Set 5
- Exercise Set 6
- Exercise Set 7
- Exercise Set 8
Laboratories
- Exercise Task 0
- Exercise Task 1
- Graded Task 1
- Exercise Task 2
- Graded Task 2
- Exercise Task 3
- Graded Task 3
- Exercise Task 4
- Graded Task 4
- Exercise Task 5
- Graded Task 5
- Exercise Task 6
- Graded Task 6
- Exercise Task 7
- Graded Task 7
Downloads
- Rules
- Introduction to recommended development environments
- C Project Template for Visual Studio 2017, 2019, and 2022 — installation instruction in the Introduction above
Links
- C Reference - documentation of C language and its standard library (Local copy)