ATAR Notes: Forum

VCE Stuff => VCE Technology => VCE Mathematics/Science/Technology => VCE Subjects + Help => VCE Computing: Software Development => Topic started by: Aaron on May 12, 2016, 12:47:26 pm

Title: Softdev: What programming language?
Post by: Aaron on May 12, 2016, 12:47:26 pm
Hi to all students past and present who have or are currently completing Software Development.

I'd like to get a general idea of what programming language your class is focusing on for this subject - please comment below with a post containing what language you are using (or have used, for past students) and your thoughts (e.g. was it easy to learn? were you forced to learn it all yourself or did your teacher help you with learning it?)

Please note: To discuss pros/cons of programming languages or to debate for/against another person's programming language suggestion please direct your comments to this thread: https://atarnotes.com/forum/index.php?topic=183589.0 - This thread is for you to state what language you are doing and your thoughts ONLY.

Title: Re: Softdev: What programming language?
Post by: MightyBeh on May 12, 2016, 04:04:05 pm
My class is working with vb.net. We only really covered the basics in class (creating variables, if statements, loops, arrays, records and stuff like that) so anything that I personally know other than 'okay copy this' is based on messing around with stuff and some ancient resources that I've managed to find through googling things. Despite that though, it is a pretty easy language to pick up other than some weird quirks (a fair number of which originate within Windows itself) and a general lack of support.

If I'd been given a choice of languages I probably wouldn't have picked it, but I'm not upset that it's what we have to use in class, so it can't really be that bad. ::)
Title: Re: Softdev: What programming language?
Post by: Aaron on May 12, 2016, 04:47:08 pm
My class is working with vb.net. We only really covered the basics in class (creating variables, if statements, loops, arrays, records and stuff like that) so anything that I personally know other than 'okay copy this' is based on messing around with stuff and some ancient resources that I've managed to find through googling things. Despite that though, it is a pretty easy language to pick up other than some weird quirks (a fair number of which originate within Windows itself) and a general lack of support.

If I'd been given a choice of languages I probably wouldn't have picked it, but I'm not upset that it's what we have to use in class, so it can't really be that bad. ::)

How much of the programming would you say you had to learn outside of class in order to fulfil the requirements of the SAC's and work?

I don't think I mentioned it in this one (did so in the Informatics thread I made), but I really value these replies to the threads I post, as this helps me understand learning, attitudes etc. in VCE Computing (since i'm a pre-service teacher in IT/Computing). If you're a Softdev student, please feel free to post and share your thoughts.
Title: Re: Softdev: What programming language?
Post by: MightyBeh on May 12, 2016, 05:31:01 pm
How much of the programming would you say you had to learn outside of class in order to fulfil the requirements of the SAC's and work?

I don't think I mentioned it in this one (did so in the Informatics thread I made), but I really value these replies to the threads I post, as this helps me understand learning, attitudes etc. in VCE Computing (since i'm a pre-service teacher in IT/Computing). If you're a Softdev student, please feel free to post and share your thoughts.
All of the stuff we learned in class is specifically for SACs and class work. Occasionally, tasks couldn't be properly completed without using some stuff learned outside of class, mostly because our teacher uses a lot of legacy code to teach with without checking that it actually still works. So I'd say I've only had to learn about 5-10% outside of class, but I've definitely willingly learned more than that because I've wanted to be able to produce solutions that are above average. I'd say that what we're taught is enough to get a decent mark, but to do really well we have to learn some things independently of class.
Title: Re: Softdev: What programming language?
Post by: kev18 on May 22, 2016, 07:34:11 pm
Yes, we also use VB net, our teacher assisted us with the basics. This helped in our first sac. Now we our making our own programs for a world need, and need a bit more personal research in vb is needed.
Title: Re: Softdev: What programming language?
Post by: Aaron on May 23, 2016, 11:07:59 pm
Yes, we also use VB net, our teacher assisted us with the basics. This helped in our first sac. Now we our making our own programs for a world need, and need a bit more personal research in vb is needed.

Awesome, thanks for sharing! Feel free to let us know via this Softdev board if you run into any problems or simply want to discuss/share thoughts.
Title: Re: Softdev: What programming language?
Post by: has400 on September 28, 2016, 08:56:50 pm
Class learned java through anrdoid studio, and I made a application using information from http://www.champion.gg to create build info for a league of legends application! Teacher gave it 100%! Was pretty easy to learn the language, I did all the learning out of class as well I also made a video releasing the files to the public - https://www.youtube.com/watch?v=EmufzHsQDnY
Title: Re: Softdev: What programming language?
Post by: Aaron on September 28, 2016, 09:03:31 pm
Class learned java through anrdoid studio, and I made a application using information from http://www.champion.gg to create build info for a league of legends application! Teacher gave it 100%! Was pretty easy to learn the language, I did all the learning out of class as well I also made a video releasing the files to the public - https://www.youtube.com/watch?v=EmufzHsQDnY

Awesome mate - looks great!
Title: Re: Softdev: What programming language?
Post by: illuminati_confirmed on May 25, 2017, 02:07:52 pm
This thread is old, but for this year, our class has decided to use Visual Basic for our SACs and SAT
Title: Re: Softdev: What programming language?
Post by: Aaron on May 25, 2017, 02:27:06 pm
This thread is old, but for this year, our class has decided to use Visual Basic for our SACs and SAT

No problems at all, you are definitely welcome to post. What are your thoughts about the language and how much do you have to learn by yourself?
Title: Re: Softdev: What programming language?
Post by: kiwikoala on January 06, 2018, 06:28:55 pm
Hiya,
In my class our teacher gave us the choice to do any language from the list vcaa approved. Whilst the resources and tutorials were in Visual Basic. The teacher was pretty hands off about teaching how to program himself. About half the class of 15 did VB, 4 went Python, a few did C# and I believe someone did web stuff.

Worked out fine. I did Python cause I wanted to learn it and had GREAT fun with tkinter (HA, decent intro to OOP tho) Python + tkinter was alright to learn by yourself. The hard parts is finding relevant code examples with a consistent style (hmu for the best documentation websites, and my particular setup/templates I ended up with). Most documentation for it was pre 2010 which is pretty sad. One of my friends decided to do Python + qt and their stuff looked really nice compared to old style defaults of tkinter.

Python is a great general language, just that there are much better ones to make GUIs which is what you are concerned about in Software Development. You want to do VB almost everytime due to the ease of the drag and drop separates the 2 parts into 2 problems and makes it easier to visualise the layouts, Python can be picked up in not much time at all especially if it's your second language.

I recall a time when I learnt that I could store those abstract Button widgets in an array and access them from that instead of calling them btnA, btnB, btnC... looping through them with string manipulation + the exec() function in Python haha.

First folio task, no idea about objects, arrays, pointers etc.
Spoiler
# Children's game 2

from tkinter import *

root = Tk()

feedback = StringVar()
feedback.set('Harro')

# Iterative buttons
button_names = [['a',0], ['b',1], ['c', 2]]
listy = []
listy2 = []
for name, num in button_names:
    # Generates the buttons and assigns to iterative names
    exec("photo%s = PhotoImage(file=name+'.png')" % (name))
    exec("%s = Button(root, image=photo%s, command= lambda: \
change_colour(%s))" % (name, name, name))
    eval(name).grid(row=1, column=num)
    # Creates a multi-dimensional array of the variable name and the string of the variable name
    listy += [[eval(name), name]]

button_names_pic = [['e',0], ['f',1], ['d', 2]]
function_list_pic = []
for name, num in button_names_pic:
    # Generates the buttons and assigns to iterative names
    exec("photo%s = PhotoImage(file=name+'.png')" % (name))
    exec("%s = Button(root, image=photo%s, command= lambda: \
change_colour_pic(%s))" % (name, name, name))
    eval(name).grid(row=2, column=num)
    # Creates a list of variable name and the string of the variable name
    listy2 += [[eval(name), name]]

butReset = Button(root, text="Reset", command=lambda: reset(), width=60)
butReset.grid(row=3, columnspan=3)

check_list = [['a', 'd'], ['b', 'e'], ['c', 'f']]
nice = PhotoImage(file='nice.png')

def reset():
    for butname, picname in (check_list):
        eval(butname).config(bg='blue')
        eval(butname).config(image=eval('photo'+butname))
        eval(picname).config(bg='blue')
        eval(picname).config(image=eval('photo'+picname))

                 
def check_active():
    '''Checks whether the 2 buttons in row 1 and 2 are correct'''
    first = 'poop'
    second = 'poop'
    first_but = None
    second_but = None
    for i, j in listy:
        if i.cget("bg") == 'red':
            first = j
            first_but = i
    for i, j in listy2:
        if i.cget("bg") == 'red':
            second = j
            second_but = i
    for i, j in check_list:
        if first == i and second == j:
            first_but.config(image=nice, bg='blue')
            second_but.config(image=nice, bg='blue')
            feedback.set('Noise')

def change_colour(name):
    ''' Changes pressed button to red but everything else to blue'''
    name.config(bg='red')
    for i, j in listy:
        if i == name:
            pass
        else:
            i.config(bg='blue')
    feedback.set('Hmmm')
    check_active()

def change_colour_pic(name):
    ''' changes pressed button to red but everything else to blue'''
    name.config(bg='red')
    for i, j in listy2:
        if i == name:
            pass
        else:
            i.config(bg='blue')
    feedback.set('Okeh')
    check_active()

title = Label(textvariable = feedback)
title.grid(row=0, columnspan=3)
   
mainloop()

Here is the main.py file for my SAT, still a monstrosity, no drag and drop remember.
Spoiler
"""Tkinter application to graphically plot your gains.

------------------------------------------------------
Steven Nguyen
21/08/16
------------------------------------------------------

This program is designed to be able to take workout data
and store it digitally. With the data and using the
tkinter, ttk and matplotlib libraries graphically
displays the information in a meaningful way for the user.
"""

import tkinter as tk
import tkinter.ttk as ttk

import pickle
import datetime
import ttkcalendar

from matgraph import MatGraph
from inputtab import InputTab
from sumpage import SumPage
from popupobj import Popup
from gainscontainer import work, workout

class Main(tk.Frame):

    def __init__(s, m):
        tk.Frame.__init__(s, m)
        s.config(background='gray20')

        # Initliase Data
        s.dicExercise = s.loadData()
        for key, value in s.dicExercise.items():
            value.chronoSort()
        s.ordKeyExercise = sorted(list(s.dicExercise.keys()))
       
        # Lamba dictionary of all modes
        s.dicMode = {'Avg Weight': lambda x: x.avgWeight(),
                     'Total Weight': lambda x: x.sumWeight(),
                     'Median Weight': lambda x: x.medWeight(),
                     'Highest Weight': lambda x: x.highestWeight()}

        s.initialiseWidgets()

    def initialiseWidgets(s):
        # Expansion
        s.grid_rowconfigure(0, weight=1)
        s.grid_rowconfigure(1, weight=1)
        s.grid_rowconfigure(2, weight=1)

        s.grid_columnconfigure(0, weight=0)
        s.grid_columnconfigure(1, weight=1)

        # Icon Loading
        iconPlus = tk.PhotoImage(file='icons\plus.png')
        iconGraph = tk.PhotoImage(file='icons\graph.png')
        iconSum = tk.PhotoImage(file='icons\sum.png')

        # Buttons
        s.btnInp = ttk.Button(s, image=iconPlus)
        s.btnInp.config(command=lambda: s.switch(s.tabInp))
        s.btnInp.image = iconPlus

        s.btnMat = ttk.Button(s, image=iconGraph)
        s.btnMat.config(command=lambda: s.switch(s.tabMat))
        s.btnMat.image = iconGraph

        s.btnSum = ttk.Button(s, image=iconSum)
        s.btnSum.config(command=lambda: s.switch(s.tabSum))
        s.btnSum.image = iconSum

        s.btnInp.grid(row=0, column=0, sticky='news')
        s.btnMat.grid(row=1, column=0, sticky='news')
        s.btnSum.grid(row=2, column=0, sticky='news')

        # Initialising tabs
        s.initInp()
        s.initMat()
        s.initSum()

        # Initilaised first tab to be the graph
        s.currentTab = s.tabSum
        s.switch(s.tabMat)
        s.updatePlot(event=None)

    def initInp(s):
        """
        Initiates the InputTab object's widgets and data.
        """
        s.tabInp = InputTab(s)
        s.tabInp.chkExercise.config(values=s.ordKeyExercise)
        if s.ordKeyExercise == []:
            pass
        else:
            s.tabInp.varExercise.set(s.ordKeyExercise[0])
        s.tabInp.btnDone.config(command=s.doneSesh)
        s.tabInp.btnNew.config(command=s.callPop)

    def initMat(s):
        """
        Initiates the  MatGraph object's widgets and data.
        """
        s.tabMat = MatGraph(s)
        if s.ordKeyExercise == []:
             pass
        else:
            s.tabMat.varExercise.set(s.ordKeyExercise[0])
        s.tabMat.chkExercise.config(values=s.ordKeyExercise)
        s.tabMat.chkMode.config(values=list(s.dicMode.keys()))
        s.tabMat.chkExercise.bind('<<ComboboxSelected>>', s.updatePlot)
        s.tabMat.chkMode.bind('<<ComboboxSelected>>', s.updatePlot)

    def initSum(s):
        """
        Initiates the SumPage object's widgets and data.
        """
        s.tabSum = SumPage(s)
        s.tabSum.tree.bind('<Delete>', s.deleteSum)
        s.tabSum.btnEdit.config(command=s.editSum)
        s.tabSum.btnDelete.config(command=lambda: s.deleteSum(None))
        s.updateSum()

    def switch(s, chosenFrame):
        """
        Function used to switch between tabs.
        """
        if chosenFrame == s.currentTab:
            return
        else:
            s.currentTab.grid_remove()
            s.updatePlot(event=None)
            chosenFrame.grid(row=0, column=1, rowspan=3, sticky='news')
            s.currentTab = chosenFrame
            s.updateDict()

    def addNewInp(s, event):
        """
        Adds a new, empty workout object to the dictionary while updating all widgets related.
        """
        s.dicExercise[s.pop.add()] = workout(s.pop.add(), [])
        s.pop.top.destroy()
        s.updateDict()
        s.initMat()
        s.updatePlot(event=None)


    def deleteSum(s, event):
        """
        Deletes all selected in the tree and their respective entries in the dictionary.
        """
        for i in reversed(list(s.tabSum.tree.selection())):
            txt = s.tabSum.tree.item(i, 'text')
            tags = s.tabSum.tree.item(i, 'tags')
            if tags != '':
                objWorkout = s.dicExercise[s.tabSum.tree.item(i, 'tags')[0]]
                obj = s.tabSum.tree.item(i, 'tags')[1]
                for i, objWork in reversed(list(enumerate(objWorkout.data))):
                    # Linear search, backwards to maintain indexing
                    if obj == str(objWork):
                        objWorkout.data.pop(i)
                        break
            else:
                s.dicExercise.pop(txt, None)
       
        s.ordKeyExercise = sorted(list(s.dicExercise.keys()))
        s.tabSum.delete()

        s.updateDict(sumPage=False) # So the tree does not get collapsed

    def editSum(s):
        """
        Determines selected item and edits their name or data
        for either workout or work object respectively
        """
        if len(s.tabSum.tree.selection()) != 1:
            return
        item = s.tabSum.tree.selection()
        itemDict = s.tabSum.tree.item(item)

        # Determines object type and then proceeds
        if itemDict['tags'] == '':
            # Workout object
            # Prompts user to rename
            workoutName = itemDict['text']
            s.callPop()
            s.pop.btnAccept.config(command=lambda event=None: s.renameWorkout(event, workoutName))
            s.pop.ent.bind("<Return>", lambda event: s.renameWorkout(event, workoutName))
        else:
            # Work object
            # Switches tab to input page with details filled in
            workoutName = itemDict['tags'][1]
            workoutObj = s.dicExercise[itemDict['tags'][0]]
            for workObj in workoutObj.data:
                # Linear search through object data to compare strings
                if str(workObj) == workoutName:
                    s.deleteSum(event=None)
                    s.switch(s.tabInp)
                    s.tabInp.tree.delete(*s.tabInp.tree.get_children())
                    s.tabInp.varDate.set(workObj.date.strftime('%d/%m/%y'))
                    s.tabInp.varExercise.set(itemDict['tags'][0])
                    for rep, weight in zip(workObj.reps, workObj.weight):
                        s.tabInp.tree.insert('', tk.END, value=[rep, weight])
                    break
   
    def renameWorkout(s, event, oldname):
        """
        Renames workout object by replacing the original and copying.

        oldname:    Current name of exercise selected to be edited.
        """
        newname = s.pop.add()
        s.pop.onEsc(event=None)
        # Dictionary pop method returns the value
        s.dicExercise[newname] = s.dicExercise.pop(oldname)
        s.updateDict(sumPage=True)

       
    def updatePlot(s, event):
        """
        Updates plots to current dictionary.
        """
        if s.ordKeyExercise == []: # Existence Check
            s.tabMat.mainplot.clear()
            s.tabMat.fig.autofmt_xdate()
            s.tabMat.canvas.show()
            return
       
        exercise = s.tabMat.varExercise.get()
        mode = s.tabMat.varMode.get()
   
        x = s.dicExercise[exercise].dates()
        y = s.dicMode[mode](s.dicExercise[exercise])

        s.tabMat.mainplot.clear()
        s.tabMat.mainplot.plot(x, y)
        s.tabMat.mainplot.scatter(x, y)
        s.tabMat.fig.autofmt_xdate()
        s.tabMat.canvas.show()

    def updateDict(s, sumPage=True):
        """
        Updates all checkboxes linked to the s.dicExercise to the current.

        sumPage:    Boolean option to choose if summary page is to be
                    specifically updated or not. Used exactly once.
        """
        s.ordKeyExercise = sorted(list(s.dicExercise.keys()))
        if s.ordKeyExercise == []:
            setter = ''
        else:
            setter = s.ordKeyExercise[0]
       
        s.tabInp.chkExercise.config(values=s.ordKeyExercise)
        s.tabInp.varExercise.set(setter)

        s.tabMat.chkExercise.config(values=s.ordKeyExercise)
        s.tabMat.varExercise.set(setter)
             
        if sumPage == True:
            # To allow for deletion in the sumpage without resetting the tree
            s.updateSum()

    def updateSum(s):
        """
        Puts all the data from s.dicExercise into the tree in a sorted order.
        """
        s.tabSum.tree.delete(*s.tabSum.tree.get_children())
       
        for strEx in s.ordKeyExercise:
            objEx = s.dicExercise[strEx]
            id = s.tabSum.tree.insert('', tk.END, text=strEx)
            for date, objWork in zip(objEx.dates(), objEx.data):
                id2 = s.tabSum.tree.insert(
                    id, tk.END, values=(objWork.weight, objWork.reps),
                    text=str(date),  tags=(strEx, objWork))

    def doneSesh(s):
        """
        Updates the s.dicExercise with the current entries of tabInp.tree into s.dixExercise.
        """
        selectedDate = s.tabInp.selectedDate
       
        lstReps = [float(s.tabInp.tree.item(i)['values'][0])
                   for i in s.tabInp.tree.get_children()]
        lstWeight = [float(s.tabInp.tree.item(i)['values'][1])
                     for i in s.tabInp.tree.get_children()]

        if lstReps == [] or lstWeight == []:
            return

        new = work(lstReps, lstWeight, selectedDate)

        s.dicExercise[s.tabInp.varExercise.get()].data.append(new)
        s.dicExercise[s.tabInp.varExercise.get()].chronoSort()

        s.tabInp.tree.delete(*s.tabInp.tree.get_children()) # Clears the tree
        s.updateDict()
        s.save()

    def onClose(s):
        """
        Procedure to run before closing the app, saves all data.
        """
        s.save()
        root.destroy()

    def loadData(s):
        """
        Returns the save data within data.pkl.
        """
        with open('data.pkl', 'rb') as file:
            return pickle.load(file)

    def save(s):
        """
        Saves any changes to data.pkl.

        Currently only connected to s.onClose.
        """
        with open('data.pkl', 'wb') as output:
            pickle.dump(s.dicExercise, output)
       

    def callPop(s):
        """
        Calls a general popup with an entry and accept button.
        """
        try:
            s.pop.top.destroy()
        except:
            None
        s.pop = Popup(s)
        s.pop.btnAccept.config(command=lambda: s.addNewInp(event=None))
        s.pop.ent.bind("<Return>", s.addNewInp)

if __name__ == '__main__':
    root = tk.Tk()
    app = Main(root)
    app.pack(expand=1, fill='both')
    root.geometry('825x450')
    root.protocol("WM_DELETE_WINDOW", app.onClose)
    root.iconbitmap('icons\icon.ico')
    root.title('Gains Grapher')
    root.mainloop()

:/ unable to combine spoiler and code tags.
Title: Re: Softdev: What programming language?
Post by: Aaron on January 06, 2018, 08:13:25 pm
Thanks for contributing your thoughts steven. Did you have any prior knowledge re: programming before coming into Softdev or did you learn all of this during the subject?

They look like great programs you've provided, thanks for the share :)
Title: Re: Softdev: What programming language?
Post by: kiwikoala on January 06, 2018, 08:16:47 pm
I had attempted a few languages (namely c++ on youtube) before but did not get very far at alI. I did syntax basics for Python during the holiday period to prepare. GUI library was all learnt during the year. Python was the first language to stick and will forever have a special place in my heart.

The code snippets were meant to show how bad it looks actually haha.
Title: Re: Softdev: What programming language?
Post by: Aaron on January 06, 2018, 08:20:01 pm
I did syntax basics during the holiday period but that's all.

The code snippets were meant to show how bad it looks actually haha.

I'm aware, but the fact you're using all these different libraries and functions together to create a solution is fantastic. I am attempting to visualise this for complete beginners so even though it's messy and looks bad, you've still done a great job and shows you have an interest in this area. Kudos :)

That's great then, from syntax basics to multiple solutions! Fair year's effort. :)
Title: Re: Softdev: What programming language?
Post by: MJDeeks on March 26, 2018, 01:15:30 pm
My class uses python and it was fairly easy to learn for someone who was very new to the subject
Title: Re: Softdev: What programming language?
Post by: Ashurbanipal on March 26, 2018, 01:21:53 pm
My class learned Python. I recommend any beginning programmer to start with Python because it's easy to learn. I learned C# for my major project.
Title: Re: Softdev: What programming language?
Post by: truman999999999 on November 17, 2018, 05:10:05 pm
My class ain't gonna use these, but some good ones that I'm learning/would learn if I get time are Pascal (have actually started learning), Java with JavaFX (am quite experienced already), Lisp (very interesting feature set) and C++ (only done a tiny bit, but extremely interesting). Guys, if you get the choice, don't choose some outdated and completely obsolete language like VB. Its what I have to learn and there are much better and newer languages to choose from! Pascal's old, but its still used everywhere and has several extremely desirable qualities (VB has a few too, but its downsides are too much of downers).
Title: Re: Softdev: What programming language?
Post by: Aaron on November 18, 2018, 08:58:35 pm
Love the ideas truman, and while they would satisfy the requirements of SD... I feel that both Java and C++ are significantly challenging to the average student. As somebody who has done a degree in the discipline and teaching experience, i'd definitely say something like Python is a fairly straight forward choice. I would even go as far as to challenge VB as an 'ideal' language for SD given the crappy syntax... it's not exactly user-friendly.

Obviously the idea of a course is to cover an appropriate amount of content (and get through it), as well as ensuring that success is achievable and I feel the learning curve from potentially no understanding at all to that of JavaFX/Java in general (e.g.) is quite significant.

Kudos for your understanding of other foreign languages e.g. Lisp. Not many school students can identify a language used for AI, such as that. Well done :)
Title: Re: Softdev: What programming language?
Post by: anon101 on November 23, 2018, 05:20:04 pm
I feel that both Java and C++ are significantly challenging to the average student.
Yeah, C++ is too tricky for your average student, but why would you say Java's too tough?
Here's my thought process here:

But yeah, Python is pretty amazing for a first time learning!!!
Title: Re: Softdev: What programming language?
Post by: 4See on December 13, 2018, 08:08:15 pm
Hi all,
I've signed up for Software Development next year. Our class would be learning PhP but I feel like that language is kinda 'outdated' and not as popular, especially since I want to go into Algorithmics in year 12 (doing Software Dev as a year 11 next year) and they use Python. Unfortunately I won't be able to learn python as it does not meet the program prereqs. Are there any mainstream languages that people would recommend learning? C#, C++, Java, etc.
Cheers
Title: Re: Softdev: What programming language?
Post by: Aaron on December 13, 2018, 08:20:26 pm
Hi all,
I've signed up for Software Development next year. Our class would be learning PhP but I feel like that language is kinda 'outdated' and not as popular, especially since I want to go into Algorithmics in year 12 (doing Software Dev as a year 11 next year) and they use Python. Unfortunately I won't be able to learn python as it does not meet the program prereqs. Are there any mainstream languages that people would recommend learning? C#, C++, Java, etc.
Cheers

What program prereqs does Python not meet? As far as I can recall, softdev requirements are 'an object oriented programming language' (as you need this to do certain things), which Python technically can be if used in that way. In terms of PHP, it actually isn't as outdated as you think... quite a significant amount of web based solutions still use PHP.
Title: Re: Softdev: What programming language?
Post by: VoydVoyd on January 12, 2019, 01:03:48 pm
My class is using Swift, but I've gotten permission to use C# after the first SAC as I'm a lot more knowledgeable about it. It allows me to work on my laptop and at home since I don't have an Apple device, and a virtual machine would destroy my laptop's battery in an instant.

As for difficulty, I'm not an impartial person as I've been coding since year 8, I started with Gamemaker Studio's GML language and it took me a good while to 'get into' C# and I probably wouldn't teach it to my class if I had one, haha.

Swift is really lenient with syntax and XCode is fine but I find it's pretty hard to do anything more complicated than inputting or changing the text/image/value of the different UI elements. The XCode interface itself is also not amazing, and if you have an issue you need to google there's like ~4 versions of swift with radically different solutions to every problem, which really gave me a headache doing app development in year 10 and the programming unit in computing 1/2.
Title: Re: Softdev: What programming language?
Post by: Aaron on January 15, 2019, 12:11:52 pm
Apple products *sigh* - thanks for your contribution Voyd and really admire your efforts to use C# when you could use something much easier (e.g. python). Good luck!
Title: Re: Softdev: What programming language?
Post by: Aaron on January 20, 2019, 12:11:03 am
Hi folks, for those that were commenting in this thread be advised your discussion has been moved to this thread: https://atarnotes.com/forum/index.php?topic=183589.0

This thread we're in now is for users to post their programming language that they're doing in their class this year and to provide initial commentary. To discuss or debate programming languages and their suitability/effectiveness for the subject, the thread linked above is the place to discuss. Thank you very much for your cooperation and thanks for taking part in discussions in this board! :)
Title: Re: Softdev: What programming language?
Post by: basysmith on January 31, 2019, 08:48:30 am
Has anyone used Unity 3D and C# for their SAT?

Cheers,
Title: Re: Softdev: What programming language?
Post by: VoydVoyd on February 13, 2019, 08:45:28 pm
Has anyone used Unity 3D and C# for their SAT?

Cheers,

I'm probably going to be doing this myself, even though I'm probably not going to be making a game, because the IDE is something I'm familiar with and is quite useful, and the UI elements are quite similar to that of XCode which the rest of my class is using. Did you have any questions about it? I think it's a fine tool for the SAT, even if you're not making a game. I would advise against making an actual game because the SAT marking scheme is heavily oriented around more "practical" software and you'll probably find it harder to justify a lot of your decisions, unless it's something like an educational game for a specific client.
Title: Re: Softdev: What programming language?
Post by: basysmith on March 04, 2019, 08:16:25 pm
I would advise against making an actual game because the SAT marking scheme is heavily oriented around more "practical" software and you'll probably find it harder to justify a lot of your decisions, unless it's something like an educational game for a specific client.

How so? A game in Unity can be practical in many ways, not just educational. It can be for entertainment, marketing, rehab, sensory etc.. I understand where you're coming from though as a lot of students create random FPS's and car games that have no real objective or aims.
Title: Re: Softdev: What programming language?
Post by: GeneralJuicy on August 21, 2019, 02:54:18 pm
java
Title: Re: Softdev: What programming language?
Post by: bobovikisan on August 23, 2019, 11:13:52 am
My Class is pretty focused on Web development. We started off just using Javascript, then used HTML and CSS to make the webpage prettier! We then learned server-side scripts like Node.js and PHP. And then in our final SAT projects combined all the knowledge to create an interesting project! Like I tried to recreate the Sorting Hat in Harry Potter for my SAT project. Hope this gives people a general idea of the SD class can entail! ;D ;D ;D ;D ;D ;D