Computer programming (CSE101) introduces
students (with or without previous
programming experience) to the fundamentals
of computer programming
in Python, with applications across the
sciences. In this course, students will
explore fundamental algorithms and data
structures, up to and including binary
trees, using a mixture of procedural,
recursive, and object-oriented techniques.
Upon completion of this course, students
will have a solid foundation in the culture
and practice of modern programming,
and the basic skills to solve real-world
problems using efficient, well-written programs
and open-source tools. These foundations
will be extended and completed
in CSE 102 and CSE 103.




Computer programming (CSE101) introduces students (with or without previous programming experience) to the fundamentals of computer programming in Python, with applications across the sciences. In this course, students will explore fundamental algorithms and data structures, up to and including binary trees, using a mixture of procedural, recursive, and object-oriented techniques. Upon completion of this course, students will have a solid foundation in the culture and practice of modern programming, and the basic skills to solve real-world problems using efficient, well-written programs and open-source tools.  These foundations will be extended and completed in CSE102 and CSE103.

Computer Programming (CSE 102) is the continuation of the previous semester’s course (CSE 101). We will continue to lay the foundations of modern computer science, while developing more sophisticated programming techniques in Python. At the end of this course, students will have the fundamental analytical and programming skills to solve everyday problems in the sciences more efficiently and effectively. They will also be prepared to continue learning other programming languages and paradigms.




 

An algorithm is a sequence of instructions that allows us to solve a
problem using a finite number of steps; as such, algorithms formalize
the notion of what it means to "compute". We study algorithms to know
what can be computed, in both theory and practice, to find out how
efficiently it can be done, and to be able to show correctness
properties rigorously. This course is an initiation into the art and
science of algorithms. It will train students to think about
algorithms, how to rigorously compare different algorithms and predict
their performance, and how to apply this knowledge to solve
computational problems efficiently.

Web Programming, (CSE 104) introduces the languages, tools, and techniques specific to developing web-based applications. Students will develop a solid understanding of the intricacies of contemporary, dynamic website development, and an insight into the internal workings of the web itself. This is a hands-on practical course that provides students with valuable practice developing their own web-based applications.

Objectives

  • Being able to develop a client-side-based website
    • complying to HTML5/CSS3 standard, and JavaScript good practices
    • without requiring external front-end library
    • responsive
  • Being introduced to server side programming
  • Being able to autonomously find and use information from various documentation on web applications

Topics

  • HTML5, CSS3
  • JavaScript (front end)
  • Introduction to server side programming: PHP, JS (nodeJS), DB

General organization

The class will mainly consist of practical computer lab classes A small project will be conducted where students will develop their own website (client side only) following the current good practices.