Download presentation
Presentation is loading. Please wait.
Published byMerryl Kelly Modified over 9 years ago
1
CSIII Proposal Mikhail Nesterenko CS Faculty Retreat May 3, 2013
2
Outline motivation and goals what CIII should not be topics setup and techniques textbooks 2
3
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
4
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
5
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
6
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
7
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.