Computer Sciences Program

CS 101

Entry requirements: entering grade 7

 

List of Topics of CS 101:

  • Python editor, running code, working with files.

  • Operators: Arithmetic, Comparison, Logical, Membership.

  • Basic variable types. Type conversion.

  • Python variables, objects, and variable names as references to objects.

  • Printing and f-strings. Input() and its applications.

  • Error handling.

  • Definite and indefinite Iteration.

  • Conditional statements: if else, if elif else.

  • Lists and list operations.

  • Copy and deep copy.

  • Iterable objects: tuples, sets, and dictionaries. Iterable objects’ methods.

  • Nested data structures.

  • User defined functions and different types of arguments.

  • Nested functions. Local and global variables.

  • Anonymous lambda functions; map() and filter() functions.

  • List comprehension.

  • Random number generation.

  • Object-oriented programming introduction and terminology.

  • Polymorphism. Inheritance.

  • Working with os module. Creating user modules.

  • Opening and reading data from text files. Writing text to files. Appending text to files.

  • Working with text.

  • Numerical Python (NumPy). Array properties. Indexing values.

  • Basic operations with arrays: creation, reshaping, manipulation, stacking, element-wise math.

  • matplotlib. Creating a simple bar chart for two data series.

  • Using numpy to store, record, and retrieve data.

 

CS 202

Entry requirements: entering grades 7 - 9

 

List of Topics of CS 202:

  • Object oriented programming, advanced concepts and techniques.

  • Code and performance optimization.

  • Programming basic graphics and user interface.

  • Introduction to PyGame.

  • Numerical and scientific Python applications (numpy and scipy).

  • Visualizations in Python (matplotlib).

  • Working with data and basic data analysis (pandas).

  • Machine leaning (scikit-learn).

  • Introduction to networks and graphs (networkx).

  • Introduction to databased management (SQLite)

  • Introduction to web development.

  • Software development version control, GitHub.

  • Optional topics include:

  • Python C extensions (cython).

  • Multiprocessing.

  • GPU accelerated computing.