BEN LEONG

Assistant Professor, School of Computing

National University of Singapore

Blk S14, 3 Science Drive 2, #06-14, S(117543)

Tel: (+65) 6516 4240 Fax: (+65) 6775 4941

Email: benleong at comp.nus.edu.sg

 

Home
Bio
Calendar
Teaching
Research
Students
Publications
Presentations
Random Stuff

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:

 

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 tentatively Facebook and Google Gears (with Facebook Connect or Google Friend Connect).

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.

Registration for CS3216 is not done through CORS. A call for registration will be issued after the mid-term break in 2009/2010 Semester 1 (around Oct/Nov 2009).

Assessment Scheme:

  • 15% Facebook Application Assignment
  • 15% Google Gears + Facebook Connect 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: 2009/10/23 09:57:05 $