UTCS 11 Curriculum Reform Department of Computer Sciences University of Texas at Austin 7/10/08.

Slides:



Advertisements
Similar presentations
Course Outline Presentation Term: F09 Faculty Name : Asma Sanam Larik Course Name :INTRO TO COMPUTING Course Code : CSE145 Section :1 Semester : 1.
Advertisements

Standards Alignment A study of alignment between state standards and the ACM K-12 Curriculum.
Project Lead the Way An Orientation American High School.
1 Undergraduate Curriculum Revision Department of Computer Science February 10, 2010.
NSF/TCPP Early Adopter Experience at Jackson State University Computer Science Department.
Introductory Lecture. What is Discrete Mathematics? Discrete mathematics is the part of mathematics devoted to the study of discrete (as opposed to continuous)
Department of Mathematics and Computer Science
Computer Science at UCSB Phill Conrad CS Dept. Faculty Advisor Benji Dunson CS Dept. Staff Advisor Leif Dreizler Stephanie Smith Cindy Lu Nataly Moreno.
Introductory Computer Science Courses Past experiences & thoughts Haakon Ringberg, Thomson Research Paris & Princeton University.
Introduction to Computer Science CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2009 Lecture 1 Introduction/Overview Text: Chapters 1, 2 Th. 9/3/2009.
About the Course Lecture 0: Sep 2 AB C. Plan  Course Information and Arrangement  Course Requirement  Topics and objectives of this course.
CS 101 Course Summary December 5, Big Ideas Abstraction Problem solving Fundamentals of programming.
From Discrete Mathematics to AI applications: A progression path for an undergraduate program in math Abdul Huq Middle East College of Information Technology,
1 Foundations of Software Design Lecture 1: Course Overview Intro to Binary and Boolean Marti Hearst SIMS, University of California at Berkeley.
Course Introduction CS 1037 Fundamentals of Computer Science II.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lecture 1 Introduction/Overview Wed. 9/5/01.
CS 206 Introduction to Computer Science II 12 / 10 / 2008 Instructor: Michael Eckmann.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2005 Lecture 1 Introduction/Overview Text: Chapters 1, 2 Wed. 9/7/05.
Discrete Structures for Computer Science Ruoming Jin MW 5:30 – 6:45pm Fall 2009 rm MSB115.
Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation.
Outline Chapter 1 Hardware, Software, Programming, Web surfing, … Chapter Goals –Describe the layers of a computer system –Describe the concept.
CS 1 with Robots CS1301 – Where it Fits Institute for Personal Robots in Education (IPRE)‏
Integrating Business Education and Computer Science to Prepare Students for the 21 st Century Barbara Ericson Advanced.
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
CS 21a: Intro to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
1 Mathematical Institute Serbian Academy of Sciences and Arts, Belgrade DEUKS Meeting Valencia, September 9-11, 2008, Valencia New PhD modules proposal.
Information Security and Computer Systems: An Integrated Approach Mark A. Holliday and Bill Kreahling, Dept of Mathematics and Computer Science Western.
Lecture 1: Introduction CS 6903: Modern Cryptography Spring 2009 Nitesh Saxena Polytechnic Institute of NYU.
1 A Simple but Realistic Assembly Language for a Course in Computer Organization Eric Larson Moon Ok Kim Seattle University October 25, 2008.
ISECON Feinstein1 IM’ LATE FROM THERE TO HERE – FROM HERE TO THERE A FEW BITS AND BYTES David Feinstein Educator of the year 2004.
Course overview Course title: Discrete mathematics for Computer Science Instructors: Dr. Abdelouahid Derhab Credit.
Korea Advanced Institute of Science and Technology, Dept. of EECS, Div. of CS, Information Systems Lab. 1/10 CS204 Course Overview Prof.
Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University.
CS212: DATA STRUCTURES Lecture 1: Introduction. What is this course is about ?  Data structures : conceptual and concrete ways to organize data for efficient.
Discrete Structures for Computing
Motions for Permanent Undergraduate Course Numbers Brian L. Evans On Behalf of the ECE Curriculum Committee September 21, 2015.
CS1104 – Computer Organization PART 2: Computer Architecture Lecture 12 Overview and Concluding Remarks.
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
MATH 224 – Discrete Mathematics
Discrete Structures and The Three-Fold Introduction to Computer Science Doug Baldwin Department of Computer Science SUNY Geneseo.
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
Computer Science 210 Computer Organization Course Introduction.
The Nature of Computing INEL 4206 – Microprocessors Lecture 2 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.
Multi-Semester Effort and Experience to Integrate NSF/IEEE-TCPP PDC into Multiple Department- wide Core Courses of Computer Science and Technology Department.
Computer Science in Context Evangelos E. Milios Professor and Graduate Coordinator Faculty of Computer Science Dalhousie University.
Design and Analysis of Algorithms (09 Credits / 5 hours per week) Sixth Semester: Computer Science & Engineering M.B.Chandak
CES 592 Theory of Software Systems B. Ravikumar (Ravi) Office: 124 Darwin Hall.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
New Curricula Proposal at FSMN by Miroslav Ćirić & Predrag Krtolica.
BITS Pilani Pilani Campus Data Structure and Algorithms Design Dr. Maheswari Karthikeyan Lecture1.
Introductory Lecture. What is Discrete Mathematics? Discrete mathematics is the part of mathematics devoted to the study of discrete (as opposed to continuous)
CS 1 with Robots CS1301 – Where it Fits Institute for Personal Robots in Education (IPRE)‏
서울대한양대 ( 안 산 ) 충남대 1년1년 컴퓨터기초 (C) 컴퓨터프로그래밍 (C, Java) 컴퓨터프로그래밍 (C) 2. 봄 프로그래밍 원리 (Scheme, ML) Structure & Interpretation of Computer Programs 프로그래밍 방법론.
Sub-fields of computer science. Sub-fields of computer science.
Changing Your Life with a Career in Computing
Lecture 1 Introduction/Overview Text: Chapters 1, 2 Wed. 1/28/04
Computer Science Courses
Big Ideas in Computer Science
CS 21a: Intro to Computing I
* 312 Foundations II 332 Data Abstractions 311 I 351 Hw/Sw Interface
CSC Classes Required for TCC CS Degree
Objective of This Course
Discrete Math (2) Haiming Chen Associate Professor, PhD
CS1301 – Where it Fits Institute for Personal Robots in Education
CS1301 – Where it Fits Institute for Personal Robots in Education
Mathematics in the Data Science Movement
CS1301 – Where it Fits Institute for Personal Robots in Education
CSCE156: Introduction to Computer Science II
Computer Science Courses in the Major
Presentation transcript:

UTCS 11 Curriculum Reform Department of Computer Sciences University of Texas at Austin 7/10/08

UTCS 22 CS Degrees BA with a major in CS BS, Option I: Computer Sciences BS, Option II: Turing Scholars Honors BS, Option III: Computer Sciences Honors (Dean’s Scholars Program) BS, Option IV: Integrated Program (5 year program combined with MS CS)

UTCS 33 Reasons for Reform CS has become too large to cover in 4 years, especially in application areas Consequently, students learn too little about too much Employers and graduate schools want many of our graduates to have deeper knowledge and skills

UTCS 44 Summary Core  Shrink the set of required courses  Shift the math requirements Less calculus More probability, statistics, linear algebra Concentrations  Each one is a coherent cluster of electives  Most students complete two concentrations  Every student completes a research project or software development project

UTCS 55 Math Requirements BA requirement:  Old: Calculus 1 and 2, elective.  Proposed: Calculus 1, Matrices, Probability. BS requirement:  Old: Calculus 1 and 2, Matrices, elective.  Proposed: Calculus 1, Matrices, Probability, elective. Rationale:  Linear algebra, probability more useful in CS than multivariable calculus.  Larger variety of mathematics.

UTCS 66 Proposed Core Reduce the core to 9 classes (down from 11) Include a one hour “immigration course” Design the courses to fit together coherently Core courses in three areas: Programming Systems Theory

UTCS 77 Programming Core

UTCS 88 Core Programming Classes – ACM Recommendations Three introductory courses  Plus a discrete math course in parallel Six recommended approaches  imperative first, objects first, functional first, breadth first, algorithms first, hardware first Introductory courses should not be programming fundamentals only.  Recommends incorporating topics from discrete math, software engineering, and other areas.

UTCS 99 Core Programming Classes Example of Variation – Languages Brown – Java Berkeley – Scheme, Scheme, Java Caltech – Scheme, multiple languages in second course CMU – Java Columbia – Java, third course with multiple languages Cornell – Java/Matlab, Java/C++, ML/C++/Assembly Duke – Java Georgia Tech – Python, Java Harvard – C/Ruby (some Java, C++) Illinois – Java, C++, C Maryland – Java, Java, C Michigan – C++ Penn – Java, C/Java/Python Princeton – Java Purdue – Java Rice – Scheme, Java Rutgers - Java, Java, Java Stanford – Java, C++ UC Irvine – Java, Scheme UCLA – C++ UCSD – Java, Java/C++ UMass – Java, C/C++ USC Java, C++ Washington – Java, Java Wisconsin – Java, Java/C++ Yale – Scheme, C

UTCS 10 Core Programming Classes – Programming 0 For students with no high school experience in CS Programming Fundamentals Use a small subset of Java Focus on fundamentals of computation, algorithms, and programming Ideas stressed through out course:  algorithm and program development, testing, predicting program behavior, debugging, reasoning about programs. By the end of the course students should be able to design and implement a program that involves an array of objects/structures/records.  lines of code for a good solution.

UTCS 11 Core Programming Classes – Programming 0 Topics List variables and expressions control structures  looping, decision making Boolean logic simple i/o and file i/o, structural decomposition procedures / methods / functions, parameters, problem generalization simple testing and debugging arrays using, library functions (strings, math functions) creating user defined data types program and algorithm development understand and modify existing code quadratic sorting algorithms

UTCS 12 Core Programming Classes – Programming 1 First class for students with some CS from high school Data structures and algorithms. Ideas stressed throughout course:  algorithm and program development, thinking about efficiency of algorithms, experiments on data structures and algorithms to verify performance, data structure algorithms, time and space trade offs, testing, abstraction, debugging, reasoning about programs. Continue to use Java

UTCS 13 Core Programming Classes – Programming 1 Topics List Language review, pointers introduction to algorithm analysis sorting and searching recursion data structures  array based lists, linked lists, iterators, stacks, queues, trees, hash tables, maps/dictionaries

UTCS 14 Core Programming Classes – Programming 2 Under construction … Potential topics and goals:  learn a different language or two  advanced data structures graphs, heaps, others  memory management  open ended projects  design, implementation, and testing of larger programs other possibilities  modeling, parallel programming / threads, networked applications, systems programming, programming tools

UTCS 15 Computer Systems Core

UTCS 16 Goals Knowledge  How a computer works at a basic level From bits and gates to OS and programming languages  Systems principles: abstraction, pipelining, caching, virtualization Skills  Systems programming (C and assembly)  Thinking sequentially and concurrently  Reasoning about system performance  Practice with real-world systems Some inspiration drawn from “Computer Systems, A Programmer’s Perspective,” by Bryant and O’Hallaron

UTCS 17 Systems I Overview (39 lecture hrs) Digital logic and digital systems (8) Data representation (2) ISA/assembly language (5)  Encoding, addresses, program/data interpretation Programming language primitives (7)  Compound data structures, procedure calling, control (loops, if/then/else) Machine organization (8)  Datapath design, control logic, instruction execution Performance principles (2)  Clock rate, parallelism, Amdahl’s law Pipelining principles (4)  Control/data hazards, simple branch speculation Principles of caching (3)  Locality, cache organization

UTCS 18 Systems II Overview (35 lecture hrs) Concurrency and concurrent programming (12)  Threads/locks/monitors  Mutual exclusion, safetly/liveness  Practice in concurrent programming Memory organization and management (4)  Memory layout, pointers, heap mgt. Virtualization (6)  Process organization, isolation  Address translation, page tables, TLBs File systems and I/O (4)  What’s a file, what’s a directory, transactions Security (3)  Basic overview, public key encryption, authentication Networking (3)  Data transmission, internet protocol, reliability Systems performance evaluation (3)  Throughput/latency, performance models (LogP)

UTCS 19 Theory Core

UTCS 20 Theory 1: Logic, Sets and Functions 1. Logic (4)  Propositional logic (truth tables, inference rules)  Predicate logic (inference rules)  Formal expression of statements using logical notation 2. Proof Techniques (direct, contradiction, induction) (4) 3. Set Theory (operations) (2) 4. Relations (2)  Betweens sets, On sets  Representations by matrices and graphs  Properties of relations on sets  Equivalence relations and partitions 5. Functions (2)  Properties  Pigeonhole principle

UTCS 21 Theory 2 Under construction …

UTCS 22 Theory 3: Algorithms Topics  Basic graph algorithms  Divide and conquer  Greedy algorithms  Dynamic programming  Graph algorithms: MST and shortest paths  Data structures  NP-completeness  Randomized algorithms  Approximation algorithms  Number theory algorithms/RSA Prerequisites: Theory 2, Linear Algebra, and Probability.

UTCS 23 Concentration Areas

UTCS 24 Degree Requirements Students select 7 concentration courses  For “specialists” 3 in a “major” concentration area, 2 in a “minor” area 2 electives - can be in major area, minor area, other area  For “generalists” 3 “header” courses from 3 different concentration areas 4 electives - from any concentration area or non-area

UTCS 25 Concentration Areas Theory Intelligent Systems Computer Systems Networking and Security SW Development Programming Languages Scientific and Data Driven Computing “Interdisciplinary”

UTCS 26 Example Concentration Area Networking and Security  Computer Networks (header)  Computer Security (header)  Cryptography  Wireless Networks  Advanced Computer Networks  Applications of Networks and Security (Project)

UTCS 27 Example Concentration Area Intelligent Systems  Overview of Artificial Intelligence (header)  Knowledge Representation and Reasoning  Machine Learning and Data Mining  Robotics  Computer Vision  Natural Language Processing

UTCS 28 Project Class (“Capstone”) Research project or software development project Junior year Give students something to brag about