Difference: CS290Fall08 (1 vs. 5)

Revision 52008-09-22 - ChenDing

Line: 1 to 1
 
META TOPICPARENT name="ChenDingLeftBar"
Changed:
<
<

CSC 290 Collaborative Software Development and Collective Knowledge Engineering

>
>

CSC 290 Collaborative Software Engineering

 

Course Description

Line: 11 to 11
 This experimental course teaches principles and practices of collaborative software development and its use in converting data into knowledge and knowledge into tools. The topics include fundamentals of programming (more for organizing information than for managing computers), lessons from past information systems, and current practice and tools for teamwork and (virtual) collaboration. The main assignments are a series of group projects including the final project of developing a possibly on-line recommendation system. The projects will be evaluated based on the design, implementation, and deployment, including an end-of-semester competition based on a user survey.

Draft Syllabus

Changed:
<
<
  • Fundation of programming
    • what's a program
    • abstraction and implementation (lambda calculus)
    • object orientation
    • dynamic languages
    • case studies
      • continuation and actor model
>
>
  • Programming languages and tools
    • essence of programming---how to create and communicate
      • object orientation, lambda calculus, continuation passing, Guy Steele's discovery of actor model, Curry-Howard isomorphism
      • case studies: scheme, Java, ruby, R
    • libraries and packages, type theory, module composition, design patterns, virtual machines---how to reuse
      • case studies: C header files, Java packages, managed run-time, augmenting an interpreted language
    • tools for version control, source browsing, debugging, and distributing---how to build
      • using emacs and command window
      • case study: the anatomy of a million-line open-source application
    • tools for collaboration---how to evolve * chats, wiki, issue tracking, web 2.0
      • design problem: programmable wiki
 
  • Software engineering
Added:
>
>
    • history: programmable computers, high-level languages, software crisis, Unix, personal computing, interpreted languages, agile and extreme programming
    • software development process
      • requirement analysis, specification, architecture, implementation, testing, deployment, documentation
      • waterfall model, iterative, incremental, adaptive
 
    • basis of the discipline
Changed:
<
<
      • Brooks, Parnas, and other selected reading
    • version control, testing, bug tracking
    • virtual collaboration (chats, wiki, remote file sharing)
>
>
      • modular design, information hiding, separation of concerns
      • selected reading: Brooks, Parnas, Milner, Kennedy, Booch, Gabriel
 
    • user interface design and documentation
Changed:
<
<
    • case studies
      • Gcc and open source
      • industry software development (IBM or Microsoft)
  • Collective intelligence
    • data representation and processing
    • data modeling and data mining
    • case studies
  • Scalable information systems
>
>
    • case studies of industry software development (IBM/Microsoft/Google)
  • Collective intelligence and scalable information systems
    • collaborative information processing: searching, filtering, ranking, clustering, modeling, predicting
    • composition, communication, complexity
      • locality, connectivity, and other emergent properties
 
    • decentralized and self-organizing systems
Added:
>
>
      • strategy games, evolutionary systems
 
    • sustainable development
Changed:
<
<
    • related literature
      • strategy games
      • evolutionary principles
    • case studies
      • Web 2.0
>
>
      • ethics, privacy, outsourcing, cloud computing, should software be free?
 

Work in progress (restricted access)

Revision 42008-02-14 - ChenDing

Line: 1 to 1
 
META TOPICPARENT name="ChenDingLeftBar"
Line: 10 to 10
  This experimental course teaches principles and practices of collaborative software development and its use in converting data into knowledge and knowledge into tools. The topics include fundamentals of programming (more for organizing information than for managing computers), lessons from past information systems, and current practice and tools for teamwork and (virtual) collaboration. The main assignments are a series of group projects including the final project of developing a possibly on-line recommendation system. The projects will be evaluated based on the design, implementation, and deployment, including an end-of-semester competition based on a user survey.
Added:
>
>

Draft Syllabus

  • Fundation of programming
    • what's a program
    • abstraction and implementation (lambda calculus)
    • object orientation
    • dynamic languages
    • case studies
      • continuation and actor model
  • Software engineering
    • basis of the discipline
      • Brooks, Parnas, and other selected reading
    • version control, testing, bug tracking
    • virtual collaboration (chats, wiki, remote file sharing)
    • user interface design and documentation
    • case studies
      • Gcc and open source
      • industry software development (IBM or Microsoft)
  • Collective intelligence
    • data representation and processing
    • data modeling and data mining
    • case studies
  • Scalable information systems
    • decentralized and self-organizing systems
    • sustainable development
    • related literature
      • strategy games
      • evolutionary principles
    • case studies
      • Web 2.0
 

Work in progress (restricted access)

Revision 32008-01-24 - ChenDing

Line: 1 to 1
 
META TOPICPARENT name="ChenDingLeftBar"
Line: 10 to 10
  This experimental course teaches principles and practices of collaborative software development and its use in converting data into knowledge and knowledge into tools. The topics include fundamentals of programming (more for organizing information than for managing computers), lessons from past information systems, and current practice and tools for teamwork and (virtual) collaboration. The main assignments are a series of group projects including the final project of developing a possibly on-line recommendation system. The projects will be evaluated based on the design, implementation, and deployment, including an end-of-semester competition based on a user survey.
Added:
>
>

Work in progress (restricted access)

 

Revision 22008-01-21 - ChenDing

Line: 1 to 1
 
META TOPICPARENT name="ChenDingLeftBar"
Changed:
<
<

CSC 290 Digital Knowledge Engineering

>
>

CSC 290 Collaborative Software Development and Collective Knowledge Engineering

 

Course Description

Changed:
<
<
Today a vast amount of information is available in the digital form, and most of the new content is produced digitally. Running on low-cost, powerful computers, immense storage, and ubiquitous networks, a new generation of software has radically changed how information is distributed and accessed and is openning new possibilities in how (fast) knowledge is created and used. This revoluation has been compared to the advent of printing, and the need of college graduates for the pertinent expertise and skill to requirements as basic and essential as reading and writing.
>
>
Running on low-cost, powerful computers, immense storage, and ubiquitous networks, a new generation of software has radically changed how information is distributed and accessed and is opening new possibilities in how (fast) knowledge is created and used. This revolution has been compared to the advent of printing, and the pertinent expertise and skill are considered as basic and essential as reading and writing.
 
Changed:
<
<
This experimental course teaches principles and practices of converting data into knowledge and knowledge into tools. The topics include fundamentals of programming (more for organizing information than for managing computers), lessons from past information systems, and current practice and tools for teamwork and (virtual) collaboration. The main assignments are a series of group projects including the final project of developing a possibly on-line recommendation system. The projects will be evaluated based on the design, implementation, and user interaction, including an end-of-semester competition based on user survey.
>
>
This experimental course teaches principles and practices of collaborative software development and its use in converting data into knowledge and knowledge into tools. The topics include fundamentals of programming (more for organizing information than for managing computers), lessons from past information systems, and current practice and tools for teamwork and (virtual) collaboration. The main assignments are a series of group projects including the final project of developing a possibly on-line recommendation system. The projects will be evaluated based on the design, implementation, and deployment, including an end-of-semester competition based on a user survey.
 
Deleted:
<
<
The course is under development.
 
Deleted:
<
<
-- ChenDing - last updated Jan. 14, 2008
 
Changed:
<
<
Set ALLOWTOPICCHANGE = ChenDing
>
>
 \ No newline at end of file

Revision 12008-01-14 - ChenDing

Line: 1 to 1
Added:
>
>
META TOPICPARENT name="ChenDingLeftBar"

CSC 290 Digital Knowledge Engineering

Course Description

Today a vast amount of information is available in the digital form, and most of the new content is produced digitally. Running on low-cost, powerful computers, immense storage, and ubiquitous networks, a new generation of software has radically changed how information is distributed and accessed and is openning new possibilities in how (fast) knowledge is created and used. This revoluation has been compared to the advent of printing, and the need of college graduates for the pertinent expertise and skill to requirements as basic and essential as reading and writing.

This experimental course teaches principles and practices of converting data into knowledge and knowledge into tools. The topics include fundamentals of programming (more for organizing information than for managing computers), lessons from past information systems, and current practice and tools for teamwork and (virtual) collaboration. The main assignments are a series of group projects including the final project of developing a possibly on-line recommendation system. The projects will be evaluated based on the design, implementation, and user interaction, including an end-of-semester competition based on user survey.

The course is under development.

-- ChenDing - last updated Jan. 14, 2008

Set ALLOWTOPICCHANGE = ChenDing

 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding URCS? Send feedback