150 likes | 228 Views
Computing Science for non-continuing students. Dr Helen Purchase School of Computing Science University of Glasgow helen.purchase@glasgow.ac.uk. Motivation. Introductory courses for students who: have a general interest in Computing Science do not wish to study Computing Science further
E N D
Computing Science for non-continuing students Dr Helen PurchaseSchool of Computing ScienceUniversity of Glasgow helen.purchase@glasgow.ac.uk
Motivation • Introductory courses for students who: • have a general interest in Computing Science • do not wish to study Computing Science further • do not (necessarily) have any programming experience • do not (think they) want to learn how to program • are studying any other degree programme • Everyone can benefit from knowing about: • algorithmic and computational thinking • how computational processes are evident in the world around us
Two courses “Principles and Practise of Computing Science” “Programming Digital Media”
What makes these courses different? • Not a typical ‘preparatory’ course to prepare students for advanced concepts in later years • programming (CS1P) • fundamental concepts (relations, sets, interaction design, circuits and registers etc.) (CS1Q) • Broad, introductory focus • unexpected consequence: more advanced concepts can be taught early
PPCS: Freedom from constraints • No requirement to focus on low-level programming and technical skills • Topics described at a higher level of detail • still understandable • releases students from concerns of programming syntax and compilation errors • Covers • diverse topics: databases, logic and operating systems • advanced topics: concurrency, cryptography and artificial intelligence
Principles • Algorithms: simple constructs, procedures, functions, parameters, recursion • Data structures: simple variables, arrays, graphs • Boolean logic: simple statements, truth tables and circuits; simple transformations • Theory: complexity, intractability
Practise • Artificial intelligence: robots, game trees and learning • Human computer interaction: usability concepts and guidelines • Databases: relational structures and representations, simple normalisation • Systems: concurrency, operating systems • Security: cryptography, malware, safety-critical systems
Historical context Denning Aristotle de Morgan Boole Shannon Babbage Lovelace Kindall Mohammed al-Khwarizmi Turing Searle Dijkstra Diffie-Hellman-Merkle Mandelbrot Deep Blue
Lab work • Raptor (flow charting) • Nifty assignments (http://nifty.stanford.edu/) • Picobot • Black box sorting and testing • Fractal software • Game tree visualisation • Critiques: interfaces, databases • Essay on chosen current topic
Challenges • Breadth (and intensity) of topics • Pace • Mathematics • Engagement • Lab work • Class size • Textbook n 2
PDM: A back-door to Python • Manipulation of digital media • Basic control and data structures: • manipulate images by changing pixels • create sounds by iterating over samples • render lists of numbers into music • create artefacts like collages, music, and digital video special effects • Show how computational primitives can manipulate media
What next… • For the students: • high performers who have been persuaded to continue with Computing Science can do our level 2 ‘Fast Track’ programme • For us: • refinement • fewer topics in more depth • more appropriate lab exercises • publicity
Personal reflections • Pace • Breadth: • no ‘building on’ topics • new topics • Interesting historical context • Fun exercises • Guest lectures