

Ask HN: New curriculum needed for university's Web Application Development  - forkrulassail

Hi<p>I've recently been approached by an African university with a full time position (with the possibility of continued outside work and research). One of the first discussions we had was on the quality of the skills most students graduate with.<p>The course needs some serious redevelopment and a refocused vision to stay viable in our ever changing web environment.<p>Problems I've come across from interviews with various students (pre and post graduate level) include:<p>* Not a strong enough focus on core technologies<p>* Outdated set of technologies being taught (curriculum is 10 years old)<p>* Students' portfolios look anything but impressive<p>* Students are not encouraged to build businesses or working prototypes - merely to 'get a job' (I feel this is a waste of their free time in the 3-4 years they spend on campus)<p>* Not enough focus on emerging technologies<p>* No focus on mobile web development at all<p>* Too much focus on M$ and Oracle technologies (although this is still heavily required in the country)<p>On the positive side, the course is up for review on a curriculum level. I though this would be the best platform and crowd to ask for suggestions and help.<p>I'd appreciate any and all discussion on this topic as I really want students who invest their time and effort to step into industry (ideally on their own) with a solid and grounded footing.<p>Below are the course majors.<p>INTERNET PROGRAMMING I
Students acquire an understanding of the core principles of Java and they learn how to produce
well-designed, effective applications using some of the more advanced features of the language.<p>INTERNET PROGRAMMING II
Client-side programming using HTML and scripting languages. Advanced client-side programming.<p>INTERNET PROGRAMMING IIA
This subject teaches how to design and develop websites using client side technologies including XHTML, Cascading Style Sheets, and JavaScript. At the end of this subject, students should show the ability to develop interactive client side websites. Contents include: Basic XHTML, Imaging for the web (Image Basics, Raster and vector graphics, Common image formats), Advanced XHTML (Meta Elements, Span and Div elements, Image Maps, Tables, Forms, Frames), Cascading Style Sheets, JavaScript Introduction + Arithmetic, JavaScript Control Structures, JavaScript Functions, JavaScript Arrays, JavaScript Objects, DHTML + DHTML Events model (The on click, on load, on error, Mouse and Form events, Event Bubbling, etc) (Total tuition time: ± 90 hours)<p>INTERNET PROGRAMMING AND E-COMMERCE IV
The aim of this course is to introduce students to the Rapid application development with the Ruby on Rails framework and databases for interacting with, and storing data for end users. Topics include Advanced architectural design of e-commerce systems with high availability and scalability, developing front-end/back-end functionality, security/logins, system administration etc. (Total tuition time: ± 30 hours)<p>INTERNET PROGRAMMING IIB
This subject teaches how to design and develop and deploy dynamic web applications using server-side technologies namely ASP.NET, c#, IIS /Tomcat server &#38; Database. At the end of this subject, students should show the ability to develop dynamic and interactive 3-tier client-server-database web applications using C# in an ASP.NET development environment. Contents include reasons for using Server-Side Web scripting, Introduction to C#, Exception handling, object oriented programming in C# and the .NET framework; introduction to the Visual Studio IDE and the basic concepts of ASP.NET. (The parts of the IDE and MSDN; ASP.NET files; Web
Form Layout; Basic Controls; Master Pages; Code Behind; Post-back), Validation Controls, Login Controls, Menu Controls, State Management, important concepts and classes that are essential for programming ASP. NET applications (HTTP Classes, Application and Session, Page object, Page Lifecycle), theory and practice of SQL using Microsoft SQL Server Express, debugging applications and navigating the integrated SQL Server Express/Visual Studio IDE, the retrieval of data, the insertion of data and the updating/deleting of data from SQL Server Express database. (Total tuition time: ± 90 hours)<p>INTERNET PROGRAMMING IIIA
This subject teaches how to design and develop and deploy advanced dynamic web applications using server- side technologies including PHP, IIS /Tomcat server &#38; Database. At the end of this subject, students should show the ability to tie together various aspects previously studied in the course of the Diploma in Web Application development and develop dynamic and interactive 3-tier client-server-database web applications. Contents include overview of: Reasons for using PHP, MySQL and, Server-Side Web Scripting, Getting Started with PHP, Adding PHP to HTML, Syntax and Variables, Control and Functions, Passing Information between Pages, Strings, Arrays and Array Functions, Numbers. Advanced contents include: Object-Oriented Programming with
PHP, Advanced Array Functions, String and Regular Expression Functions, File system and System Functions, Sessions, Cookies, and HTTP basics, Types and Type Conversions, Advanced Use of Functions, Security, Configuration, Exceptions and Error Handling, Debugging; Choosing a Database for PHP; SQL Tutorial; MySQL Database Administration; PHP/MySQL Functions; Displaying Queries in Tables; Building Forms from Queries; PHP/MySQL Efficiency; PostgreSQL; Oracle; PEAR Database Functions; E-mail; PHP and JavaScript/Java/
XML/Web Services; Graphics; Weblogs; User Authentication. (Total tuition time: ± 90 hours)<p>INTERNET PROGRAMMING IIIB
The purpose of this course is to introduce students to the various database concepts, the design, implementation and management of a database system, as well as Standard Query Language and the practical application of SQL. The SQL principles will be applied practically in the use of the Oracle SQL courseware and software. The qualifying learner should have a broad understanding of the environment within which the software component of a computer-based system is developed; to enable them, for example, to liaise between end users and system designers/programmers; to recommend particular software packages and to write and modify programmes. The qualifying learner should be able to explain and apply database concepts and approaches to database
design. The practical part includes programming with MySQL as a database management system (DBMS).
(Total tuition time: ± 90 hours)<p>What would you add to the course? 
Would you change the focus?
Would more project based teams be ideal for technology deployment?
How can one ensure a more entrepreneurial element in the course (especially at first year level) ?<p>Thanks.
======
forkrulassail
To clarify - I'm not inherently anti-proprietary software - I just think
specifically in Africa there is so much more scope when working with open
technologies that will scale.

~~~
SkyMarshal
Yes, invest more in open source. No reason these days for developing countries
to be paying huge fees/taxes to proprietary software companies.

Experiment with the Salman Khan learning style - invert lectures and homework.
Eg, have students watch lectures at home (from MIT OCW, Stanford, Berkeley,
Khan Academy, etc), and devote class time to implementing, practicing, doing.
Get rid of large boring lectures, replace them with more time in guided
labs/sessions. Learning programming is all about doing, and the one advantage
a University can offer over self-learning is mentoring by professors and a
quicker instructional feedback loop. Leverage that.

~~~
forkrulassail
I found the recent Stanford AI & ML course approaches interesting.

------
ch00ey
Purely out of curiosity where about in Africa is the university?

~~~
forkrulassail
South Africa.

------
forkrulassail
What new technologies would you deem relevant?

