Computer Science 101 Preparing programmers to be architects Michael Huth, Computing, Imperial College.

Slides:



Advertisements
Similar presentations
Welcome to College and Career Ready Standards Quarterly Meeting # 1.
Advertisements

ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
MS.ERUM ABID DAPS SEAVIEW HISTORY, GRADE 6.  Adopt 21 st century teaching approaches to enhance and build interest in students for appreciation of History.
BA (Hons) Primary Education Year Three School Based Training Briefing
CAIM Inservice: November 15, Focus: 2-3 topics focused on deeply in each grade. 2.Coherence: Concepts logically connected from one grade to.
Educating Programmers: A Customer Perspective Alexander Stepanov A9.com Workshop on Quality Software: A Festschrift for Bjarne Stroustrup Texas A&M University,
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
Careers in Computing Dr. Wolfgang Pelz June 18, 2009.
From Discrete Mathematics to AI applications: A progression path for an undergraduate program in math Abdul Huq Middle East College of Information Technology,
Effective Communication Skills; the Missing Link in Enhancing Employability of STEM Graduates By Sindiso Zhou & Nhlanhla Landa 2 nd National Science and.
1 The Teaching and Learning Strategy, including Projects Roy Crole Department of Computer Science University of Leicester.
Course Instructor: Aisha Azeem
8/5/2015\course\cpeg323-08F\Topic1.ppt1 Topic I Introduction to Computer Architecture and Organization.
The Computer Science Course at Omar Al-Mukhtar University, Libya The Computer Science Course at Omar Al-Mukhtar University, Libya User-Centered Design.
Mathematics throughout the CS Curriculum Support by NSF #
Teaching Fellow Admissions Tutor for Computer Science Director of Undergraduate Studies.
Developing a programme of information literacy. Strategy Will you work at an institutional level? Will you work at a course level? Will you work at a.
2004 StudentAffairs.com Virtual Case Study Heather Barbour, Daniel Doerr, Kunwar Umesh Vig, & Michael Violette University of Connecticut February 15, 2004.
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
Dr. Ken Hoganson, © August 2014 Programming in R STAT8030 Programming in R COURSE NOTES 1: Hoganson Programming Languages.
1. CATS Projects in Management Project 3: Developing a flexible credit-based curriculum in the area of business, management Louise Reynolds 2.
CULTURE… Students will develop knowledge and understanding of: howwhyhow and why texts are valued.
Symposium 2001June 24, 2001 Curriculum Is Just the Beginning Chris Stephenson University of Waterloo.
Problem-Based Learning in Professional Education Doris R. Brodeur Massachusetts Institute of Technology AAHE - April 2004.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
PTLLS – Embedding Literacy, language & numeracy Week 4.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Framework for Assessment: Technology-Assisted Learning and Collaboration Overview by Anne H. Moore.
Action plan MS.TASNEEM FATIMA DAPS SEAVIEW ISLAMIAT, GRADE 4.
E-portfolios: Alternative Assessment for Allied Health Students Charles R. Drew University of Medicine and Science Dorothy Hendrix, M.Ed. Jaclyn Conner,
Modeling and simulation of systems Model building Slovak University of Technology Faculty of Material Science and Technology in Trnava.
Guiding Principles. Goals First we must agree on the goals. Several (non-exclusive) choices – Want every CS major to be educated in performance including.
Class will start at the top of the hour! Please turn the volume up on your computer speakers to access the audio feature of this seminar. WELCOME TO CE101.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
1 S1- S3 Broad General Education Tracking and Monitoring.
Session Objectives Analyze the key components and process of PBL Evaluate the potential benefits and limitations of using PBL Prepare a draft plan for.
Alessio Peluso 1 Critical evaluation of the module ‘Introduction to Engineering Thermo Fluid Dynamics’ First Steps in Learning and Teaching in Higher Education.
Developing web-based CPD for group work and argumentation in science Session 2: Developing Argumentation 12/01/12.
Buckinghamshire County Council Moderation and developing APP Science – Day three Shane Clark Science Adviser
Chapter 9 Technology in English and Language Arts Instruction. Pre and Post Test.
Curriculum Evening Buckstone Primary 3 rd November 2015.
WISER: Teaching Information literacy This session will give an overview of the key concepts and models of information literacy as an important transferable.
What is the Common Core State Standards Initiative? A state-led effort to establish a single set of clear standards for ELA and math Informed by the best.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
The Level-2 Projects for Course Clusters Haojun Sun College of Engineering Shantou University.
1 A Framework for Junior Cycle BRIEFING October 2012.
Curriculum Implementation Support Program (CISP).
Computer Security Course Syllabus 1 Computer Security Lecturer : H.Ben Othmen.
NECC ForumJune, 2008 © Chris Stephenson Teaching Problem Solving and Design Chris Stephenson Computer Science Teachers Association.
Preparing Mechanical Engineering Students for Collaborations Across Distance and Disciplines (CADD) Nina Robson California State University, Fullerton.
The Development of the New Zealand National Standards Joanna Higgins.
Planning Literacy Learning Essential Skills Practitioners Level 3.
CENG 424-Logic for CS Introduction Based on the Lecture Notes of Konstantin Korovin, Valentin Goranko, Russel and Norvig, and Michael Genesereth.
CSC 222: Computer Programming II
COMP9321 Web Application Engineering Semester 2, 2017
Mathematics Assessment (Math 321 & Math 334)
Year 10 IT: Programming Pathway Subject(s): VCE Computing
Logic and Computer Design Fundamentals
School Self-Evaluation
Foundations of Computer Science
Topic I Introduction to Computer Architecture and Organization
ABET 2017 Followup Actions.
The curriculum The curricullum tells «What and how the learners should learn» at specific levels of the education system. It includes the objectives and.
Logic: tool-based modeling and reasoning
Introduction to Computer Systems
Chapter 5 Architectural Design.
Warmup Write a function to add two integer parameters and return the result.
Overview of BSSE at Rose-Hulman Institute of Technology
Presentation transcript:

Computer Science 101 Preparing programmers to be architects Michael Huth, Computing, Imperial College

Outline of talk Challenges in teaching first-year programming. Learning outcomes in the “slashdot” world. Strategies for realizing those outcomes. Outlook: a marriage of theory and practice.

Old and new challenges Traditionally, incoming students have dramatically different skills; programming involves logic and artistic activity; real-world languages are too rich to be covered in full. Today, software is open and distributed; requires architectural design and analysis; interfaces across languages.

Traditional outcomes Be able to state requirements and specifications of programs: “The call fac(m) returns the factorial of m, given that m >= 0.” implement specifications: int myFac(m) { if (m==0) {return 1;} else { return m * myFac(m-1);}} test and reason about implementations: Run myFac on “good” test values; prove that myFac “works”.

New outcomes Extend old outcomes to open, distributed programs: try { Url u = Inbox.getUrl(); } catch(exception e) { print “URL not found”;} AudioClip a = new Audioclip(); a = Url.downloadclip(u); if (this.hasLicence(a)) {Realplayer.playClip(a);} else { BigBrother.notifyViolation(this,u,a);} And ensure the …

Ability to formally model design

Strategies: students … 1.Week 1-5: … specify, implement, and test traditional programs in open, distributed language. 2.Week 6-10: … learn to use distributed language features; get exposure to design; 3.Week 11-15: Transfer acquired skills of first block to second one. 4.Assessment: Students evaluate the approach 1, 2, and 5 years after course completion.

An unexpected marriage Reality check: teach software-engineering languages early on. Key language features: abstract, complex, and mathematical. “Hot” principles of practice (e.g. B2B, P2P): realized in very abstract formalisms. Opportunity: marry theory and practice in a key CS course.