CSIII Proposal Mikhail Nesterenko CS Faculty Retreat May 3, 2013.

Slides:



Advertisements
Similar presentations
Welcome to. Who am I? A better way to code Design Patterns ???  What are design patterns?  How many are there?  How do I use them?  When do I use.
Advertisements

COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
IMS1805 Systems Analysis Topic 3: Doing Analysis (continued from previous weeks)
Software Engineering 1. Introduction 2. Course schedule.
Design Patterns for Object Oriented systems CSC 515 Ashwin Dandwate.
IS6112 Application Modelling and Design Introduction.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
Design Patterns In OPM Presented by: Galia Shlezinger Instructors: Prop. Dov Dori, Dr. Iris Berger.
CMSC 132: Object-Oriented Programming II
CSCE156: Introduction to Computer Science II Instructor Stephen Scott Website
Design Patterns CS is not simply about programming
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
21-Jun-15Advanced Programming Spring 2002 Advanced Programming Henning Schulzrinne Dept. of Computer Science Columbia University.
CS565 Advanced Software Development (1 unit) Lecturer: Adrian O’Riordan Contact: is Office: prefab, behind.
Visual Basic: An Object Oriented Approach 11 – Patterns in object oriented programming.
Automatically Extracting and Verifying Design Patterns in Java Code James Norris Ruchika Agrawal Computer Science Department Stanford University {jcn,
Software Engineering Education Andy Gravell, Feb 2007.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
Cpt S 471/571: Computational Genomics Spring 2015, 3 cr. Where: Sloan 9 When: M WF 11:10-12:00 Instructor weekly office hour for Spring 2015: Tuesdays.
MCS 270 Spring 2014 Object-Oriented Software Development.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Welcome to CS 3331, Advanced Object-Oriented Programming Fall 2009 Dept. of Computer Science University of Texas at El Paso.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
樣式導向設計 (Pattern-Oriented Design) 課程簡介 Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering.
EECE 310 Software Engineering Lecture 0: Course Orientation.
Object Oriented Design and Programming Alan Goude Room: Sheaf 9323.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
© 2007 Pearson Addison-Wesley. All rights reserved 0-1 Spring(2007) Instructor: Qiong Cheng © 2007 Pearson Addison-Wesley. All rights reserved.
1 A Framework for Technical Skills May, 2001 Gregor Hohpe.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Design Patterns in Java Chapter 1 Introduction Summary prepared by Kirk Scott 1.
Course Overview & Topics CSc 335: Object-Oriented Programming and Design © Rick Mercer 1.
CD5130 – Object-Oriented Programming, Advanced Lecture 1 Jan Gustafsson IDE, Mälardalens Högskola April 2, 2007.
Early Adopter: Integrating Concepts from Parallel and Distributed Computing into the Undergraduate Curriculum Eileen Kraemer Computer Science Department.
1-1 C Sc 335 Course Overview Object-Oriented Programming and Design Rick Mercer.
Course Introduction Andy Wang COP 4530 / CGS 5425 Fall 2003, Section 4.
OBJECT-ORIENTED PROGRAMMING (OOP) WITH C++ Instructor: Dr. Hany H. Ammar Dept. of Electrical and Computer Engineering, WVU.
Methods: Deciding What to Design In-Young Ko iko.AT. icu.ac.kr Information and Communications University (ICU) iko.AT. icu.ac.kr Fall 2005 ICE0575 Lecture.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
The course. Description Computer systems programming using the C language – And possibly a little C++ Translation of C into assembly language Introduction.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
1 IDLOOPC1998. Object-Oriented Programming Using C++ CLASS 1.
CS616: Software Engineering Spring 2009 Design Patterns Sami Taha.
Object Oriented Programming (FIT-II) J. H. Wang Jan. 31, 2008.
Design Patterns Software Engineering CS 561. Last Time Introduced design patterns Abstraction-Occurrence General Hierarchy Player-Role.
PC204 Lecture 5 Programming Methodologies Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.
Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia 15th Workshop on "Software Engineering Education and Reverse.
Design Patterns in Context ©SoftMoore ConsultingSlide 1.
Computer Science at USF Greg Benson Professor and Chair.
Data Structures and Algorithms in Java AlaaEddin 2012.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Nigel Baker UWE & CERN/EP-CMA Design Patterns for Integrating Product and Process Models The C.R.I.S.T.A.L. Project ( C ooperative R epositories & I nformation.
Lecture 1 Data Structures Aamir Zia. Introduction Course outline Rules and regulations Course contents Good Programming Practices Data Types and Data.
COMP9024: Data Structures and Algorithms Course Outline Hui Wu Session 1, 2016
CSC 241: Introduction to Computer Science I
CSC 222: Object-Oriented Programming
COMP9024: Data Structures and Algorithms
Chapter 5:Design Patterns
Design Patterns Lecture part 2.
Introduction to Design Patterns
Jim Fawcett CSE687 – Object Oriented Design Spring 2005
Object-Orientated Programming
Design and Maintenance of Web Applications in J2EE
EECE 310 Software Engineering
Introduction to Computer Science for Majors II
Algorithm Design and Analysis
CSCE 221 Professor Lupoli TAMU CSCE 221 Intro.
ICS201 Introduction To Computing II
CSCE156: Introduction to Computer Science II
CSC 241: Introduction to Computer Science I
Presentation transcript:

CSIII Proposal Mikhail Nesterenko CS Faculty Retreat May 3, 2013

Outline motivation and goals what CIII should not be topics setup and techniques textbooks 2

Motivation and Goals increase CS majors programming proficiency – experience modifying and maintaining code rather than designing it from scratch – focus on programming idioms and solving problems rather than learning novel tools – focus on application programming – use professional programmers’ rather than academic techniques eventually make it a required course – following CSII – relative difficulty: a C-student from CII is able to complete the course 3

What CSIII Should Not Be the course should be fundamental, relatively stable, useful to all students/courses, relatively in- depth, distinct and separate from other courses taught in CS hence, no specialized programming – no mobile, parallel, distributed, embedded, network, system, GPU programming, no specialized toolkits software engineering – no version control, software development methodologies, software analysis, software lifecycle different languages – no Python, Java, C#, Javascript, HTML … algorithms or math – no sorting algorithms, extensive graph coverage, algorithm complexity, randomized algorithms, complex matrix manipulation, integrals, etc. 4

Topics tools – virtual functions, inheritance, polymorphism – generic programming (templates) – UML design patterns: composite, template method, abstract factory, singleton, visitor, builder, proxy data structures(?): hash maps, 2-3/red-black trees frameworks and libraries(?) – STL – Boost – Qt 5

Setup & Techniques 4 credit hours: 2 lecture sessions + 1 lab session instructor + TA (hopefully) ~4 extensive projects divided into sub-projects due every week techniques – modifying existing code – code critique/defense 6

Textbooks yet to be determined. Candidates “ Clean Code: A Handbook of Agile Software Craftsmanship” R.C. Martin – very nice but Java-oriented, not a textbook “An Introduction to Design Patterns in C++ with Qt 4” by A. Ezust and P. Ezust -- to much QT, may be too simple “Code Complete: A Practical Handbook of Software Construction” Steve McConnell – chatty, not a textbook, more appropriate as supplement for CSI “Design Patterns: Elements of Reusable Object-Oriented Software” E. Gamma et al – somewhat dated, classic, may be too dense “Modern C++ Design: Generic Programming and Design Patterns Applied” Alexandeskou – a bit dense “Effective C++” Scott Meyer – looks about right, maybe a bit too much focused on C++ 7