BEN LEONG

Associate Professor
School of Computing

National University of Singapore

15 Computing Drive, COM2 Building, #03-20, S(117418)

Tel: (+65) 6516 4240 Fax: (+65) 6779 4580

Email: benleong at comp.nus.edu.sg

 

Home
Bio
Calendar
Teaching
Research
Students
Publications

Research is cool, but teaching is truly meaningful. The following is a summary of the classes that I teach, have taught in the past or am going to teach in the next semester.

Teaching Summary:

Teaching Papers/Reports:

 

2016/2017 Semester 2: CS1010X - Programming Methodology

This is formerly CS1010FC and is a half-online module that will be offered to NSmen who will matriculate at NUS in Aug 2016. The module introduces the fundamental concepts of problem solving by computing and programming using Python. It is the first and foremost introductory course to computing and is equivalent to CS1010, CS1010S and CS1010E Programming Methodology. Topics covered include problem solving by computing, writing pseudo-codes, basic problem formulation and problem solving, program development, coding, testing and debugging, fundamental programming constructs (variables, types, expressions, assignments, functions, control structures, etc.), fundamental data structures: arrays, strings and structures, simple file processing, and basic recursion.

Assessment Scheme:

  • 35% Coursemology missions (assignments)
  • 15% Midterm Exam
  • 15% Practical Exam
  • 5% Tutorial Participation
  • 30% Final Exam

 

2016/2017 Semester 2: FMC1206 - Freshman Seminar: Computing for a Better World

This is the official module description: "Poverty, energy, disease, and environment are a few of the grand challenges that humanity faces today. Computing, being a field that underlies modern sciences, plays an important role in addressing these challenges. This module aims to expose students to how computing is used to tackle these and other grand challenges faced by humanity. Topics depend on the latest scientific development. Example topics include the use of computing to facilitate efficient farming, monitor the environments, simulate climate change, sequence genome, detect pandemic outbreak, and search for a cure for diseases. This module will be graded as "Completed Satisfactory/Completed Unsatisfactory (CS/CU)"."

Probably won't be doing exactly what is said in the module description -- but it probably doesn't matter. The only part that is likely true is the S/U.

 

2015/2016 Semester 2: CS1010X - Programming Methodology

This is formerly CS1010FC and is a half-online module that will be offered to NSmen who will matriculate at NUS in Aug 2016. The module introduces the fundamental concepts of problem solving by computing and programming using Python. It is the first and foremost introductory course to computing and is equivalent to CS1010, CS1010S and CS1010E Programming Methodology. Topics covered include problem solving by computing, writing pseudo-codes, basic problem formulation and problem solving, program development, coding, testing and debugging, fundamental programming constructs (variables, types, expressions, assignments, functions, control structures, etc.), fundamental data structures: arrays, strings and structures, simple file processing, and basic recursion.

Assessment Scheme:

  • 35% Coursemology missions (assignments)
  • 15% Midterm Exam
  • 15% Practical Exam
  • 5% Tutorial Participation
  • 30% Final Exam

 

2014/2015 Semester 2: CP3101A - Global Open Source Project

This module is a part of an experimental global software engineering education initiative spearheaded by Stanford/Facebook called Facebook Open Academy.

Student teams will be associated with a select group of open source software projects. These projects are characterized by being active in both development and utilization as well as being open to new and relatively inexperienced committers. They are also projects that are deemed to be relevant in today's software ecosystem. We also believe there is value in seeding awareness of how to contribute to open source projects like these among future technology leaders. Ideally there will also be some value from the development work that student teams contribute back to the projects as well.

The students in this course will visit Facebook to attend a hackathon at Facebook HQ in Menlo Park as the kick off event in Feb 2015. At this hackathon, they had the opportunity to meet their teammates from partner universities and also the mentors for the open source projects.

 

2014/2015 Semester 2: CS1010FC - Programming Methodology

This is an experimental half-online module that will be offered to NSmen who will matriculate at NUS in Aug 2015. The module introduces the fundamental concepts of problem solving by computing and programming using Python. It is the first and foremost introductory course to computing and is equivalent to CS1010, CS1010S and CS1010E Programming Methodology. Topics covered include problem solving by computing, writing pseudo-codes, basic problem formulation and problem solving, program development, coding, testing and debugging, fundamental programming constructs (variables, types, expressions, assignments, functions, control structures, etc.), fundamental data structures: arrays, strings and structures, simple file processing, and basic recursion.

Assessment Scheme:

  • 35% Coursemology missions (assignments)
  • 15% Midterm Exam
  • 15% Practical Exam
  • 5% Tutorial Participation
  • 30% Final Exam

 

2014/2015 Semester 1: CS1010S - Programming Methodology

This module introduces the fundamental concepts of problem solving by computing and programming using Python. It is the first and foremost introductory course to computing and is equivalent to CS1010 and CS1010E Programming Methodology. Topics covered include problem solving by computing, writing pseudo-codes, basic problem formulation and problem solving, program development, coding, testing and debugging, fundamental programming constructs (variables, types, expressions, assignments, functions, control structures, etc.), fundamental data structures: arrays, strings and structures, simple file processing, and basic recursion. This module is appropriate for FoS students.

Assessment Scheme:

  • 35% Coursemology missions (assignments)
  • 15% Midterm Exam
  • 15% Practical Exam
  • 5% Tutorial Participation
  • 30% Final Exam

 

2013/2014 Semester 2: CS1010FC - Programming Methodology

This is an experimental half-online module that will be offered to NSmen who will matriculate at NUS in Aug 2014. The module introduces the fundamental concepts of problem solving by computing and programming using Python. It is the first and foremost introductory course to computing and is equivalent to CS1010, CS1010S and CS1010E Programming Methodology. Topics covered include problem solving by computing, writing pseudo-codes, basic problem formulation and problem solving, program development, coding, testing and debugging, fundamental programming constructs (variables, types, expressions, assignments, functions, control structures, etc.), fundamental data structures: arrays, strings and structures, simple file processing, and basic recursion.

Assessment Scheme:

  • 35% Coursemology missions (assignments)
  • 15% Midterm Exam
  • 15% Practical Exam
  • 5% Tutorial Participation
  • 30% Final Exam

 

2013/2014 Semester 2: CP3101A - Global Open Source Project

This module is a part of an experimental global software engineering education initiative spearheaded by Stanford/Facebook, that involves 25 schools globally, called Facebook Open Academy.

Student teams will be associated with a select group of open source software projects. These projects are characterized by being active in both development and utilization as well as being open to new and relatively inexperienced committers. They are also projects that are deemed to be relevant in today's software ecosystem. We also believe there is value in seeding awareness of how to contribute to open source projects like these among future technology leaders. Ideally there will also be some value from the development work that student teams contribute back to the projects as well.

The students in this course will visit Facebook to attend a hackathon at Facebook HQ in Menlo Park as the kick off event in Feb 2014. At this hackathon, they had the opportunity to meet their teammates from partner universities and also the mentors for the open source projects.

 

2013/2014 Semester 1: CS1010S - Programming Methodology

This module introduces the fundamental concepts of problem solving by computing and programming using Python. It is the first and foremost introductory course to computing and is equivalent to CS1010 and CS1010E Programming Methodology. Topics covered include problem solving by computing, writing pseudo-codes, basic problem formulation and problem solving, program development, coding, testing and debugging, fundamental programming constructs (variables, types, expressions, assignments, functions, control structures, etc.), fundamental data structures: arrays, strings and structures, simple file processing, and basic recursion. This module is appropriate for FoS students.

Assessment Scheme:

  • 35% Coursemology missions (assignments)
  • 15% Midterm Exam
  • 15% Practical Exam
  • 5% Tutorial Participation
  • 30% Final Exam

 

2012/2013 Semester 2: CP3101A - Global Open Source Project

This module is a part of an experimental global software engineering education initiative spearheaded by Stanford/Facebook.

Student teams will be associated with a select group of open source software projects. These projects are characterized by being active in both development and utilization as well as being open to new and relatively inexperienced committers. They are also projects that are deemed to be relevant in today's software ecosystem. We also believe there is value in seeding awareness of how to contribute to open source projects like these among future technology leaders. Ideally there will also be some value from the development work that student teams contribute back to the projects as well.

The students in this course were funded by Facebook to attend a hackathon at Facebook HQ in Menlo Park as the kick off event. At this hackathon, they had the opportunity to meet their teammates from partner universities and also the mentors for the open source projects. In this first year of this project course, the partner universities are:

  1. Stanford
  2. MIT
  3. University of Texas, Austin
  4. Cornell University
  5. Tokyo University
  6. University of Sichuan
  7. University of Helsinki
  8. Tampere University of Technology
  9. Imperial College of London
  10. Jagiellonian University

 

2011/2012 Semester 2: CS3217 - Software Engineering on Modern Application Platforms

This is the first module of a two-part series on the practice of software engineering on modern application platforms (together with CS3216) such as mobile devices, the Web and cloud systems. Students will work in small project teams to develop well-tested, production-quality software.

This first part focuses on building core software engineering skills and competencies in programming modern application platforms. It also trains students to work well in project teams. Students will be assessed on both their individual programming competencies and their software engineering skills in a final team project.

This semester the students will be learning Objective-C to program iOS applications.

Assessment Scheme:

  • 50% Individual Assignments
  • 50% Final Project

 

2011/2012 Semester 1: CS3216 - Software Development on Evolving Platforms

In the module, students will learn to create next generation Internet applications for mobile, social media and cloud platforms. For this semester, the target platforms are Facebook and iOS and AWS.

This experiential programming module involves extensive hands-on learning in small team projects. Students are expected to work independently in small, interdisciplinary teams to design, develop, and deploy new applications. Students will also have the opportunity to explore the latest Internet programming APIs and open-source tools. 

Students will also work together in small teams to study and critique existing Facebook applications. The teams will then present their findings to their classmates during a seminar in the middle of the course.

Assessment Scheme:

  • 15% Facebook Application Assignment
  • 15% Mobile-Cloud Application Assignment
  • 10% Seminar Presentation
  • 10% Participation
  • 50% Final Project



2011/2012 Semester 1: CS1101S - Programming Methodology (Scheme)

This module introduces the concepts of programming from a functional perspective, and is perceived as the first and foremost introductory course to computing. Topics covered include: recursion, procedural abstraction, data abstraction, algorithmic strategies, higher-order functions, state mutation, evaluation strategies, debugging and testing. Module activities include lectures, recitation, group discussion and laboratory exercises.

Students will learn Scheme in CS110S and are then expected to move on to Java in CS2020. Java is introduced at the end of CS1101S to help bridge between Scheme and Java. 

This module is based on the MIT introductory software engineering class 6.001: Structure and Interpretation of Computer Programs

Assessment Scheme:

  • 35% JFDI Academy (assignments)
  • 15% Midterm Exam
  • 15% Practical Exam
  • 5% Tutorial Participation
  • 30% Final Exam

My slides for the Scheme Workshop for 2011/2012 Sem 1, are here. The Scheme Workshop is a short talk to help First Year students decide between CS1101 and the introductory programming CS1010 (which is taught in C).


 

2010/2011 Semester 2: CS3217 - Software Engineering on Modern Application Platforms

This is the first module of a two-part series on the practice of software engineering on modern application platforms (together with CS3216) such as mobile devices, the Web and cloud systems. Students will work in small project teams to develop well-tested, production-quality software.

This first part focuses on building core software engineering skills and competencies in programming modern application platforms. It also trains students to work well in project teams. Students will be assessed on both their individual programming competencies and their software engineering skills in a final team project.

This semester the students will be learning Objective-C to program iOS applications.

Assessment Scheme:

  • 50% Individual Assignments
  • 50% Final Project

 


2010/2011 Semester 1: CS1101S - Programming Methodology (Scheme)

This module introduces the concepts of programming from a functional perspective, and is perceived as the first and foremost introductory course to computing. Topics covered include: recursion, procedural abstraction, data abstraction, algorithmic strategies, higher-order functions, state mutation, evaluation strategies, debugging and testing. Module activities include lectures, recitation, group discussion and laboratory exercises.

Students will learn Scheme in CS110S and are then expected to move on to Java in CS2020. Java is introduced at the end of CS1101S to help bridge between Scheme and Java. We introduced a new game-based assignment system called JFDI Academy this Semester.

This module is based on the MIT introductory software engineering class 6.001: Structure and Interpretation of Computer Programs

Assessment Scheme:

  • 35% JFDI Academy (assignments)
  • 15% Midterm Exam
  • 15% Practical Exam
  • 5% Tutorial Participation
  • 30% Final Exam

My slides for the Scheme Workshop for 2010/2011 Sem 1, are here. The Scheme Workshop is a short talk to help First Year students decide between CS1101 and the new introductory programming CS1010 (which is taught in C).

 

2009/2010 Semester 2: CS3216 - Software Development on Evolving Platforms

In the module, students will learn to create Internet applications on the latest social networking platforms. For this semester, the target platforms are Facebook and Google Wave.

This experiential programming module involves extensive hands-on learning in small team projects. Students are expected to work independently in small, interdisciplinary teams to design, develop, and deploy new applications. Students will also have the opportunity to explore the latest Internet programming APIs and open-source tools. 

Students will also work together in small teams to study and critique existing Facebook applications. The teams will then present their findings to their classmates during a seminar in the middle of the course.

Assessment Scheme:

  • 15% Facebook Application Assignment
  • 15% Google Wave Assignment
  • 10% Seminar Presentation
  • 10% Participation
  • 50% Final Project

 

2009/2010 Semester 1: CS1101S - Programming Methodology (Scheme)

This module introduces the concepts of programming from a functional perspective, and is perceived as the first and foremost introductory course to computing. It is the first of a two part series on introductory programming, which also includes CS1102S. This series is characterized by the use of a minimalist syntax of functional languages that enables an emphasis on fundamental programming issues. Topics covered include: recursion, procedural abstraction, data abstraction, algorithmic strategies, higher-order functions, state mutation, evaluation strategies, debugging and testing. Module activities include lectures, recitation, group discussion and laboratory exercises.

This is part one of a CS1101S/CS1102S series of modules. Students will learn Scheme in CS110S and then Java in CS1102S. Java is introduced at the end of CS1101S to help bridge between Scheme and Java.

This module is based on the MIT introductory software engineering class 6.001: Structure and Interpretation of Computer Programs

Assessment Scheme:

  • 30% Problem Sets
  • 15% Midterm Exam
  • 15% Practical Exam
  • 10% Tutorial Participation
  • 30% Final Exam

My slides for the Scheme Workshop for 2009/2010 Sem 1, are here. The Scheme Workshop is a short talk to help First Year students decide between CS1101 and CS1101S.
 


2008/2009 Semester 2: CS3216 - Software Development on Evolving Platforms

In the module, students will learn to create Internet applications on the latest social networking platforms. For this semester, the target platforms are Facebook and Microsoft WPF. It is conceivable that new platforms like Google OpenSocial, Adobe AIR and Google Gears might be adopted in future semesters.

This experiential programming module involves extensive hands-on learning in small team projects. Students are expected to work independently in small, interdisciplinary teams to design, develop, and deploy new applications. Students will also have the opportunity to explore the latest Internet programming APIs and open-source tools. 

Students will also work together in small teams to study and critique existing Facebook applications. The teams will then present their findings to their classmates during a seminar in the middle of the course.

Assessment Scheme:

  • 20% Facebook Application Assignment
  • 20% WPF Assignment
  • 10% Seminar Presentation
  • 10% Participation
  • 40% Final Project

 

2008/2009 Semester 1: CS1101S - Programming Methodology (Scheme)

This module introduces the concepts of programming from a functional perspective, and is perceived as the first and foremost introductory course to computing. It is the first of a two part series on introductory programming, which also includes CS1102S. This series is characterized by the use of a minimalist syntax of functional languages that enables an emphasis on fundamental programming issues. Topics covered include: recursion, procedural abstraction, data abstraction, algorithmic strategies, higher-order functions, state mutation, evaluation strategies, debugging and testing. Module activities include lectures, recitation, group discussion and laboratory exercises.

This is part one of a CS1101S/CS1102S series of modules. Students will learn Scheme in CS110S and then Java in CS1102S. Java is introduced at the end of CS1101S to help bridge between Scheme and Java.

This module is based on the MIT introductory software engineering class 6.001: Structure and Interpretation of Computer Programs

Assessment Scheme:

  • 30% Problem Sets
  • 15% Midterm Exam
  • 15% Practical Exam
  • 10% Tutorial Participation
  • 30% Final Exam

My slides for the Scheme Workshop for 2008/2009 Sem 1, are here. The Scheme Workshop is a short talk to help First Year students decide between CS1101 and CS1101S.

 

2007/2008 Semester 2: CS3216 - Software Development on Evolving Platforms

In this module, students will learn to create Internet applications on the latest social networking platforms. For this semester, the target platform is Facebook. It is conceivable that new platforms like Google OpenSocial might be adopted in future semesters.

This experiential programming module involves extensive hands-on learning in small team projects. Students are expected to work independently in small, interdisciplinary teams to design, develop, and deploy new applications. Students will also have the opportunity to explore the latest Internet programming APIs and open-source tools. 

Students will also work together in small teams to study and critique existing Facebook applications. The teams will then present their findings to their classmates during weekly seminars in the middle of the course.

Assessment Scheme:

  • 10% Assignment 1: Hello World
  • 15% Assignment 2: Wall
  • 15% Assignment 3: Throw a Cow
  • 10% Seminar Presentation
  • 10% Participation
  • 40% Final Project

The slides for the info session that was held can be found here.

 

2007/2008 Semester 2: CS3243 - Foundations of Artificial Intelligence

The module introduces the basic concepts in search and knowledge representation as well as to a number of sub-areas of artificial intelligence. It focuses on covering the essential concepts in AI. The module covers Turing test, blind search, iterative deepening, production systems, heuristic search, A* algorithm, minimax and alpha-beta procedures, predicate and first-order logic, resolution refutation, non-monotonic reasoning, assumption-based truth maintenance systems, inheritance hierarchies, the frame problem, certainly factors, Bayes’ rule, frames and semantic nets, planning, learning, natural language, vision, and expert systems and LISP.

Assessment Scheme:

  • 15% Midterm Project
  • 20% Midterm Exam
  • 25% Final Project
  • 10% Tutorial Participation
  • 30% Final Exam

 

2007/2008 Semester 1: CS1101S - Programming Methodology (Scheme)

This module introduces the concepts of programming from a functional perspective, and is perceived as the first and foremost introductory course to computing. It is the first of a two part series on introductory programming, which also includes CS1102S. This series is characterized by the use of a minimalist syntax of functional languages that enables an emphasis on fundamental programming issues. Topics covered include: recursion, procedural abstraction, data abstraction, algorithmic strategies, higher-order functions, state mutation, evaluation strategies, debugging and testing. Module activities include lectures, recitation, group discussion and laboratory exercises.

This is part one of a CS1101S/CS1102S series of modules. Students will learn Scheme in CS110S and then Java in CS1102S. JavaScript is introduced at the end of CS1101S to help bridge between Scheme and Java.

This module is based on the MIT introductory software engineering class 6.001: Structure and Interpretation of Computer Programs

Assessment Scheme:

  • 30% Problem Sets
  • 15% Midterm Exam
  • 15% Practical Exam
  • 10% Tutorial Participation
  • 30% Final Exam

My slides for the Scheme Workshop for 2007/2008 Sem 1, are here. The Scheme Workshop is a short talk to help First Year students decide between CS1101 and CS1101S.

 

2006/2007 Semester 2: CS3243 - Foundations of Artificial Intelligence

The module introduces the basic concepts in search and knowledge representation as well as to a number of sub-areas of artificial intelligence. It focuses on covering the essential concepts in AI. The module covers Turing test, blind search, iterative deepening, production systems, heuristic search, A* algorithm, minimax and alpha-beta procedures, predicate and first-order logic, resolution refutation, non-monotonic reasoning, assumption-based truth maintenance systems, inheritance hierarchies, the frame problem, certainly factors, Bayes’ rule, frames and semantic nets, planning, learning, natural language, vision, and expert systems and LISP.

Assessment Scheme:

  • 15% Midterm Project
  • 20% Midterm Exam
  • 25% Final Project
  • 10% Tutorial Participation
  • 30% Final Exam

 

2006/2007 Semester 1: CS1101S - Programming Methodology (Scheme)
(co-taught with Razvan Voicu)

This module introduces the concepts of programming from a functional perspective, and is perceived as the first and foremost introductory course to computing. It is the first of a two part series on introductory programming, which also includes CS1102S. This series is characterized by the use of a minimalist syntax of functional languages that enables an emphasis on fundamental programming issues. Topics covered include: recursion, procedural abstraction, data abstraction, algorithmic strategies, higher-order functions, state mutation, evaluation strategies, debugging and testing. Module activities include lectures, recitation, group discussion and laboratory exercises.

This module is based on the MIT introductory software engineering class 6.001: Structure and Interpretation of Computer Programs.

Assessment Scheme:

  • 25% Problem Sets
  • 15% Midterm Exam
  • 10% Practical Exam
  • 10% Tutorial Participation
  • 40% Final Exam

Last updated $Date: 2017/03/17 12:39:03 $