Welcome to the Advanced Python Programming course (BSCS1002, 5 ECTS) from the Department of Computer Science at the University of Helsinki. This repository contains the course material and exercises for the advanced part of the Python programming series.
The Advanced Python Programming course builds on the foundational concepts covered in the Introduction to Programming course (BSCS1001). This course spans parts 8 through 14 of the curriculum and dives deeper into object-oriented programming, functional programming, and game development using Pygame.
Course Start Date: January 15th, 2024
To successfully complete this course, you will need to complete the programming exercises and participate in an exam. For more details on grading and exams, please refer to the Grading and Exams page.
- Programming Exercises:
- The smallest average result
- Row sums
- Classes and Objects:
- List of years
- Shopping list
- Defining Classes:
- Book
- Three classes
- Define class: Pet
- The older book
- Books of a genre
- Defining Methods:
- Decreasing counter
- First and last name
- Statistics on numbers
- More Examples of Classes:
- Stopwatch
- Clock
- LunchCard
- Series
- Quiz:
- Feedback, part 8
- Programming Exercises:
- The fastest car
- Passing submissions
- Baby Centre
- LunchCard and PaymentTerminal
- Comparing properties
- Objects as Attributes:
- Pets
- A box of presents
- The shortest person in the room
- Encapsulation:
- Car
- Recording
- Weather station
- Scope of Methods:
- Service charge
- Class Attributes:
- Postcodes
- List helper
- More Examples with Classes:
- Item, Suitcase and Cargo hold
- Quiz:
- Feedback, part 9
- Programming Exercises:
- Laptop computer
- Game Museum
- Areas
- Word game
- Access Modifiers:
- Supergroup
- Secret magic potion
- Object-Oriented Programming Techniques:
- Money
- Simple date
- An iterable shopping list
- Developing a Larger Application:
- Phone book expansion, version 1
- Phone book expansion, version 2
- CourseRecords
- Quiz:
- Feedback, part 10
- Programming Exercises:
- Square roots
- Rows of stars
- Best exam result
- Lengths
- Remove smaller than
- Begin with a vowel
- Lottery numbers
- More Comprehensions:
- Filter forbidden
- Products in shopping list
- Price difference of cheaper properties
- Lengths of strings
- Most common words
- Recursion:
- Add numbers to a list
- Recursive sum
- Balance all the brackets
- More Recursion Examples:
- Greatest node
- Bosses and subordinates
- OrderBook
- Order book application
- Quiz:
- Feedback, part 11
- Programming Exercises:
- Sort by remaining stock
- Sort by number of seasons
- Sort by ratings
- ClimbingRoute
- Climbing areas
- BallPlayers
- Product search
- Generators:
- Even numbers
- Prime numbers
- Random words
- Functional Programming:
- Attempted courses
- Filtering attempts
- Study credits
- Regular Expressions:
- Regular expressions
- Hockey statistics
- Quiz:
- Feedback, part 12
- Programming Exercises:
- Four robots
- Robots in a row
- A hundred robots
- Random robots
- Animation:
- Vertical movement
- Round the perimeter
- Two robots
- Robots in a circle
- Bouncing ball
- Robot invasion
- Events:
- Four directions
- Four walls
- Two players
- Robot and mouse
- The location of the robot
- More Pygame Techniques:
- Clock
- Asteroids
- Quiz:
- Feedback, part 13
- Quiz:
- Own game
- Feedback, part 14
- Final quiz, Advanced Course
- Introduction to Programming course (BSCS1001, 5 ECTS)
- Part 1
- Part 2
- Part 3
- Part 4
- Part 5
- Part 6
- Part 7
- Advanced Course in Programming (BSCS1002, 5 ECTS)
- Part 8
- Part 9
- Part 10
- Part 11
- Part 12
- Part 13
- Part 14
Throughout the course, I will be taking detailed notes and compiling resources to aid in understanding and applying the concepts covered. You can access my notes on Notion using the following link:
Feel free to explore and use these notes as a supplementary resource to enhance your learning experience.
Hi there! 👋 I'm Zouhair, a passionate software developer currently diving deep into the world of Python programming. I'm enrolled in the Advanced Python Programming course at the University of Helsinki, where I'm learning about advanced concepts in object-oriented programming, functional programming, and game development using Pygame.