|
Software Systems Development Courses and Certificates
Software Systems Development makes up the second half of iCarnegie's 10-course Software Systems Development (SSD) curriculum, rounding out the advanced training and education that prepares students for careers in software development, engineering, and management.
iCarnegie's higher education and training partners may choose to offer all or a selected number of these courses (check course availability with individual partners):
Students certifying in SSD1-10 courses obtain an iCarnegie Certificate in Software Systems Development.
Brief Course Descriptions: (detailed course descriptions are available from iCarnegie and our education partners)
SSD6 = System-Level Programming
This course prepares programmers to consistently produce software applications that execute rapidly and are efficient in their use of memory. This is accomplished by providing students with a programmer’s view of processors, memory, and operating systems. Students learn explicitly about memory organization and hierarchies, context-switching and threads, and the transformations that a high-level program undergoes before it is executed on actual hardware. This knowledge enables students to eliminate obscure “bugs” and to measure and optimize software program performance. Programming assignments use the C programming language.
Topics: Programming in C; debugging; memory management, memory hierarchies, cached memory, virtual memory; performance measurement and tuning; DLLs; operating systems; basic concurrent programming.
Prerequisites: SSD2 (or skills/education equivalent), SSD5
SSD7 = Database Systems
At the heart of today’s web-based software applications that are revolutionizing businesses, there are well-designed database systems enabling rich functionality. This course trains students to build such systems, by teaching database concepts and then the practical work of database system design and implementation. It draws on previous training in advanced Java, web environments, object-oriented programming, and usability design. Students develop client-server applications in Java and JSP, using database management systems. The assignment involves the creation of an e-commerce bookstore, which must support the ability for users to register themselves, search content, place and track orders, and change personal settings. Students gain the necessary skills to create data models appropriate for specific applications (relational data models are emphasized), tune the underlying database for fast response times, and ensure the system is robust enough to handle failures.
Topics: Relational data models and data independence; relational query languages and SQL; database design; normalization; client-server applications; transactions; indexes; performance issues.
Prerequisites: SSD5
SSD8 = Networks & Distributed Programming
This course focuses on the principles and practices of building business applications that are distributed across networks, allowing for many users to be part of a connected community. Students start with an overview of networking technology that supports data and multimedia communication. The students apply concepts to a number of practical assignments involving the development of distributed applications, including web servers, calendars, and chat systems. Students learn application-oriented protocols and approaches to distributed object-oriented programming using Java. With network-based applications being a frequent source of security issues for many companies, professionals having strong knowledge in this area are an asset in helping to prevent such problems in the workplace.
Topics: Networking protocols and technology; multimedia networking; client/server design, thick and thin clients; CORBA and related tools; Web implementation issues; electronic mail; security and privacy issues.
Prerequisites: SSD6
SSD9 = Software Specification, Test and Maintenance
The course prepares students for the software development processes and planning activities they will encounter in the workplace, by providing them with practical experience in managing all phases of a software project’s life cycle - from requirements gathering through design, testing, and final deployment. This course, which has served as a masters-level course at Carnegie Mellon University, focuses on the principles of developing economical, reliable software systems following modern software engineering practices. Students work individually or in multi-person teams to develop and manage all the steps required to build a database-driven software project of significant scale, in this instance, an online musical instrument store.
Topics: Life cycle models, requirements analysis, specification, design, implementation, inspection, testing, documentation, configuration control, CASE tools, and reuse.
Prerequisites: SSD4, SSD7
SSD10 = Software Project Organization & Management
This course prepares students to organize and manage teams of individuals involved in the development of software applications and products. The skills taught are crucial for the workplace, where software project plans must be developed to withstand typical problems such as schedule over-runs, budget over-runs, and other risks that affect software quality. Students learn techniques of project planning, scheduling, costing, risk analysis, and organization. Students examine and critique various kinds of software planning and management artifacts that are representative of plans encountered in the workplace.
Topics: Project management techniques: scheduling, budgeting, risk analysis; basic project management tools; leadership principles; client relationships; liability issues; intellectual property issues; confidentiality issues; CMM; ethics.
Prerequisites: SSD9 (may be taken concurrently), or several years’ programming experience (as determined by education partner).
|
 |
 |